orace10g手动创建数据库

5 篇文章 0 订阅
4 篇文章 0 订阅

       这几天都很忙碌,有一点闲暇时,突然想不如玩玩新东西吧,想想好像未尝试过手工创建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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值