Oracle 伺服器架構總覽
實例進程
- SGA (System Global Area):共享記憶體區
- Shared Pool:Library Cache (SQL 共用、執行計劃、LRU)、Data Dictionary Cache (Row Cache)
- Database Buffer Cache:資料區塊緩存 (基本讀寫單位 = DB_BLOCK_SIZE)
- Redo Log Buffer:重做項目緩存
- Large Pool / Java Pool / Streams Pool (可選)
- 背景進程:
- PMON (Process Monitor):進程失敗清理、釋放鎖、重註冊 Listener
- SMON (System Monitor):實例恢復、臨時段清理、空間合併 (每 3 秒)
- DBWn (Database Writer):髒區塊寫入資料檔
- LGWR (Log Writer):Redo Log Buffer 寫入線上重做日志
- CKPT (Checkpoint):同步控制檔/資料檔檢查點資訊、觸發 DBW 寫入
- ARCn (Archiver):歸檔模式下複製線上日志至歸檔目的地
- RECO (Recoverer):分散式交易恢復
用戶連接進程 (PGA)
- User Process:客戶端進程,發送 SQL
- Server Process:服務器端專用/共享進程,執行 SQL、讀寫 SGA
資料庫檔案 (物理結構)
- 必須:資料檔、控制檔、線上重做日志檔 (至少 2 組)
- 可選:參數檔 (SPFILE/PFILE)、密碼檔、歸檔日志檔
動態參數調整
ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
ALTER SYSTEM SET DB_CACHE_SIZE = 64M;
ALTER SYSTEM SET LARGE_POOL_SIZE = 64M;
OS 驗證設定
-- 建立 OS 群組:ora_dba, ora_sid_dba, ora_oper, ora_sid_oper
-- 將 OS 用戶加入對應群組
-- sqlnet.ora 設定:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
忘記 SYS/SYSTEM 密碼恢復
- 刪除密碼檔:
del %ORACLE_HOME%\database\PWD.ora
- 重建:
orapwd file=D:\PWD.ora password=admin1 entries=10
- 或 OS 驗證連入:
sqlplus / as sysdba → ALTER USER SYS IDENTIFIED BY newpwd;
儲存邏輯階層
Block (區塊) → Extent (盤區) → Segment (段) → Tablespace (表空間)
網路配置檔位置
%ORACLE_HOME%\NETWORK\ADMIN\TNSNAMES.ORA
8 種啟動模式完整對比
| 命令 | 階段 | 可用操作 | 需求檔案 |
| STARTUP NOMOUNT | Instance 啟動 | 建立資料庫、重建控制檔 | PFILE/SPFILE |
| STARTUP MOUNT | + 掛載控制檔 | 歸檔模式切換、介質恢復、檔案離線/重定位 | + 控制檔 |
| STARTUP OPEN | + 開啟資料/日志檔 | 正常業務存取 | + 所有資料檔、日志檔 |
| STARTUP | 完整 (NOMOUNT→MOUNT→OPEN) | 標準啟動 | 全部 |
| STARTUP RESTRICT | 受限模式 | 僅 RESTRICTED SESSION 權限用戶 | 全部 |
| STARTUP FORCE | 強制 (ABORT→正常啟動) | 無法正常關閉時 | 全部 |
| STARTUP PFILE=... | 指定參數檔 | 參數測試、災難恢復 | 指定 PFILE |
| STARTUP EXCLUSIVE | 獨佔模式 (RAC) | 單實例掛載 | 全部 |
3 種關閉模式