手工创建oracle数据库的过程

数据库: Oracle 8i R2 (8.1.6) 
安装路径:d:\oracle\ora81 
数据库实例:mytest 
数据库全局名称:mytest.world


步骤一:手工创建相关目录
这些目录是新建数据库的一些必要的文件夹之类,比如初始化参数文件夹,udump文件夹,数据文件文件夹等等,下面列出的是一个最基本的目录表
d:\oracle\admin\mytest\arch\
d:\oracle\admin\mytest\bdump\
d:\oracle\admin\mytest\create\
d:\oracle\admin\mytest\pfile\
d:\oracle\admin\mytest\udump\
d:\oracle\oradata\mytest\
注意:建立以上文件夹比较简单的方法是,将D:\Oracle\Ora81\ADMIN文件夹下面的sample文件直接拷贝到d:\oracle\admin\下,然后修改为你要建立的数据库的名称即可。数据文件文件夹就一个文件夹,创建过程比较简单。


步骤二:手工创建数据库初始化文件
你可以手工创建一个数据库初始化文件,也可以从其他已有数据库中拷贝一个初始化文件然后稍加修改即可。
其中需要修改的初始化文件中的参数只要有:
db_name = "mytest"
db_domain = world
instance_name = mytest
service_names = mytest.world
control_files = (………………………………)
background_dump_dest = 
utl_file_dir = 
还有其他一些与路径有关系的参数。由于初始化参数文件比较大就不详细列举了。


步骤三:准备创建数据库的脚本,主要有两个脚本
D:\Oracle\Ora81\RDBMS\ADMIN\BUILD_DB.SQL
D:\Oracle\Ora81\RDBMS\ADMIN\BUILDALL.SQL
其中BUILD_DB.SQL这个文件里面的代码是创建数据库的。这个文件里面需要进行修改以满足新的数据库要求,以下为修改后的BUILD_DB.SQL
startup nomount pfile=d:\oracle\admin\mytest\pfile\initmytest.ora
create database mytest
    controlfile reuse
    logfile 'D:\Oracle\oradata\mytest\redo01.log' size 1M reuse,
            'D:\Oracle\oradata\mytest\redo02.log' size 1M reuse,
            'D:\Oracle\oradata\mytest\redo03.log' size 1M reuse,
            'D:\Oracle\oradata\mytest\redo04.log' size 1M reuse
    datafile 'D:\Oracle\oradata\mytest\system01.dbf' size 100M reuse autoextend on
      next 100M maxsize 500M 
    character set ZHS16GBK;


create rollback segment rb_temp storage (initial 100 k next 250 k);


create tablespace users
    datafile 'D:\Oracle\oradata\mytest\users01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
create tablespace rbs
    datafile 'D:\Oracle\oradata\mytest\rbs01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
create tablespace temp
    datafile 'D:\Oracle\oradata\mytest\temp01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
create tablespace oem_repository
    datafile 'D:\Oracle\oradata\mytest\oemrep01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
create tablespace indx
    datafile 'D:\Oracle\oradata\mytest\indx01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
alter rollback segment rb_temp online;


alter user system temporary tablespace temp;
alter user system default tablespace users;
create public rollback segment rb1 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb2 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb3 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb4 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb5 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb6 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb7 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb8 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb9 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb10 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb11 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb12 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb13 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb14 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb15 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb16 storage(initial 50K next 250K)
  tablespace rbs;



自己建立数据库的时候可以修改里面的各项参数来满足实际的要求。
另一个文件BUILDALL.SQL是我们一会要运行的文件,可以打开看一下,里面包括很多语句,第一个就是建立数据库的,其他的就是一些数据字典的建立,数据字典视图的建立,同义词的建立,scott用户的建立等等,有兴趣的可以自己多看看。这个文件主要需要修改的就是一些路径,检查一下是否将要执行的文件都存在,是否路径都正确。下面就是这个已经修改完毕的BUILDALL.SQL文件的例子
spool \build.log
SET TERMOUT OFF
SET ECHO OFF
connect internal
@D:\Oracle\admin\mytest\build_db.sql
@D:\Oracle\Ora81\RDBMS\admin\catalog.sql
@D:\Oracle\Ora81\RDBMS\admin\catsnmp.sql
connect internal
@D:\Oracle\Ora81\RDBMS\admin\catexp7.sql
@D:\Oracle\Ora81\RDBMS\admin\catproc.sql
@@scott.sql
connect internal
@@demo.sql
connect system/manager
@D:\Oracle\Ora81\RDBMS\admin\catdbsyn.sql
@D:\Oracle\Ora81\dbs\pupbld.sql
connect internal
@D:\Oracle\Ora81\RDBMS\admin\caths.sql
@D:\Oracle\Ora81\RDBMS\admin\oramts.sql
connect internal
alter rollback segment rb_temp offline;
shutdown;
spool off

步骤四:为新数据库建立新的实例
对数据库实例进行操作的命令是oradim。在dos环境下可以看到oradim命令的详细解释:
C:\>oradim
ORADIM: <命令> [选项]。请参阅相关手册。
请输入下列命令之一:
  请指定下列参数,创建例程:
    -NEW -SID sid | -SRVC 服务 [-INTPWD 口令] [-MAXUSERS 数量] [-STARTMODE a|m]
[-PFILE 文件] [-TIMEOUT 秒]
  请指定下列参数,编辑例程:
    -EDIT -SID sid [-NEWSID sid] [-INTPWD 口令] [-STARTMODE auto|manual] [-PFILE
 文件名]
          [-SHUTMODE a|i|n] [-SHUTTYPE srvc|inst|srvc,inst] [-TIMEOUT 秒]
  请指定下列参数,删除例程:
    -DELETE -SID sid | -SRVC 服务名称
  请指定下列参数,启动服务和例程:
    -STARTUP -SID sid [-USRPWD 口令] [-STARTTYPE srvc|inst|srvc,inst] [-PFILE 文
件名]
  请指定下列参数,关闭服务和例程:
    -SHUTDOWN -SID sid [-USRPWD 口令] [-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE
 a | i | n]
  请指定下列参数,查询帮助:-? | -h | -help
我们建新的实例需要用的命令是oradim –new –sid这个命令,以下就是建立新实例的命令:
c:\>oradim –new –sid mytest –intpwd admin –pfile d:\oracle\admin\mytest\pfile\init.ora
其中mytest为新实例的名称,admin为sys的初始密码,pfile后面的参数为新数据库的初始化参数的路径。这个命令执行以后会发现内存的需求增加了,在服务里面多了一个名字为mytest的服务。

步骤五:修改oracle_sid
打开命令提示框,在里面输入
c:\>set oracle_sid=mytest
这个步骤是修改现在系统默认的oracle_sid,这一步骤在系统中已经存在数据库的机器上面尤为重要

步骤六:执行建立数据库的命令
可以在svrmgrl中或者在sqlplus中以internal或sys的用户登陆,执行刚才编辑好的文件
sql>@BUILDALL.SQL

总结:经过以上六部就可以完成手工建立数据库。手工建立数据库比用dbca建立的时候有更大的灵活性。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章