orace10g手动创建数据库

来源:互联网 发布:中端单反推荐 知乎 编辑:程序博客网 时间:2024/05/16 19:01

       这几天都很忙碌,有一点闲暇时,突然想不如玩玩新东西吧,想想好像未尝试过手工创建oracle数据库,不如玩玩create database。手动创建数据库对于理解实例(instance)和数据库(database)是一个很好地途径,因为在创建数据库的时候,都与这两个概念有着非常密切的关系。以下是我手动创建数据整个过程,记录如何新建一个名字为gary实例到加载gary实例,再到创建数据库文件,到最后用gary实例加载数据库的过程。(另如果对实例和数据库的概念还有疑问的同学可以参考oracle 9i,10g,111g编程艺术)。

       详细步骤如下:

        1:创建新的实例,

        2:配置新的实例的监听,

        3:使用自定义pfile加载新的实例,

        4:使用create database 创建数据库,

        5:运行catalog.sql和catproc.sql生成数据库的数据字典。


1.创建新的实例

       在创建新的实例之前,还有一些预处理工作,就是设置oracle_sid了,设置oracle_sid的途径有几个,可以通过写入注册表,环境变量添加ooracle_sid,或是直接在命令行设置,鉴于在命令行设置是最方便也是最灵活的,所以我选择了在命令行设置的方法。

     (1)进入命令行,输入

          set oracle_sid=gary

     (可将gary替换为你想创建的实例名,并且记得等号后不要有空格

      

   (2)利用oradim创建新的实例,在命令行输入 

          oradim -new -sid gary
       

2.配置新的实例的监听

    (1)在创建好新的实例后,就是对oracle的监听的修改,打开listener.ora,根据自己的orahome位置和数据库要起的名字,添加红色字体的部分

     SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = f:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = ORCL)
      (ORACLE_HOME = f:\oracle\product\10.2.0\db_1)
      (GLOBAL_DBNAME=ORCL)
    )
    (SID_DESC =
      (SID_NAME = GARY)
      (ORACLE_HOME = f:\oracle\product\10.2.0\db_1)
      (GLOBAL_DBNAME=GARY)
    )

  )

(2)打开tnsnames,添加以下语句

GARY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Development)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = gary)
    )
  )


3.使用自定义pfile加载新的实例

      (1).在创建好实例之后,我们首先要设置好一个叫init.ora的pfile文件供我们创建的实例在加载时使用,init.ora的内容如下,(红色的为根据自己情况修改的部分,复制后修改即可),并在你oracle_home下的admin文件夹创建你实例对应的日志文件夹。

sga_target=1610612736
job_queue_processes=10
dispatchers="(PROTOCOL=TCP) (SERVICE=garyXDB)"
remote_login_passwordfile=EXCLUSIVE
pga_aggregate_target=761266176
db_domain=""
db_name=gary
control_files=("f:\oracle\product\10.2.0\oradata\gary\control01.ctl", 
               "f:\oracle\product\10.2.0\oradata\gary\control02.ctl",
               "f:\oracle\product\10.2.0\oradata\gary\control03.ctl
")
open_cursors=300
undo_management=AUTO
undo_tablespace=UNDOTBS
audit_file_dest=f:\oracle\product\10.2.0\admin\gary\adump
background_dump_dest=f:\oracle\product\10.2.0\admin\gary\bdump
core_dump_dest=f:\oracle\product\10.2.0\admin\gary\cdump
user_dump_dest=f:\oracle\product\10.2.0\admin\gary\udump
processes=150
db_block_size=8192
db_file_multiblock_read_count=16

        (2)在命令行输入

          sqlplus /@gary as sydba          startup mount from pfile=f:\init.ora;
  

错误可忽略。


4.使用create database 创建数据库

(1)在sqlplus下,输入以下语句,具体的文件位置根据自己的实例进行修改

CREATE DATABASE gary     MAXINSTANCES 1       MAXLOGHISTORY 1       MAXLOGFILES 5       MAXLOGMEMBERS 5       MAXDATAFILES 100       DATAFILE 'F:\oracle\product\10.2.0\oradata\gary\system01.dbf' size 800M  AUTOEXTEND ON NEXT 100m MAXSIZE UNLIMITED       UNDO TABLESPACE undotbs DATAFILE 'F:\oracle\product\10.2.0\oradata\gary\undotbs01.dbf' size 500M  AUTOEXTEND ON NEXT 100m MAXSIZE UNLIMITED       sysaux datafile 'F:\oracle\product\10.2.0\oradata\gary\sysaux01.dbf' size 500M                        default tablespace users datafile 'F:\oracle\product\10.2.0\oradata\gary\users01.dbf' size 500M autoextend on maxsize unlimited       DEFAULT TEMPORARY TABLESPACE temp tempfile 'F:\oracle\product\10.2.0\oradata\gary\temp01.dbf' size 500M       AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED       LOGFILE GROUP 1 ('F:\oracle\product\10.2.0\oradata\gary\redo01.log') size 100M,               GROUP 2 ('F:\oracle\product\10.2.0\oradata\gary\redo02.log') size 100M,               GROUP 3 ('F:\oracle\product\10.2.0\oradata\gary\redo03.log') size 100M; 
(2)根据pfile创建spfile

create spfile from pfile='f:\init.ora'
 (3)重启数据库

5.运行catalog.sql和catproc.sql生成数据库的数据字典

(1)运行ORACLE_HOME/RDBMS/ADMIN/catalog.sql

(2)运行ORACLE_HOME/RDBMS/ADMIN/catproc.sql

(3)重启数据库


自此利用create database创建数据库已经成功,我们已经新建了一个gary的数据库。


0 0