手工建庫雖較 DBCA 繁瑣,卻是理解 Oracle 體系架構的最佳途徑。本文以 Windows Server 2000 + Oracle 10g 為實驗環境,詳細記錄從建立目錄、參數檔、實例服務、密碼檔,到執行建庫腳本、資料字典、PL/SQL 套件、建立 SPFILE、開啟資料庫的 14 個關鍵步驟。
D:\Oracle\product\10.1.0\db_1bookD:\Oracle\product\10.1.0\oradata\book\D:\Oracle\product\10.1.0\admin\book\ (含 bdump, udump, cdump, pfile, create)mkdir D:\Oracle\product\10.1.0\admin\book
mkdir D:\Oracle\product\10.1.0\admin\book\bdump
mkdir D:\Oracle\product\10.1.0\admin\book\udump
mkdir D:\Oracle\product\10.1.0\admin\book\cdump
mkdir D:\Oracle\product\10.1.0\admin\book\pfile
mkdir D:\Oracle\product\10.1.0\admin\book\create
mkdir D:\Oracle\product\10.1.0\oradata\book
目錄用途:bdump 存放背景進程追蹤與 alert_book.log (故障診斷首選);udump 存放用戶會話追蹤;oradata 存放控制檔、資料檔、重做日誌。
複製既有資料庫 (如 orcl) 的 init.ora 至 D:\Oracle\product\10.1.0\db_1\database\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
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
set ORACLE_SID=book
oradim -new -sid book
orapwd file=D:\Oracle\product\10.1.0\db_1\database\pwdbook.ora password=bookstore entries=2
注意:命令必須單行輸入。密碼檔儲存 SYS 密碼,使資料庫未掛載時仍能驗證 SYSDBA 身分。
sqlplus /nolog
CONNECT sys/bookstore AS SYSDBA
STARTUP NOMOUNT
此時僅啟動執行個體 (SGA + 背景進程),未掛載資料庫。
使用記事本建立 E:\book.sql,內容如下:
CREATE DATABASE book
DATAFILE 'D:\Oracle\product\10.1.0\oradata\book\system01.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE 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" DATAFILE 'D:\Oracle\product\10.1.0\oradata\book\undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
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. 資料字典視圖
@D:\Oracle\product\10.1.0\db_1\rdbms\admin\catalog.sql
-- 9. PL/SQL 內建套件
@D:\Oracle\product\10.1.0\db_1\rdbms\admin\catproc.sql
-- 10. SQL*Plus 產品使用者設定 (需以 SYSTEM 連線)
CONNECT system/manager
@D:\Oracle\product\10.1.0\db_1\sqlplus\admin\pupbld.sql
CONNECT sys/bookstore AS SYSDBA
CREATE SPFILE FROM PFILE;
SPFILE 將寫入 $ORACLE_HOME\database\spfilebook.ora,支援動態參數修改持久化。
@D:\Oracle\product\10.1.0\db_1\rdbms\admin\scott.sql
ALTER DATABASE OPEN;
CONNECT scott/tiger
SELECT * FROM tab;
掌握此流程,即掌握 Oracle 資料庫誕生的完整邏輯。