保證歸檔日誌不能隨意被刪除的四種方法

lusklusklusk發表於2016-01-25

保證歸檔日誌不能隨意被刪除的四種方法

1.        

SQL> alter system set log_archive_dest_2='service=testdb1dg lgwr async db_unique_name=slave MANDATORY';

2.        

RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;

RMAN>CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY

把它設定為CONFIGURE ARCHIVELOG DELETION POLICY TO NONE即取消了該限制

不過第二種方法的前提是已經有第一種方法的配置(第二種方法是第一種方法基礎上的加強),否則會報錯RMAN-08591: WARNING: invalid archived log deletion policy

以上兩種方法適用於dataguard環境中的主庫,保證主庫日誌不能隨便被刪除,不過主站上這兩種方法都不推薦用,因為前提就是MANDATORY會導致主庫hang

 

3.

RMAN> configure archivelog deletion policy to backed up X times to device type disk;

以上x>=1時執行delete noprompt archivelog until time "sysdate-XX"會報錯 RMAN-08138

把它設定為CONFIGURE ARCHIVELOG DELETION POLICY TO NONE即取消了該限制

 

以上三種方法都不會自動刪除歸檔,(已經於20160120實驗過的)。而是刪除的時候確認是否符合條件,是避免刪除其他功能所需要的歸檔日誌。

 

4.

除以上三種情況外還存在的第四種特殊情況,即使沒有上面三種設定,如果是dataguard環境中的備庫,主庫傳輸過來的歸檔日誌還沒有被備庫 recover,此時備庫執行delete noprompt archivelog until time "sysdate-XX"也會報錯 RMAN-08137

 

 

12兩種方法則要確認歸檔是否已經被DATA GUARD所應用。,如果沒有被DATA GUARD所應用,備份過程中執行delete all inputdelete inputdelete noprompt archivelog until time "sysdate-XX"都會報錯

如果只是上面第一種方法則報錯

RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process

如果是上面第二種方法則報錯

RMAN-08120: WARNING: archived log not deleted, not yet applied by standby

但是仍然可以通過OS層面來手工刪除

 

MANDATORY選項不能隨便配置在遠端歸檔路徑中,一旦選了後如果網路中斷會出現如下情況,影響主庫,導致主庫hang

ORA-16014: log 1 sequence# 565 not archived, no available destinations


個人實驗經歷









來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-1982071/,如需轉載,請註明出處,否則將追究法律責任。

相關文章