揭開(kāi)Oracle 10G手工創(chuàng)建數(shù)據(jù)庫(kù)的神秘面紗
最近在網(wǎng)上看到很多初學(xué)Oracle或是從舊版的Oracle升級(jí)到10G的朋友們都問(wèn)如何在Oracle 10G里手工建庫(kù)的問(wèn)題。今天正好有空,于是乎把在Oracle 10G里手工建庫(kù)的全過(guò)程寫(xiě)出來(lái),供各位從事Oracle工作和學(xué)習(xí)的同朋友們參考,希望能夠?qū)Υ蠹矣兴鶐椭?
在Oracle中建庫(kù),通常有兩種方法。一是使用Oracle的建庫(kù)工且DBCA,這是一個(gè)圖形界面工且,使用起來(lái)方便且很容易理解,因?yàn)樗慕缑嬗押谩⒚烙^,而且提示也比較齊全。在Windows系統(tǒng)中,這個(gè)工具可以在Oracle程序組中打開(kāi)(”開(kāi)始”—“程序”—“ Oracle - OraDb10g_home1”—“ Configuration and Migration Tools”—“ Database Configuration Assistant”),也可以在命令行(”開(kāi)始”—“運(yùn)行”—“cmd”)工具中直接輸入dbca來(lái)打開(kāi)。另一種方法就是手工建庫(kù),這也就是下面所要講的內(nèi)容。
手工建庫(kù)比起使用DBCA建庫(kù)來(lái)說(shuō),是比較麻煩的,但是如果我們學(xué)好了手工建庫(kù)的話,就可以使我們更好地理解Oracle數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)。手工建庫(kù)須要經(jīng)過(guò)幾個(gè)步驟,每一個(gè)步驟都非常關(guān)鍵。它包括:
1、 創(chuàng)建必要的相關(guān)目錄
2、 創(chuàng)建初始化參數(shù)文件
3、 設(shè)置環(huán)境變量Oracle_sid
4、 創(chuàng)建實(shí)例
5、 創(chuàng)建口令文件
6、 啟動(dòng)數(shù)據(jù)庫(kù)到nomount(實(shí)例)狀態(tài)
7、 執(zhí)行建庫(kù)腳本
8、 執(zhí)行catalog腳步本創(chuàng)建數(shù)據(jù)字典
9、 執(zhí)行catproc創(chuàng)建package包
10、 執(zhí)行pupbld
11、 由初始化參數(shù)文件創(chuàng)建spfile文件
12、 執(zhí)行scott腳本創(chuàng)建scott模式
做完了以上的步驟之后就可以使用“SQL>alter database open;”打開(kāi)數(shù)據(jù)庫(kù)正常的使用了。下面,我將具體地把以上的幾個(gè)步驟用實(shí)驗(yàn)展開(kāi)來(lái)講。
實(shí)驗(yàn)系統(tǒng)平臺(tái):Windows Server 2000 數(shù)據(jù)庫(kù)系統(tǒng)版本:Oracle Database 10G
Oracle的安裝路徑:D盤(pán) 創(chuàng)建的數(shù)據(jù)庫(kù)名稱:book
1、打開(kāi)命令行工具,創(chuàng)建必要有相關(guān)目錄
C:>mkdir D:oracleproduct10.1.0adminbook
C:>mkdir D:oracleproduct10.1.0adminbookbdump
C:>mkdir D:oracleproduct10.1.0adminbookudump
C:>mkdir D:oracleproduct10.1.0adminbookcdump
C:>mkdir D:oracleproduct10.1.0adminbookpfile
C:>mkdir D:oracleproduct10.1.0adminbookcreate
C:>mkdir D:oracleproduct10.1.0oradatabook
上面創(chuàng)建目錄的過(guò)程也可以在Windows的圖形界面中去創(chuàng)建。其中D:oracleproduct10.1.0adminbook目錄下的幾個(gè)子目錄主要用于存放數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中的跟蹤信息。最重要的兩上子目錄是bdump和udump目錄,bdump目錄存放的是數(shù)據(jù)庫(kù)動(dòng)行過(guò)程中的各個(gè)后臺(tái)進(jìn)程的跟蹤信息,當(dāng)中alert文件是警告文件,其文件名稱為alert_book.log,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題時(shí),首先就可以去查看此文件以找出原因,手工創(chuàng)建過(guò)程中出現(xiàn)的各種問(wèn)題往往也可以通過(guò)查看這個(gè)文件找到原因。Udump目錄存放和特定會(huì)話相關(guān)的跟蹤信息。D:oracleproduct10.1.0oradatabook目錄存放各種數(shù)據(jù)庫(kù)文件,包括控制文件、數(shù)據(jù)文件、重做日志文件。
2、創(chuàng)建初始化參數(shù)文件
數(shù)據(jù)庫(kù)系統(tǒng)啟動(dòng)時(shí)須要用初始化參數(shù)文件的設(shè)置分配內(nèi)存、啟動(dòng)必要的后臺(tái)進(jìn)程的。因此,初始化參數(shù)文件創(chuàng)建的是否正確、參數(shù)設(shè)置是否正確關(guān)系著整個(gè)建庫(kù)的“命運(yùn)”。
創(chuàng)建初始化參數(shù)文件可以通過(guò)拷貝現(xiàn)在的初始化參數(shù)文件并將其做適當(dāng)?shù)男薷募纯桑瑥亩槐匾檬止とヒ痪湟痪涞貙?xiě)出來(lái),因?yàn)槌跏蓟瘏?shù)文件的結(jié)構(gòu)體系基本上都是一樣的。在我們安裝Oracle的時(shí)候,系統(tǒng)已經(jīng)為我們安裝了一個(gè)名為orcl的數(shù)據(jù)庫(kù),于是我們可以從它那里得到一份初始化參數(shù)文件。打開(kāi)D:oracleproduct10.1.0adminorclpfile,找到init.ora文件,把它拷貝到D:oracleproduct10.1.0bd_1databse下,并將其改名為initbook.ora。接著用記事本的方式打開(kāi)initbook.ora,修改以下的內(nèi)容:
db_domain=''
db_name=book
control_files=('D:oracleproduct10.1.0oradatabookcontrol01.ctl', 'D:oracleproduct10.1.0oradatabookcontrol02.ctl', 'D:oracleproduct10.1.0oradatabookcontrol03.ctl')
undo_management=AUTO
undo_tablespace=UNDOTBS1 ――注意此處的“UNDOTBS1”要和建庫(kù)腳步本中對(duì)應(yīng)
background_dump_dest=D:oracleproduct10.1.0adminbookbdump
core_dump_dest=D:oracleproduct10.1.0adminbookcdump
user_dump_dest=D:oracleproduct10.1.0adminbookudump
3、打開(kāi)命令行,設(shè)置環(huán)境變量oracle_sid
C:>set oracle_sid=book
設(shè)置環(huán)境變量的目地是在默認(rèn)的情況下,指定命令行中所操作的數(shù)據(jù)庫(kù)實(shí)例是book。
4、創(chuàng)建實(shí)例(即后臺(tái)控制服務(wù))
C:>oradim –new –sid book
oradim是創(chuàng)建實(shí)例的工具程序名稱,-new表明執(zhí)行新建實(shí)例,-delete表明執(zhí)行刪掉實(shí)例,-sid指定害例的名稱。
5、創(chuàng)建口令文件
C:>orapwd file=D:oracleproduct10.1.0db_1databasepwdbook.ora password=bookstore entries=2
orapwd是創(chuàng)建口令文件的工肯程序各稱,file參數(shù)指定口令文件所在的目錄和文件名稱,password參數(shù)指定sys用戶的口令,entries參數(shù)指定數(shù)據(jù)庫(kù)擁用DBA權(quán)限的用戶的個(gè)數(shù),當(dāng)然還有一個(gè)force參數(shù),相信您不指即明,這里就不再細(xì)述。
請(qǐng)注意,這里的命令要一行輸入,中間不得換行,否則會(huì)出現(xiàn)不必要的錯(cuò)誤。
口令文件是專門存放sys用戶的口令,因?yàn)閟ys用戶要負(fù)責(zé)建庫(kù)、啟動(dòng)數(shù)據(jù)庫(kù)、關(guān)閉數(shù)據(jù)庫(kù)等特殊任務(wù),把以sys用戶的中令單獨(dú)存放于口令文件中,這樣數(shù)據(jù)庫(kù)末打開(kāi)時(shí)也能進(jìn)行口令驗(yàn)證。
6、啟動(dòng)數(shù)據(jù)庫(kù)到nomount(實(shí)例)狀態(tài)
C:>sqlplus /nolog
SQL*Plus:Release 10.1.0.2.0 - Production on 星期三 6月 29 23:09:35 2005
Copyright 1982,2004,Oracle. All rights reserved.
SQL>connect sys/bookstore as sysdba ---這里是用sys連接數(shù)據(jù)庫(kù)
已連接到空閑例程
SQL>startup nomount
ORACLE 例程已經(jīng)啟動(dòng)。
Total System Global Area 319888364bytes
Fixed Size 453612bytes
Variable Size 209715200bytes
Database Buffers 109051904bytes
Redo Buffers 667648bytes
SQL>
7、執(zhí)行建庫(kù)腳本
執(zhí)行建庫(kù)腳本,首先要有建庫(kù)的腳本。(去哪找建庫(kù)腳本呢?我又沒(méi)有!)不用著急,請(qǐng)接著往下看。
得到一個(gè)符合自己要求的建庫(kù)腳本有兩種方法,一種方法是在自己的電腦上用DBCA來(lái)建,接照它的提示一步步地去做,在做到第十二步的時(shí)候,請(qǐng)選擇“生成建庫(kù)腳本”,然后就大功告成,你就可以到相應(yīng)的目錄上去找到那個(gè)腳本并適當(dāng)?shù)匦匏憧杀阌谩A硪环N方法就是自己手工去寫(xiě)一份建庫(kù)腳本,這也是這里要見(jiàn)意使用的方法,用記事本編輯如下的內(nèi)容,并將其保存為文件名任取而后綴名為(*.sql)的SQL腳本,這里保存到E盤(pán)根本錄下且文件名稱為book.sql。
Create database book
datafile 'D:oracleproduct10.1.0oradatabooksystem01.dbf' size 300M reuse autoextend on next 10240Kmaxsize unlimited
extent management local
sysaux datafile 'D:oracleproduct10.1.0oradatabooksysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'D:oracleproduct10.1.0oradatabooktemp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace 'UNDOTBS1' --請(qǐng)注意這里的undo表空間要和參數(shù)文件對(duì)應(yīng)
datafile 'D:oracleproduct10.1.0oradatabookundotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('D:oracleproduct10.1.0oradatabookredo01.log') size 10240K,
group 2 ('D:oracleproduct10.1.0oradatabookredo02.log') size 10240K,
group 3 ('D:oracleproduct10.1.0oradatabookredo03.log') size 10240K
接著就執(zhí)行剛建的建庫(kù)腳本:
SQL>start E:book.sql
8、執(zhí)行catalog腳步本創(chuàng)建數(shù)據(jù)字典
SQL>start D:oracleproduct10.1.0db_1rdbmsadmincatalog.sql
9、執(zhí)行catproc創(chuàng)建package包
SQL>start D:oracleproduct10.1.0db_1rdbmsadmincatproc.sql
10、執(zhí)行pupbld
在執(zhí)行pupbld之前要把當(dāng)前用戶(sys)轉(zhuǎn)換成system,即以system賬戶連接數(shù)據(jù)庫(kù)。因?yàn)榇藬?shù)據(jù)庫(kù)是剛建的,所以system的口令是系統(tǒng)默認(rèn)的口令,即manager。你可以在數(shù)據(jù)庫(kù)建好以后再來(lái)重新設(shè)置此賬戶的口令。
SQL>connect system/manager
SQL>start D:oracleproduct10.1.0db_1sqlplusadminpupbld.sql
11、由初始化參數(shù)文件創(chuàng)建spfile文件
SQL>create spfile from pfile;
12、執(zhí)行scott腳本創(chuàng)建scott模式
SQL>start D:oracleproduct10.1.0db_1rdbmsadminscott.sql
13、把數(shù)據(jù)庫(kù)打開(kāi)到正常狀態(tài)
SQL>alter database open;
14、以scott連接到數(shù)據(jù)庫(kù)(口令為tiger),測(cè)試新建數(shù)據(jù)庫(kù)是否可以正常運(yùn)行
至此,整個(gè)數(shù)據(jù)庫(kù)就已經(jīng)建好了。接著你就可以在此數(shù)據(jù)庫(kù)上建立自己的賬戶和表空間啦以及數(shù)據(jù)庫(kù)對(duì)象,這里就不再作更多地?cái)⑹觥?/P>
