首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 備份與恢復實戰案例全集:冷熱備份、RMAN、非歸檔/歸檔模式完整演練

     編輯:Oracle 資料庫基礎

恢復基礎概念

  • 實例恢復:非正常關機後自動執行(前滾 REDO、回滾未提交事務、釋放鎖、解決分布式事務)
  • 介質恢復:檔案損壞/遺失需 DBA 手動介入,分完全恢復(無資料遺失)與不完全恢復(基於時間/SCN/CANCEL)

測試環境

  • OS:Windows 2000 Server
  • DB:Oracle 8.1.6,SID=TEST
  • 表空間:SYSTEM、RBS、USERS、TEMP、TOOLS、INDX
  • 控制檔 3 個、Redo Log 3 組

備份腳本範本

冷備份(關機狀態,非歸檔模式適用)

CONNECT INTERNAL/PASSWORD;
SHUTDOWN IMMEDIATE;
HOST XCOPY D:\ORACLE\ORADATA\TEST\*.DBF D:\BACKUP /H/R;
HOST XCOPY D:\ORACLE\ORADATA\TEST\*.CTL D:\BACKUP /H/R;
HOST XCOPY D:\ORACLE\ORADATA\TEST\*.LOG D:\BACKUP /H/R;
STARTUP;

熱備份(開機狀態,需歸檔模式)

CONNECT INTERNAL/PASSWORD;
ALTER SYSTEM ARCHIVE LOG CURRENT;
ALTER TABLESPACE SYSTEM BEGIN BACKUP;
HOST XCOPY D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF D:\DATABAK /H/R;
ALTER TABLESPACE SYSTEM END BACKUP;
...(依序處理 RBS、USERS、TOOLS、INDX)
ALTER DATABASE BACKUP CONTROLFILE TO 'D:\DATABAK\CONTROLBINBAK.000';
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
ALTER SYSTEM ARCHIVE LOG CURRENT;

RMAN 完整備份(含控制檔)

CONNECT TARGET INTERNAL/VIRPURE;
CONNECT RCVCAT RMAN/RMAN@BACK;
RUN {
  ALLOCATE CHANNEL C1 TYPE DISK;
  BACKUP FULL TAG 'DBFULL' FORMAT 'D:\BACKUP\FULL%U_%S_%P' DATABASE INCLUDE CURRENT CONTROLFILE;
  SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
  RELEASE CHANNEL C1;
}

四大經典恢復案例

案例 1:非歸檔模式丟失資料檔 → 冷備份完全恢復

關機 → 刪除 USERS01.DBF → 啟動報 ORA-01157 → 覆蓋冷備份檔案 → ALTER DATABASE OPEN → 資料遺失至備份時間點。

案例 2:歸檔模式單一資料檔損壞 → 熱備份/ RMAN 完全恢復

  1. 關機 → 刪除 USERS01.DBF → 啟動 Mount 階段
  2. ALTER DATABASE DATAFILE 3 OFFLINE DROP;
  3. ALTER DATABASE OPEN;(其他表空間線上)
  4. OS:COPY 備份檔 → RECOVER DATAFILE 3; → ALTER DATABASE DATAFILE 3 ONLINE;
  5. RMAN:RESTORE DATAFILE 3; RECOVER DATAFILE 3; SQL 'ALTER DATABASE DATAFILE 3 ONLINE';

零資料遺失,業務僅受影響單表空間。

案例 3:多資料檔含 SYSTEM 損壞 → 整庫恢復

Mount 階段 → COPY 所有備份檔 → RECOVER DATABASE; → ALTER DATABASE OPEN;。停機時間較長,但可處理系統表空間損壞。

案例 4:RMAN 表空間級恢復

RUN {
  ALLOCATE CHANNEL C1 TYPE DISK;
  RESTORE TABLESPACE USERS;
  RECOVER TABLESPACE USERS;
  SQL 'ALTER DATABASE DATAFILE 3 ONLINE';
  RELEASE CHANNEL C1;
}

代碼簡潔、可靠性高,建議生產環境採用 RMAN。

關鍵動態視圖

  • V$RECOVER_FILE:需恢復的檔案清單
  • V$RECOVERY_LOG:所需歸檔日誌
  • Alert Log、Background Trace(BDUMP 目錄)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved