首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 10g Windows 手工建立資料庫實戰筆記

     編輯:Oracle 資料庫基礎

前言

雖然 DBCA (Database Configuration Assistant) 提供圖形化建庫介面,但掌握手工建庫流程有助於深入理解 Oracle 架構。本文記錄在 Windows Server 平台上,使用 SQL*Plus 執行腳本手工建立 Oracle 10g 資料庫的完整步驟與關鍵腳本內容。

建庫核心步驟概覽

  1. 建立必要目錄結構 (admin, oradata, flash_recovery_area)
  2. 建立 Windows 服務與密碼檔
  3. 準備初始化參數檔
  4. 依序執行四大建庫腳本
  5. 建立 SPFILE 並啟動資料庫

一、 目錄結構建立

mkdir d:\Oracle\product\10.1.0\database
mkdir e:\Oracle\admin\Ora10g\bdump
mkdir e:\Oracle\admin\Ora10g\cdump
mkdir e:\Oracle\admin\Ora10g\create
mkdir e:\Oracle\admin\Ora10g\pfile
mkdir e:\Oracle\admin\Ora10g\udump
mkdir e:\Oracle\Flash_recovery_area
mkdir e:\Oracle\oradata
mkdir e:\Oracle\oradata\Ora10g

二、 建立實例服務與密碼檔

REM 設定 SID
set ORACLE_SID=Ora10g

REM 建立實例服務 (手動啟動),再改為自動
d:\oracle\product\10.1.0\DB_1\bin\oradim.exe -new -sid Ora10g -startmode manual -spfile
d:\oracle\product\10.1.0\DB_1\bin\oradim.exe -edit -sid Ora10g -startmode auto -spfile

REM 建立密碼檔
d:\oracle\product\10.1.0\DB_1\bin\orapwd.exe file=d:\Oracle\product\10.1.0\db_1\PWDOra10g.ora password=SysPassword force=y

三、 核心建庫腳本詳解

需先備妥 init.ora 放置於 D:\Oracle\admin\Ora10g\scripts\,關鍵參數包含 db_name, control_files, undo_management, *.dump_dest 等。

1. CreateDB.sql - 建立資料庫核心結構

CONNECT SYS/SysPassword AS SYSDBA
SET ECHO ON
SPOOL D:\Oracle\admin\Ora10g\create\CreateDB.log

STARTUP NOMOUNT PFILE="D:\Oracle\admin\Ora10g\scripts\init.ora";

CREATE DATABASE Ora10g
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE 'E:\Oracle\oradata\Ora10g\system01.dbf' SIZE 250M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'E:\Oracle\oradata\Ora10g\temp01.dbf' SIZE 40M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOTBS1" DATAFILE 'E:\Oracle\oradata\Ora10g\undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('E:\Oracle\oradata\Ora10g\redo01.log') SIZE 102400K,
        GROUP 2 ('E:\Oracle\oradata\Ora10g\redo02.log') SIZE 102400K,
        GROUP 3 ('E:\Oracle\oradata\Ora10g\redo03.log') SIZE 102400K;

SPOOL OFF
EXIT;

2. CreateDBFiles.sql - 建立應用表空間

CONNECT SYS/SysPassword AS SYSDBA
SET ECHO ON
SPOOL D:\Oracle\admin\Ora10g\create\CreateDBFiles.log

CREATE TABLESPACE "INDX" LOGGING DATAFILE 'E:\Oracle\oradata\Ora10g\indx01.dbf' SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TOOLS" LOGGING DATAFILE 'E:\Oracle\oradata\Ora10g\tools01.dbf' SIZE 10M REUSE AUTOEXTEND ON NEXT 320K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "USERS" LOGGING DATAFILE 'E:\Oracle\oradata\Ora10g\users01.dbf' SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

SPOOL OFF
EXIT;

3. CreateDBCatalog.sql - 建立資料字典與 PL/SQL 套件

CONNECT SYS/SysPassword AS SYSDBA
SET ECHO ON
SPOOL D:\Oracle\admin\Ora10g\create\CreateDBCatalog.log

@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catexp7.sql
@?/rdbms/admin/catblock.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/catoctk.sql
@?/rdbms/admin/owminst.plb

CONNECT SYSTEM/Manager
@?/sqlplus/admin/pupbld.sql

CONNECT SYSTEM/MANAGER
SET ECHO ON
SPOOL D:\Oracle\admin\Ora10g\create\sqlPlusHelp.log
@?/sqlplus/admin/help/hlpbld.sql helpus.sql
SPOOL OFF
EXIT;

4. postDBCreation.sql - 事後處理與 SPFILE 建立

CONNECT SYS/SysPassword AS SYSDBA
SET ECHO ON
SPOOL D:\Oracle\admin\Ora10g\create\postDBCreation.log

@?/rdbms/admin/utlrp.sql  -- 重新編譯失效物件
SHUTDOWN IMMEDIATE;

CONNECT SYS/SysPassword AS SYSDBA
SET ECHO ON
SPOOL D:\Oracle\admin\Ora10g\create\postDBCreation.log APPEND

CREATE SPFILE='D:\oracle\product\10.1.0\db_1\database\spfileOra10g.ora' FROM PFILE='D:\Oracle\admin\Ora10g\scripts\init.ora';

STARTUP;
EXIT;

四、 Linux 平台對應腳本架構

Linux 下流程同理,差異在於路徑分隔符、環境變數設定 (export ORACLE_HOME, LD_LIBRARY_PATH) 及使用 orapwd、sqlplus 完整路徑呼叫。建議撰寫 Shell Script (create_db.sh) 串聯上述四個 .sql 腳本自動化執行。

五、 關鍵提醒

  • 字元集選擇 (ZHS16GBK/AL32UTF8) 需在 CREATE DATABASE 時確定,事後修改極其困難。
  • UNDO_TABLESPACE 參數值必須與 CREATE DATABASE 中定義的 Undo 表空間名稱一致。
  • 建議啟用 EXTENT MANAGEMENT LOCAL 及 SEGMENT SPACE MANAGEMENT AUTO (ASSM) 簡化空間管理。
  • 完成後務必執行 utlrp.sql 編譯所有 PL/SQL 物件,並建立 SPFILE 利於動態參數調整。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved