| 檔案 | 功能 | 備份/恢復關鍵 |
| Data File | 儲存表、索引、LOB 等使用者資料 | RMAN 全備/增量備份核心對象 |
| Control File | 資料庫元資料:檔案名、SCN、Checkpoint、RMAN 記錄、資料庫結構 | **必須多重鏡像** (3 份以上),遺失即需重建 |
| Redo Log File | 循序記錄所有變更 (Redo Entry),支援崩潰恢復、Data Guard | 歸檔模式下必須備份 Archived Redo Log |
2. 邏輯儲存階層
資料庫
└─ 表空間
└─ Segment (表/索引/LOB/Undo/暫存)
└─ Extent (連續區塊集合)
└─ Block (最小 I/O 單位)
3. 表空間類型與查詢
-- 表空間狀態
SELECT tablespace_name, status, contents, extent_management, allocation_type
FROM dba_tablespaces;
-- 表空間與資料檔對應
SELECT tablespace_name, file_name, bytes/1024/1024 MB, autoextensible
FROM dba_data_files;
三、 實例:記憶體結構與背景進程
1. SGA (System Global Area) - 共享記憶體
- Shared Pool:Library Cache (SQL/PLSQL 計畫)、Dictionary Cache、Result Cache
- Database Buffer Cache:Default/Keep/Recycle 三池 + 多區塊大小
- Redo Log Buffer:LGWR 寫入前暫存
- Large Pool / Java Pool / Streams Pool / Fixed SGA
2. PGA (Program Global Area) - 專用記憶體
- 排序/雜湊/位圖合併工作區
- 會話資訊、游標狀態、PL/SQL 集合
- 自動管理:
PGA_AGGREGATE_TARGET、PGA_AGGREGATE_LIMIT (12c+)
3. 五大核心背景進程
| 進程 | 職責 | 關鍵等待事件 |
| PMON | 失敗進程清理:釋放鎖、回滾交易、清理 SGA/PGA | pmon timer |
| SMON | 執行個體恢復 (前滾/回滾)、合併暫存段 | smon timer |
| DBWR | 髒塊寫入資料檔 (LRU/LRUW 演算法) | db file parallel write, free buffer waits |
| LGWR | Redo Log Buffer 循序寫入線上 Redo Log | log file sync, log file parallel write |
| CKPT | 更新控制檔/資料檔 Checkpoint SCN,指引 DBWR | control file sequential read |
四、 參數檔案與啟動階段
| 階段 | 動作 | 關鍵檔案/記憶體 |
| NOMOUNT | 讀取參數檔 → 配置 SGA → 啟動背景進程 | PFILE/SPFILE |
| MOUNT | 掛載控制檔 → 讀取資料庫結構 | Control File |
| OPEN | 開啟資料檔/Redo Log → 線上可用 | Data File, Redo Log |
五、 RAC 架構:一資料庫多實例
- 共享:資料檔、控制檔、Redo Log (共享儲存/ASM)
- 獨立:各節點擁有獨立 SGA、PGA、背景進程、ORACLE_SID
- 協調:GCS (Global Cache Service) + GES (Global Enqueue Service) 維護緩存一致性與鎖協調
- 優勢:高可用 (節點故障自動切換)、擴展性 (新增節點分攤負載)
六、 關鍵動態視圖速查
| 視圖 | 用途 |
| V$DATABASE | 資料庫屬性:DB_NAME, DB_UNIQUE_NAME, LOG_MODE, OPEN_MODE |
| V$INSTANCE | 實例屬性:INSTANCE_NAME, HOST_NAME, VERSION, STARTUP_TIME, STATUS |
| V$DATAFILE / V$CONTROLFILE / V$LOGFILE | 物理檔案路徑、狀態、大小 |
| V$SGA / V$SGASTAT / V$PGASTAT | 記憶體配置與使用統計 |
| V$BGPROCESS | 背景進程狀態 |
七、 架構師總結
- 資料庫 = 持久化容器,設計重點:檔案分佈、備份策略、容量規劃
2. 實例 = 處理引擎,設計重點:記憶體分配、進程模型、Checkpoint/Redo 策略
3. 啟動 = 實例掛載資料庫,參數檔決定實例形態,控制檔連結資料庫結構
4. RAC = 多引擎共用一容器,靠 GCS/GES 協調一致性
搞清「資料庫 vs 實例」邊界,是 Oracle 架構設計、故障診斷、升級遷移、高可用部署的認知基石。
- 上一篇文章: Windows 7 安裝 Oracle 11g 相容性失敗完整解決方案:修改 refhost.xml 繞過檢查
- 下一篇文章: Oracle 資料庫前瞻性維護:自動工作負載儲存庫 (AWR) 啟用、配置與實戰策略
Copyright ©
程式碼之家 All Rights Reserved