身為 DBA,必須精通資料庫物理儲存架構。Oracle 資料庫由三類核心檔案組成:**控制檔、資料檔、重做日誌檔**。合理規劃檔案位置、大小與擴展屬性,關係到資料庫效能與可恢復性。
| 情境 | LGWR 行為 |
|---|---|
| 組中至少一成員可寫 | 正常寫入可用成員,忽略不可用成員 |
| 下一組需歸檔才能用 | 暫停資料庫操作,等待歸檔完成 |
| 下一組所有成員不可用 (介質損壞) | 報錯關閉實例,需介質恢復 |
| 所有組所有成員同時不可用 | 報錯關閉實例,需介質恢復 |
MAXLOGFILES:資料庫最大日誌組數 (CREATE DATABASE 指定)MAXLOGMEMBERS:每組最大成員數 (CREATE DATABASE 指定)SHUTDOWN IMMEDIATE → 備份 → 設定 LOG_ARCHIVE_DEST_n → STARTUP MOUNT → ALTER DATABASE ARCHIVELOG → ALTER DATABASE OPEN。LOG_ARCHIVE_START=TRUE / 11g+ 預設啟用) 由 ARCn 進程非同步處理,建議設定多個歸檔目的地 (LOG_ARCHIVE_DEST_1..10) 並啟用 LOG_ARCHIVE_MAX_PROCESSES 多進程並行。SCN 是單調遞增的內部時鐘,標識資料庫變更的邏輯先後順序,是恢復、備份、一致性讀取的基石。
| SCN 類型 | 儲存位置 | 查詢視圖 | 用途 |
|---|---|---|---|
| 系統檢查點 SCN | 控制檔 | V$DATABASE.CHECKPOINT_CHANGE# | 資料庫級恢復基準點 |
| 資料檔檢查點 SCN | 控制檔 | V$DATAFILE.CHECKPOINT_CHANGE# | 單一資料檔恢復基準 |
| 啟動 SCN (Start SCN) | 資料檔標頭 | V$DATAFILE_HEADER.CHECKPOINT_CHANGE# | 啟動時與控制檔比對,判斷是否需恢復 |
| 結束 SCN (Stop SCN) | 控制檔 | V$DATAFILE.LAST_CHANGE# | 正常關閉時更新,NULL 表示一致性關閉 |
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;
| 場景 | 關鍵 SQL / 命令 |
|---|---|
| 查看控制檔資訊 | SELECT * FROM V$CONTROLFILE; |
| 建立控制檔備份 | ALTER DATABASE BACKUP CONTROLFILE TO '/path/control.bak'; |
| 控制檔損壞恢復 (目錄可存取) | SHUTDOWN → OS 複製備份檔 → STARTUP |
| 控制檔損壞恢復 (目錄不可存取) | SHUTDOWN → 複製至新目錄 → 修改 CONTROL_FILES 參數 → STARTUP |
| 查看資料檔資訊 | SELECT NAME, STATUS, BYTES FROM V$DATAFILE; |
| 新增資料檔至表空間 | ALTER TABLESPACE users ADD DATAFILE '/path/users02.dbf' SIZE 100M AUTOEXTEND ON; |
| 資料檔離線/上線 | ALTER DATABASE DATAFILE '/path/file.dbf' OFFLINE/ONLINE; |
| 查看重做日誌組/成員 | SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE; |
| 新增重做日誌組 | ALTER DATABASE ADD LOGFILE GROUP 4 ('/log/redo4a.log','/log/redo4b.log') SIZE 100M; |
| 切換歸檔模式 | ALTER DATABASE ARCHIVELOG / NOARCHIVELOG; (需 MOUNT 狀態) |
| 手動歸檔 | ALTER SYSTEM ARCHIVE LOG ALL; |
| 查看歸檔目的地狀態 | SELECT DEST_NAME, STATUS, DESTINATION FROM V$ARCHIVE_DEST; |
| 查看臨時檔資訊 | SELECT NAME, STATUS, BYTES FROM V$TEMPFILE; |
| 查看 Alert Log 路徑 | SELECT VALUE FROM V$PARAMETER WHERE NAME='background_dump_dest'; |
掌握物理結構是 DBA 進階的基石。重點記住:
V$ 動態視圖監控物理結構健康度,建立自動化巡檢腳本。