非常簡(jiǎn)單的一個(gè)命令create database,運(yùn)行看看有什么結(jié)果,可以想象到會(huì)產(chǎn)生什么錯(cuò)誤
SQL> create database;
ITPUB個(gè)人空間^L|q$_'V3X+p
create database
ERROR at line 1:
沒有數(shù)據(jù)庫(kù)名字,原因在于initora9.ora文件里缺少一個(gè)關(guān)鍵的配置db_name='ora9db',注意數(shù)據(jù)庫(kù)名稱可以和實(shí)例名稱不一致,如果配置了此項(xiàng)可以避免這個(gè)錯(cuò)誤提示,不要緊,在這個(gè)命令下我們手工指定數(shù)據(jù)庫(kù)名稱,再來(lái)一次
SQL> create database ora9db;
Database created.
SQL>
創(chuàng)建成功了
SQL> select instance_name, status from v$instance;
INSTANCE_NAME??? STATUS
ora9???????????? OPEN
狀態(tài)改變了
SQL> select name from v$datafile;
NAME
C:\ORACLE\ORA92\DATABASE\DBS1ORA9.ORA
C:\ORACLE\ORA92\DATABASE\DBS1ORA9.ORA
這是數(shù)據(jù)庫(kù)的數(shù)據(jù)文件
SQL> select name from v$tablespace;
NAME
這是SYSTEM表空間
SQL> select name from v$controlfile;
NAME
C:\ORACLE\ORA92\DATABASE\CTL1ORA9.ORA
這是控制文件
SQL> select member from v$logfile;
?
C:\ORACLE\ORA92\DATABASE\LOG1ORA9.ORA
C:\ORACLE\ORA92\DATABASE\LOG2ORA9.ORA
這是日志文件
顯然這一步ORACLE在幕后做了很多操作
---創(chuàng)建數(shù)據(jù)文件,控制文件,日志文件
---創(chuàng)建了SYSTEM表空間
---創(chuàng)建了數(shù)據(jù)字典
---設(shè)置數(shù)據(jù)庫(kù)字符集
SELECT name,value$ from sys.props$ where name like '%NLS%'可以看到
---裝載并打開數(shù)據(jù)庫(kù)
不過工作還沒有完成,還要繼續(xù)下一步的操作
?
運(yùn)行腳本創(chuàng)建數(shù)據(jù)字典視圖、同義詞和PL/SQL包
SQL> @%oracle_home%\rdbms\admin\catalog.sql
執(zhí)行完會(huì)有2個(gè)object的status是invalid
SQL> @%oracle_home%\rdbms\admin\catproc.sql
此一步不一定能夠創(chuàng)建成功
?
?
總結(jié)一下步驟
上面所做的測(cè)試只是為了研究oracle數(shù)據(jù)庫(kù)創(chuàng)建所要作的工作,生產(chǎn)環(huán)境下要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)還要對(duì)各個(gè)步驟進(jìn)行潤(rùn)色,總的說來(lái)需要如下幾個(gè)步驟
確定實(shí)例名-->創(chuàng)建服務(wù)-->創(chuàng)建初始化數(shù)參數(shù)文件-->啟動(dòng)實(shí)例-->執(zhí)行create database-->創(chuàng)建其他表空間-->運(yùn)行腳本創(chuàng)建數(shù)據(jù)字典視圖和程序包-->創(chuàng)建服務(wù)端參數(shù)文件