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

Oracle 重做日誌遺失恢復完整指南:四種狀態對應策略與黃金守則

     編輯:Oracle 資料庫基礎

Redo Log 關鍵角色

  • 循環記錄所有交易,保證數據一致性與實例/介質恢復能力
  • 至少兩組線上日誌組,每組多成員 (多路徑鏡像)
  • 提交時優先寫日誌,延遲寫資料塊 → 提升效能

故障現象範例


STARTUP MOUNT
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/oracle/ORADATA/H817/REDO01.LOG'
ORA-27041: unable to open file
OS Error: (OS 2) The system cannot find the file specified.

恢復前四大鐵律

  1. 嚴禁生產庫嘗試
  2. 故障發生立即聯繫 Oracle 支援,勿自行操作破壞現場
  3. 恢復成功後必須立即全庫備份
  4. Redo Log 必須跨磁碟鏡像 (多成員分布不同磁碟)

四種狀態恢復策略

1. 狀態 = INACTIVE


ALTER DATABASE CLEAR LOGFILE '/oracle/ORADATA/H817/REDO01.LOG';

2. 狀態 = CURRENT (四種子情況)

情況條件操作步驟
ARECOVER DATABASE UNTIL CANCEL 成功RECOVER DATABASE UNTIL CANCEL; CANCEL; ALTER DATABASE OPEN RESETLOGS;
B遇到 ORA-01547/01194/01110,有物理備份 + 歸檔模式還原備份 → STARTUP MOUNT; RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE; ALTER DATABASE OPEN RESETLOGS;
C非歸檔模式,有物理備份還原備份 → 直接 ALTER DATABASE OPEN RESETLOGS; (丟失備份後所有資料)
D非歸檔模式,無物理備份 (最後手段)關庫 → init.ora 加 _ALLOW_RESETLOGS_CORRUPTION=TRUE → 啟庫 → RECOVER DATABASE UNTIL CANCEL; CANCEL; ALTER DATABASE OPEN RESETLOGS; → 立即全庫導出 → 關庫移除參數 → 重啟

狀態查詢指令


SELECT * FROM V$LOG;
SELECT * FROM V$LOGFILE;

警示

所有方屬不完全恢復,會丟失 Current Redo 中交易。情況 D 導致資料庫不一致,極特殊情況下在 Oracle 專家指導下使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved