Linux下的Oracle 用脚本建库实录


首先写好建库脚本c.sql

create database mydb
controlfile reuse
maxinstances 1
maxloghistory 1
maxlogfiles 5
maxlogmembers 5
maxdatafiles 100
datafile '$ORACLE_HOME/oradata/system01.dbf'size 325M reuse
autoextend on next 10240K maxsize unlimited
undo tablespace D_DUTSCR 
datafile '/$ORACLE_HOME/oradata/undo01.dbf' SIZE 40M reuse
character set AL32UTF8
national character set UTF8
logfile 
'$ORACLE_HOME/oradata/redo01.log' size 100M reuse, 
'$ORACLE_HOME/oradata/redo02.log' size 100M reuse, 
'$ORACLE_HOME/oradata/redo03.log' size 100M reuse,  
'$ORACLE_HOME/oradata/redo04.log' size 100M reuse
default temporary tablespace TEMP
tempfile 
'$ORACLE_HOME/oradata/temp01.dbf' size 50M reuse
extent management local uniform size 1M;

--------------------------------------------

建立数据字典的文件是:

$ORACLE_HOME/rdbms/admin/catalog.sql

$ORACLE_HOME/rdbms/admin/catproc.sql

$ORACLE_HOME/rdbms/admin/catexp.sql

---------------------------------------------

建立其它的表空间和spfile,也写一个脚本c2.sql:

create tablespace users
datafile '$ORACLE_HOME/oradata/user01.dbf'  size 25m reuse
autoextend on next 1024k maxsize unlimited
extent management local uniform size 500K;
create spfile='$ORACLE_HOME/dbs/spfileinter.ora' from pfile='inter.ora';

----------------------------------------------

好,脚本都准备好了,实际操作通常是这样的:

以nomount方式启动一个实例成功

然后,开始建库

SQL> @$ORACLE_HOME/c.sql

会停在这里好一段时间,如果报错:

create database mydb 
*
error at line 1
ORA-01092: ORACLE instance terminated. Disconnection forced.

就查看日志, $ORACLE_HOME/rdbms/log/alert.log,除非清空,否则此文件记录每一次建库的过程,这个目录下的最后一个文件记录了最后一次建库时出现的错误原因。

通常是init.ora里面的参数 comatibility 需要改正,要写成 '9.2.0',或是undo tablespace的名字的问题,一定要和 $ORACLE_HOME/rdbms/admin/sql.bsq里面默认的名字相同如果成功,会告知database created,如图:


-------------------------------------------

然后执行其它脚本,创建数据字典会很顺利,只是时间较长,要有耐心哦,最后可以建表了, 此处无需多言,成功后的画面:

Enjoy it!