注意:藍色字型為建立資料庫過程中要執行的各種命令。紅色為在實踐中可能需要修改的內容及提示。綠色字型為用到的檔案中內容。
手工建庫比起使用DBCA建庫來說,是比較麻煩的,但是如果我們學好了手工建庫的話,就可以使我們更好地理解Oracle資料庫的體繫結構。
下面,我將具體地把以上的幾個步驟用實驗展開來講。
Oracle的安裝路徑:D盤 建立的資料庫名稱:sm
(下文中關於路徑及資料名稱請在實驗中相應修改)
1、開啟命令列工具,建立必要有相關目錄
C:\>mkdir D:\oracle\product\10.2.0\admin\sm
C:\>mkdir D:\oracle\product\10.2.0\admin\sm\bdump
C:\>mkdir D:\oracle\product\10.2.0\admin\sm\udump
C:\>mkdir D:\oracle\product\10.2.0\admin\sm\cdump
C:\>mkdir D:\oracle\product\10.2.0\admin\sm\pfile
C:\>mkdir D:\oracle\product\10.2.0\admin\sm\create
C:\>mkdir D:\oracle\product\10.2.0\oradata\sm
上面建立目錄的過程也可以在Windows的圖形介面中去建立。其中:
D:\oracle\product\10.2.0\admin\sm目錄下的幾個子目錄主要用於存放資料庫運行過程中的跟蹤資訊。最重要的兩上子目錄是bdump和udump目錄,bdump目錄存放的是資料庫動行過程中的各個後台進程的跟蹤資訊,當中alert檔案是警告檔案,其檔案名稱為alert_sm.log,當資料庫出現問題時,首先就可以去查看此檔案以找出原因,手工建立過程中出現的各種問題往往也可以通過查看這個檔案找到原因。Udump目錄存放和特定會話相關的跟蹤資訊。
D:\oracle\product\10.2.0\oradata\sm目錄存放各種資料庫檔案,包括控制檔案、資料檔案、重做記錄檔。
2、建立初始化參數檔案
資料庫系統啟動時須要用初始化參數檔案的設定分配記憶體、啟動必要的後台進程的。因此,初始化參數檔案建立的是否正確、參數設定是否正確關係著整個建庫的“命運”。
建立初始化參數檔案可以通過拷貝現在的初始化參數檔案並將其做適當的修改即可,從而不必要用手工去一句一句地寫出來,因為初始化參數檔案的結構體系基本上都是一樣的。在我們安裝Oracle的時候,系統已經為我們安裝了一個名為orcl的資料庫,於是我們可以從它那裡得到一份初始化參數檔案。開啟D:\oracle\product\10.1.0\admin\orcl\pfile,找到init.ora開標頭檔,把它拷貝到D:\oracle\product\10.1.0\bd_1\databse下,並將其改名為initsm.ora。
注意:不是拷貝到其它路徑。啟動執行個體時會去database目錄下尋找初始設定檔案。使用dbca生產的資料庫僅僅在database目錄下產生一個導航性的init檔案,真正的資訊儲存在其他位置。
接著用記事本的方式開啟initsm.ora,修改以下的內容:
db_domain=""
db_name=sm
control_files=("D:\oracle\product\10.2.0\oradata\sm\control01.ctl", "D:\oracle\product\10.2.0\oradata\sm\control02.ctl", "D:\oracle\product\10.2.0\oradata\sm\control03.ctl")
undo_management=AUTO
undo_tablespace=UNDOTBS1
――注意此處的“UNDOTBS1”要和建庫腳步本中對應
background_dump_dest=D:\oracle\product\10.2.0\admin\sm\bdump
core_dump_dest=D:\oracle\product\10.2.0\admin\sm\cdump
user_dump_dest=D:\oracle\product\10.2.0\admin\sm\udump
3、開啟命令列,設定環境變數oracle_sid
C:\>set oracle_sid=sm
設定環境變數的目地是在預設的情況下,指定命令列中所操作的資料庫執行個體是sm。
4、建立執行個體(即後台控制服務)
C:\>oradim –new –sid sm
oradim是建立執行個體的工具程式名稱,-new表明執行建立執行個體,-delete表明執行刪掉執行個體,-sid指定執行個體的名稱。
5、建立口令檔案
C:\>orapwd file=D:\oracle\product\10.1.0\db_1\database\pwdsm.ora password=smstore entries=2
orapwd是建立口令檔案的工肯程式各稱,file參數指定口令檔案所在的目錄和檔案名稱,password參數指定sys使用者的口令,entries參數指定資料庫擁用DBA許可權的使用者的個數,當然還有一個force參數,相信您不指即明,這裡就不再細述。
請注意,這裡的命令要一行輸入,中間不得換行,否則會出現不必要的錯誤。
口令檔案是專門存放sys使用者的口令,因為sys使用者要負責建庫、啟動資料庫、關閉資料庫等特殊任務,把以sys使用者的中令單獨存放於口令檔案中,這樣資料庫末開啟時也能進行口令驗證。
6、啟動資料庫到nomount(執行個體)狀態
C:\>sqlplus /nolog
SQL>connect sys/smstore 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、執行建庫指令碼
用記事本編輯如下的內容,並將其儲存為檔案名稱任取而尾碼名為(*.sql)的SQL指令碼,這裡儲存到E盤根本錄下且檔案名稱為sm.sql。
Create database sm
datafile 'D:\oracle\product\10.1.0\oradata\sm\system01.dbf' size 300M reuse autoextend on next 10240K maxsize unlimited
extent management local
sysaux datafile 'D:\oracle\product\10.1.0\oradata\sm\sysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'D:\oracle\product\10.1.0\oradata\sm\temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace UNDOTBS1
datafile 'D:\oracle\product\10.1.0\oradata\sm\undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('D:\oracle\product\10.1.0\oradata\sm\redo01.log') size 10240K,
group 2 ('D:\oracle\product\10.1.0\oradata\sm\redo02.log') size 10240K,
group 3 ('D:\oracle\product\10.1.0\oradata\sm\redo03.log') size 10240K
接著就執行剛建的建庫指令碼:
SQL>start E:\sm.sql 或者SQL>run E:\sm.sql
8、執行catalog指令碼建立資料字典
SQL>start c:\oracle\product\10.2.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.SQL沒有執行,它的作用是為SQL*PLUS服務。當在SQL*PLUS中以普通使用者身份串連和使用資料庫時,工具本身需要使用PRODUCT PROFILE的表和視圖,我們需要登入system使用者執行該SQL。
在執行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='C:\oracle\product\10.2.0\db_1\database\initsm.ora';
12、執行scott指令碼建立scott模式
SQL>start D:\oracle\product\10.1.0\db_1\rdbms\admin\scott.sql
13、用以下命令測試資料庫建立是否完成
SQL>select * from scott.emp;
如果能夠看到僱員資訊正確顯示,就說明資料庫建立已完成
14、配置OEM,使得能夠通過瀏覽器管理和控制資料庫
CD C:\oracle\product\10.2.0\db_1\bin
Set oracle_sid=book
emca –repos recreate
emca –config dbcontrol db