備份與恢復是資料庫生存的底線。Oracle 9i 提供完整的備份恢復體系,涵蓋核心檔案識別、邏輯/物理兩大備份模式、多樣化工具鏈。本文系統梳理 9i 備份恢復的知識全景。
| 檔案類型 | 作用 | 備份必要性 | 備份頻率建議 |
|---|---|---|---|
| 初始化參數檔 (PFILE/SPFILE) | 實例啟動配置 | 極高(遺失無法啟動) | 每次參數變更後 |
| 控制檔 (Control File) | 資料庫物理結構元資料 | 極高(遺失需重建) | 每次結構變更後 + 定期 |
| 資料檔 (Data File) | 實際業務資料存儲 | 極高 | 每日全備 + 增量備份 |
| 線上重做日誌 (Online Redo Log) | 交易重做記錄(循環覆寫) | 中(歸檔模式下可重建) | 歸檔模式下不直接備份 |
| 歸檔日誌 (Archived Redo Log) | 歷史重做記錄(不可覆寫) | 極高(時間點恢復關鍵) | 產生即備份/異地同步 |
| 維度 | 邏輯備份 | 物理備份 |
|---|---|---|
| 定義 | 匯出邏輯結構與資料 (SQL/二進制) | 直接複製作業系統層面的檔案 |
| 工具 | EXP/IMP, Data Pump (EXPDP/IMPDP), Enterprise Manager | RMAN, OS 指令 (cp, dd, tar), 第三方備份軟體 |
| 備份單位 | Table、Schema、Tablespace、Full Database | Datafile、Controlfile、SPFILE、Archivelog |
| 恢復粒度 | 物件級(可選擇性匯入) | 塊級、檔案級、資料庫級 |
| 跨版本/平台 | 支援良好 | 通常同版本同平台 |
| 一致性 | 一致性讀 (CONSISTENT=Y) | 熱備份需歸檔模式 + RMAN |
| 效能 | 較慢(SQL 層處理) | 極快(塊級複製、並行、壓縮) |
-- 匯出完整資料庫
exp system/manager file=full_exp.dmp log=full_exp.log full=y consistent=y
-- 匯出指定 Schema
exp scott/tiger file=scott.dmp log=scott.log owner=scott
-- 匯入
imp system/manager file=full_exp.dmp log=imp.log full=y
imp scott/tiger file=scott.dmp log=scott_imp.log fromuser=scott touser=scott
圖形化介面,適合非命令列環境,功能等同 EXP/IMP。
SELECT name FROM v$datafile UNION SELECT member FROM v$logfile UNION SELECT name FROM v$controlfile-- 傳統手工熱備份步驟
ALTER TABLESPACE users BEGIN BACKUP;
-- OS 複製 users 表空間資料檔
ALTER TABLESPACE users END BACKUP;
-- 切換日誌並備份控制檔
ALTER SYSTEM SWITCH LOGFILE;
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control.bak';
-- 備份歸檔日誌
核心原理: BEGIN BACKUP 將表空間置於備份模式,資料檔頭 SCN 凍結,產生額外 Redo 保護一致性。
-- 連線
rman target / catalog rman/rman@rcat
-- 完整備份(含控制檔、SPFILE)
BACKUP DATABASE PLUS ARCHIVELOG;
-- 增量備份 Level 0 (基礎) / Level 1 (差異)
BACKUP INCREMENTAL LEVEL 0 DATABASE;
BACKUP INCREMENTAL LEVEL 1 DATABASE;
-- 列出備份
LIST BACKUP SUMMARY;
-- 跨平台恢復/複製資料庫
DUPLICATE TARGET DATABASE TO dupdb;
發生故障
│
├─ 僅損壞單一資料檔 (非 SYSTEM/UNDO)
│ └─ RESTORE DATAFILE + RECOVER DATAFILE (線上恢復)
│
├─ 損壞 SYSTEM/UNDO 表空間
│ └─ 必須關機 → RESTORE TABLESPACE + RECOVER TABLESPACE → OPEN
│
├─ 損壞控制檔 (多路徑鏡像至少一份存活)
│ └─ 複製存活控制檔 → STARTUP
│
├─ 全部控制檔遺失
│ └─ CREATE CONTROLFILE / RMAN RESTORE CONTROLFILE → RECOVER DATABASE → OPEN RESETLOGS
│
└─ 時間點恢復 (PITR)
└─ SET UNTIL TIME/SCN/SEQUENCE → RESTORE DATABASE → RECOVER DATABASE → OPEN RESETLOGS
RESTORE VALIDATE DATABASE 定期執行Oracle 9i 備份恢復體系雖歷經版本迭代,但核心邏輯——核心五大檔案、邏輯/物理雙軌、RMAN 為物理備份標準、歸檔模式為線上備份前提——至今仍是現代 Oracle 備份策略的基石。建立標準化備份流程、自動化監控告警、定期演練恢復,才是資料安全的真正保障。