rman恢復的方式搭建dataguard後redo log 的處理
阿新 • • 發佈:2019-01-23
轉載:http://www.dbdream.org/?p=548
搭建DATA GUARD,利用RMAN備份恢復備庫時,由於RMAN不會備份REDO檔案,還原後的備庫缺少REDO日誌檔案,對於用歸檔日誌同步資料的備庫,影響不是很大,依然可以應用日誌同步主庫的資料變更,但是如果主/備庫切換的話,就不行了,對於這樣控制檔案裡記錄了REDO的資訊,但是在儲存上卻沒有對應的檔案的備庫,此時刪除控制檔案中的REDO資訊是不允許的。
SQL> alter database drop logfile group 1; alter database drop logfile group 1 * ERROR at line 1: ORA-01156: recovery or flashback in progress may need access to files
那該如何解決這個問題呢,也很簡單,不讓刪這些沒有檔案的REDO資訊,還是讓建的,那麼就先在主庫和備庫都建3組新的REDO日誌。
SQL> alter database add logfile group 4 '+DATA/fhacdb/redo04.log' size 1024M; Database altered. SQL> alter database add logfile group 5 '+DATA/fhacdb/redo05.log' size 1024M; Database altered. SQL> alter database add logfile group 6 '+DATA/fhacdb/redo06.log' size 1024M; Database altered.
現在主庫和備庫的控制檔案記錄的REDO日誌資訊如下:
主庫:
SQL> select GROUP#,SEQUENCE#,STATUS,ARCHIVED from v$log; GROUP# SEQUENCE# STATUS ARC ---------- ---------- ---------------- --- 1 17476 ACTIVE YES 2 17474 INACTIVE YES 3 17475 INACTIVE YES 4 17477 ACTIVE YES 5 17478 ACTIVE YES 6 17479 CURRENT NO
備庫:
SQL> select GROUP#,SEQUENCE#,STATUS,ARCHIVED from v$log; GROUP# SEQUENCE# STATUS ARC ---------- ---------- ---------------- --- 1 17476 CLEARING YES 2 17474 CLEARING YES 3 17475 CLEARING YES 4 17477 CLEARING YES 5 17478 CLEARING YES 6 17479 CURRENT YES
備庫不讓刪REDO日誌,不代表主庫也不讓刪,切換主庫日誌,當STATUS狀態為INACTIVE時,刪掉前3組REDO日誌。
SQL> alter database drop logfile group 1; Database altered. SQL> alter database drop logfile group 2; Database altered. SQL> alter database drop logfile group 3; Database altered.
此時備庫還是那6組日誌資訊,包括前3組沒有檔案的日誌資訊和後建立的3組正確的REDO日誌,而主庫現在只有3組後建立的REDO資訊,這樣就好辦啦,主庫重建備庫STANDBY控制檔案,發給備庫,備庫只要應用這個控制檔案就沒有前3組錯誤的REDO資訊啦。
SQL> select GROUP#,SEQUENCE#,STATUS,ARCHIVED from v$log; GROUP# SEQUENCE# STATUS ARC ---------- ---------- ---------------- --- 4 17477 CLEARING YES 5 17478 CLEARING YES 6 17479 CURRENT YES