Oracle 物理存儲結構由三類核心文件構成,各司其職、緊密協作:
此機制以邏輯讀優於物理讀、順序寫 Redo 優於隨機寫數據文件為核心性能原則。
| 視圖 | 屬性 | 關鍵列 | 典型用途 |
|---|---|---|---|
| DBA_DATA_FILES | 靜態 | FILE_NAME, FILE_ID, TABLESPACE_NAME, BYTES, BLOCKS, STATUS, AUTOEXTENSIBLE, MAXBYTES | 容量規劃、表空間映射、自動擴展監控 |
| V$DATAFILE | 動態 | FILE#, STATUS, CHECKPOINT_CHANGE#, BYTES, BLOCKS, NAME, CREATION_TIME, ENABLED | 實時狀態、檢查點 SCN、恢復進度、在線/離線狀態 |
SELECT
f.tablespace_name,
ROUND(SUM(f.bytes)/1024/1024,2) AS total_mb,
ROUND(SUM(CASE WHEN f.autoextensible='YES' THEN f.maxbytes ELSE f.bytes END)/1024/1024,2) AS max_mb,
COUNT(*) AS file_cnt
FROM dba_data_files f
GROUP BY f.tablespace_name
ORDER BY 1;
CONTROL_FILES 列出所有鏡像路徑,任一損壞實例崩潰(保護數據一致性)。ALTER DATABASE BACKUP CONTROLFILE TO TRACE 生成文本重建腳本。CONFIGURE CONTROLFILE AUTOBACKUP ON(RMAN),備份後自動備份控制文件與 SPFILE。SELECT STATUS, NAME, BLOCK_SIZE, FILE_SIZE_BLKS FROM V$CONTROLFILE;
STATUS 顯示 VALID/INVALID,異常需立即介入。
UNUSED → CURRENT → ACTIVE → INACTIVE → (歸檔完成) → UNUSED (可覆寫)
-- 手動觸發日誌切換
ALTER SYSTEM SWITCH LOGFILE;
-- 監控當前組與狀態
SELECT GROUP#, MEMBERS, STATUS, ARCHIVED, FIRST_CHANGE#, FIRST_TIME
FROM V$LOG ORDER BY GROUP#;
| 參數/策略 | 建議值/原則 | 理由 |
|---|---|---|
| 日誌組數量 | 4~6 組 | 避免「Log Switch 等待」與「歸檔追不上」 |
| 單組大小 | 1~4 GB (視峰值 Redo 速率) | 切換頻率控制在 15~30 分鐘,平衡恢復時間與歸檔壓力 |
| 成員鏡像 | ≥2,異磁盤/異控制器 | 防單點介質故障 |
| 歸檔目標 | 快速存儲 + 異地傳輸 | 滿足 RPO/RTO |
| 啟用 Checksum | DB_BLOCK_CHECKSUM=FULL | 檢測日誌壞塊 |
數據文件承載「靜態真相」,控制文件掌握「動態地圖」,重做日誌記錄「變更歷程」。運維核心在於:多路鏡像、歸檔無縫、檢查點平滑、容量前瞻。將三類文件納入統一監控儀表盤,設置閾值告警(空間<15%、日誌切換<5min、控制文件異常),方能構建高可用存儲底座。