首先寫好建庫腳本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!