在Oracle中建庫,通常有兩種方法。一是使用Oracle的建庫工且DBCA,這是一個圖形界面工且,使用起來友善且很容易了解,因為它的界面友好、美觀,而且提示也比較齊全。在Windows系統中,這個工具可以在Oracle程式組中打開(”開始”—“程式”—“ Oracle - OraDb10g_home1”—“ Configuration and Migration Tools”—“ Database Configuration Assistant”),也可以在指令行(”開始”—“運作”—“cmd”)工具中直接輸入dbca來打開。另一種方法就是手工建庫,這也就是下面所要講的内容。
手工建庫比起使用DBCA建庫來說,是比較麻煩的,但是如果我們學好了手工建庫的話,就可以使我們更好地了解Oracle資料庫的體系結構。手工建庫須要經過幾個步驟,每一個步驟都非常關鍵。它包括:
1、 建立必要的相關目錄
2、 建立初始化參數檔案
3、 設定環境變量Oracle_sid
4、 建立執行個體
5、 建立密碼檔案
6、 啟動資料庫到nomount(執行個體)狀态
7、 執行建庫腳本
8、 執行catalog腳步本建立資料字典
9、 執行catproc建立package包
10、 執行pupbld
11、 由初始化參數檔案建立spfile檔案
12、 執行scott腳本建立scott模式
做完了以上的步驟之後就可以使用“SQL>alter database open;”打開資料庫正常的使用了。下面,我将具體地把以上的幾個步驟用實驗展開來講。
實驗系統平台:Windows Server 2000 資料庫系統版本:Oracle Database 10G
Oracle的安裝路徑:D盤 建立的資料庫名稱:book
1、打開指令行工具,建立必要有相關目錄
C:/>mkdir D:/oracle/product/10.1.0/admin/book
C:/>mkdir D:/oracle/product/10.1.0/admin/book/bdump
C:/>mkdir D:/oracle/product/10.1.0/admin/book/udump
C:/>mkdir D:/oracle/product/10.1.0/admin/book/cdump
C:/>mkdir D:/oracle/product/10.1.0/admin/book/pfile
C:/>mkdir D:/oracle/product/10.1.0/admin/book/create
C:/>mkdir D:/oracle/product/10.1.0/oradata/book
上面建立目錄的過程也可以在Windows的圖形界面中去建立。其中D:/oracle/product/10.1.0/admin/book目錄下的幾個子目錄主要用于存放資料庫運作過程中的跟蹤資訊。最重要的兩上子目錄是bdump和udump目錄,bdump目錄存放的是資料庫動行過程中的各個背景程序的跟蹤資訊,當中alert檔案是警告檔案,其檔案名稱為alert_book.log,當資料庫出現問題時,首先就可以去檢視此檔案以找出原因,手工建立過程中出現的各種問題往往也可以通過檢視這個檔案找到原因。Udump目錄存放和特定會話相關的跟蹤資訊。D:/oracle/product/10.1.0/oradata/book目錄存放各種資料庫檔案,包括控制檔案、資料檔案、重做日志檔案。
2、建立初始化參數檔案
資料庫系統啟動時須要用初始化參數檔案的設定配置設定記憶體、啟動必要的背景程序的。是以,初始化參數檔案建立的是否正确、參數設定是否正确關系着整個建庫的“命運”。
建立初始化參數檔案可以通過拷貝現在的初始化參數檔案并将其做适當的修改即可,進而不必要用手工去一句一句地寫出來,因為初始化參數檔案的結構體系基本上都是一樣的。在我們安裝Oracle的時候,系統已經為我們安裝了一個名為orcl的資料庫,于是我們可以從它那裡得到一份初始化參數檔案。打開D:/oracle/product/10.1.0/admin/orcl/pfile,找到init.ora檔案,把它拷貝到D:/oracle/product/10.1.0/bd_1/databse下,并将其改名為initbook.ora。接着用記事本的方式打開initbook.ora,修改以下的内容:
db_domain=""
db_name=book
control_files=("D:/oracle/product/10.1.0/oradata/book/control01.ctl", "D:/oracle/product/10.1.0/oradata/book/control02.ctl", "D:/oracle/product/10.1.0/oradata/book/control03.ctl")
undo_management=AUTO
undo_tablespace=UNDOTBS1 ――注意此處的“UNDOTBS1”要和建庫腳步本中對應
background_dump_dest=D:/oracle/product/10.1.0/admin/book/bdump
core_dump_dest=D:/oracle/product/10.1.0/admin/book/cdump
user_dump_dest=D:/oracle/product/10.1.0/admin/book/udump
3、打開指令行,設定環境變量oracle_sid
C:/>set oracle_sid=book
設定環境變量的目地是在預設的情況下,指定指令行中所操作的資料庫執行個體是book。
4、建立執行個體(即背景控制服務)
C:/>oradim –new –sid book
oradim是建立執行個體的工具程式名稱,-new表明執行建立執行個體,-delete表明執行删掉執行個體,-sid指定害例的名稱。
5、建立密碼檔案
C:/>orapwd file=D:/oracle/product/10.1.0/db_1/database/pwdbook.ora password=bookstore entries=2
orapwd是建立密碼檔案的工肯程式各稱,file參數指定密碼檔案所在的目錄和檔案名稱,password參數指定sys使用者的密碼,entries參數指定資料庫擁用DBA權限的使用者的個數,當然還有一個force參數,相信您不指即明,這裡就不再細述。
請注意,這裡的指令要一行輸入,中間不得換行,否則會出現不必要的錯誤。
密碼檔案是專門存放sys使用者的密碼,因為sys使用者要負責建庫、啟動資料庫、關閉資料庫等特殊任務,把以sys使用者的中令單獨存放于密碼檔案中,這樣資料庫末打開時也能進行密碼驗證。
6、啟動資料庫到nomount(執行個體)狀态
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連接配接資料庫
已連接配接到空閑例程
SQL>startup nomount
ORACLE 例程已經啟動。
Total System Global Area 319888364bytes
Fixed Size 453612bytes
Variable Size 209715200bytes
Database Buffers 109051904bytes
Redo Buffers 667648bytes
SQL>
7、執行建庫腳本
執行建庫腳本,首先要有建庫的腳本。(去哪找建庫腳本呢?我又沒有!)不用着急,請接着往下看。
得到一個符合自己要求的建庫腳本有兩種方法,一種方法是在自己的電腦上用DBCA來建,接照它的提示一步步地去做,在做到第十二步的時候,請選擇“生成建庫腳本”,然後就大功告成,你就可以到相應的目錄上去找到那個腳本并适當地修它便可便用。另一種方法就是自己手工去寫一份建庫腳本,這也是這裡要見意使用的方法,用記事本編輯如下的内容,并将其儲存為檔案名任取而字尾名為(*.sql)的SQL腳本,這裡儲存到E盤根本錄下且檔案名稱為book.sql。
Create database book
datafile 'D:/oracle/product/10.1.0/oradata/book/system01.dbf' size 300M reuse autoextend on next 10240Kmaxsize unlimited
extent management local
sysaux datafile 'D:/oracle/product/10.1.0/oradata/book/sysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'D:/oracle/product/10.1.0/oradata/book/temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1" --請注意這裡的undo表空間要和參數檔案對應
datafile 'D:/oracle/product/10.1.0/oradata/book/undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('D:/oracle/product/10.1.0/oradata/book/redo01.log') size 10240K,
group 2 ('D:/oracle/product/10.1.0/oradata/book/redo02.log') size 10240K,
group 3 ('D:/oracle/product/10.1.0/oradata/book/redo03.log') size 10240K
接着就執行剛建的建庫腳本:
SQL>start E:/book.sql
8、執行catalog腳步本建立資料字典
SQL>start D:/oracle/product/10.1.0/db_1/rdbms/admin/catalog.sql
9、執行catproc建立package包
SQL>start D:/oracle/product/10.1.0/db_1/rdbms/admin/catproc.sql
10、執行pupbld
在執行pupbld之前要把目前使用者(sys)轉換成system,即以system賬戶連接配接資料庫。因為此資料庫是剛建的,是以system的密碼是系統預設的密碼,即manager。你可以在資料庫建好以後再來重新設定此賬戶的密碼。
SQL>connect system/manager
SQL>start D:/oracle/product/10.1.0/db_1/sqlplus/admin/pupbld.sql
11、由初始化參數檔案建立spfile檔案
SQL>create spfile from pfile;
12、執行scott腳本建立scott模式
SQL>start D:/oracle/product/10.1.0/db_1/rdbms/admin/scott.sql
13、把資料庫打開到正常狀态
SQL>alter database open;
14、以scott連接配接到資料庫(密碼為tiger),測試建立資料庫是否可以正常運作