数据库: Oracle 8i R2 (8.1.6)安装路径:d:oracleora81数据库实例:mytest数据库全局名称:mytest.world
步骤一:手工创建相关目录
这些目录是新建数据库的一些必要的文件夹之类,比如初始化参数文件夹,udump文件夹,数据文件文件夹等等,下面列出的是一个最基本的目录表
d:oracleadminmytestarch
d:oracleadminmytestbdump
d:oracleadminmytestcreate
d:oracleadminmytestpfile
d:oracleadminmytestudump
d:oracleoradatamytest
注意:建立以上文件夹比较简单的方法是,将D:OracleOra81ADMIN文件夹下面的sample文件直接拷贝到d:oracleadmin下,然后修改为你要建立的数据库的名称即可。数据文件文件夹就一个文件夹,创建过程比较简单。
步骤二:手工创建数据库初始化文件
你可以手工创建一个数据库初始化文件,也可以从其他已有数据库中拷贝一个初始化文件然后稍加修改即可。
其中需要修改的初始化文件中的参数只要有:
db_name = "mytest"
db_domain = world
instance_name = mytest
service_names = mytest.world
control_files = (………………………………)
background_dump_dest =
utl_file_dir =
还有其他一些与路径有关系的参数。由于初始化参数文件比较大就不详细列举了。
步骤三:准备创建数据库的脚本,主要有两个脚本
D:OracleOra81RDBMSADMINBUILD_DB.SQL
D:OracleOra81RDBMSADMINBUILDALL.SQL
其中BUILD_DB.SQL这个文件里面的代码是创建数据库的。这个文件里面需要进行修改以满足新的数据库要求,以下为修改后的BUILD_DB.SQL
startup nomount pfile=d:oracleadminmytestpfileinitmytest.ora
create database mytest
controlfile reuse
logfile 'D:Oracleoradatamytestredo01.log' size 1M reuse,
'D:Oracleoradatamytestredo02.log' size 1M reuse,
'D:Oracleoradatamytestredo03.log' size 1M reuse,
'D:Oracleoradatamytestredo04.log' size 1M reuse
datafile 'D:Oracleoradatamytestsystem01.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:Oracleoradatamytestusers01.dbf' size 50M reuse autoextend on
next 50M maxsize 100M;
create tablespace rbs
datafile 'D:Oracleoradatamytestrbs01.dbf' size 50M reuse autoextend on
next 50M maxsize 100M;
create tablespace temp
datafile 'D:Oracleoradatamytesttemp01.dbf' size 50M reuse autoextend on
next 50M maxsize 100M;
create tablespace oem_repository
datafile 'D:Oracleoradatamytestoemrep01.dbf' size 50M reuse autoextend on
next 50M maxsize 100M;
create tablespace indx
datafile 'D:Oracleoradatamytestindx01.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:Oracleadminmytestbuild_db.sql
@D:OracleOra81RDBMSadmincatalog.sql
@D:OracleOra81RDBMSadmincatsnmp.sql
connect internal
@D:OracleOra81RDBMSadmincatexp7.sql
@D:OracleOra81RDBMSadmincatproc.sql
@@scott.sql
connect internal
@@demo.sql
connect system/manager
@D:OracleOra81RDBMSadmincatdbsyn.sql
@D:OracleOra81dbspupbld.sql
connect internal
@D:OracleOra81RDBMSadmincaths.sql
@D:OracleOra81RDBMSadminoramts.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:oracleadminmytestpfileinit.ora
其中mytest为新实例的名称,admin为sys的初始密码,pfile后面的参数为新数据库的初始化参数的路径。这个命令执行以后会发现内存的需求增加了,在服务里面多了一个名字为mytest的服务。
步骤五:修改oracle_sid
打开命令提示框,在里面输入
c:>set oracle_sid=mytest
这个步骤是修改现在系统默认的oracle_sid,这一步骤在系统中已经存在数据库的机器上面尤为重要
步骤六:执行建立数据库的命令
可以在svrmgrl中或者在sqlplus中以internal或sys的用户登陆,执行刚才编辑好的文件
sql>@BUILDALL.SQL
总结:经过以上六部就可以完成手工建立数据库。手工建立数据库比用dbca建立的时候有更大的灵活性。