超大型系統(用戶百萬級、資料量 1TB+、7×24 不停機)要求極高可用性與擴展性。以 Oracle 8.0.6 Parallel Server(RAC 前身)為例,系統闡述應用劃分策略、PCM 鎖機制、物理結構設計、磁碟劃分與備份恢復全景規劃。
RAC 多實例共享資料檔,透過 PCM (Parallel Cache Management) 鎖 維護緩衝區一致性。Ping:實例 A 修改區塊 → 寫入磁碟 → 實例 B 讀取同區塊,將 Memory I/O 變為 2×Disk I/O + Memory I/O,嚴重拖慢效能。
| 方法 | 原理 | 減少 Ping 類型 | 適用場景 |
|---|---|---|---|
| 功能模組劃分 | 不同節點跑不同業務模組 | True Ping | 模組邊界清晰、低耦合 |
| 用戶類型劃分 | 不同用戶群導向不同節點 | True Ping | 租戶隔離、部門獨立 |
| 資料範圍劃分 | 不同節點存取不同分區/表空間 | True + False Ping | 資料天然可分片(地區、時間) |
| 時間窗口劃分 | 不同時段跑不同批次作業 | True Ping | 批次與線上分離 |
核心原則:最小化 Ping + 負載均衡。實務上常混合採用「資料範圍劃分為主,功能模組輔助」。
INITIAL=NEXT、PCTINCREASE=0、FREELIST GROUPS = 實例數、FREELISTS = CPU核心數。SYSTEM、SYSAUX、UNDO(每實例一個)、TEMP(每實例一個)、USERS、INDEXES、APP_DATA_01..N(按分區/模組)。GC_FILES_TO_LOCKS 精細映射 PCM 鎖至資料檔,減少 False Ping。# 範例:8 節點 RAC,EMC Symmetrix DMX
/u01/oradata -> DATA_DG (ASM) -> 系統、UNDO、TEMP、USERS
/u02/oradata -> INDEX_DG (ASM) -> 所有索引表空間
/u03/oradata -> REDO_DG (ASM) -> 線上重做日誌(每實例專用組)
/u04/oradata -> ARCH_DG (ASM) -> 歸檔日誌
/u05/oradata -> BACKUP_DG (ASM) -> RMAN 備份集
# 控制檔多路徑:+DATA_DG, +REDO_DG, +ARCH_DG
原則:I/O 均勻分散、單點故障不影響核心運作、ASM 磁碟組按效能層級分組。
CONFIGURE CONTROLFILE AUTOBACKUP ON。SRVCTL 管理服務、負載均衡、故障轉移(TAF/FAN)。DBMS_AUTO_TASK_ADMIN 統計收集、索引重建、空間整理。大型 Oracle 設計不再是單機參數調優,而是架構層面的應用劃分、存儲規劃、叢集管理、自動化運維系統工程。掌握 PCM 鎖與 Ping 本質,善用現代 RAC 特性,方能支撐百萬用戶、PB 級資料的核心業務系統。