data guard failover時最小化資料丟失 - 11g flush redo - 1

kingsql發表於2015-08-12

    "flush redo" 並不是眾所周知,它是在11gR2被引入的. 對於Data guard, 在故障切換時flush redo可能是非常有用的,如果這個命令能成功將最後的redo應用到standby上,那麼DG上將沒有資料丟失。 

    如果需要執行此語句,在standby上的 redo apply必須是啟動的,執行此命令的primary database必須是mouted 狀態,不能open , 預設情況下 comfirm apply是這個語句的一部分,語句執行將會一直等待直到所有redo applied。


    如果primary 資料庫是開啟讀寫狀態,那麼執行將會報錯: 
SQL> alter system flush redo to ‘proda';

alter system flush redo to 'proda'  
*
ERROR at line 1: 
ORA-16445: Database has to be mounted and cannot be open

   重新啟動資料庫為mount模式,並執行這個語句。 
SQL> shutdown immediate;
SQL> startup mount

SQL> ALTER SYSTEM FLUSH REDO to 'PRODA';
System altered.


   現在你可以使用sqlplus或data guard broker執行failover語句(啟用standby)了 。 
   
   在主庫的alert log檔案中,可以觀察到 End-of-Redo 被髮送,這意味著沒有資料丟失,failover
能被執行。 

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

相關文章