Logical Standby常見問題解決方式

tolywang發表於2010-07-21


Oracle Logical Standby 常見問題處理:

對於邏輯備庫來說,日常管理主要需要關注SQL Apply。
切換是很少發生的動作,而logminer的速度相對於sql apply來說是很快的,
恢復的進度主要還是取決於SQL Apply的進度。


 

http://space.itpub.net/7607759/viewspace-220347  


不支援的語句在Logical Standby上應用導致LSP

 

----------------------------------------------------------------------------------------------------------- 


JSSLDG2> alter database stop logical standby apply;
資料庫已更改。

JSSLDG2> execute dbms_logstdby.skip('SCHEMA_DDL','JSS','TMP%');
--跳過物件的ddl操作

JSSLDG2> execute dbms_logstdby.skip('DML','JSS','TMP%');
--跳過物件的dml操作


JSSLDG2> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;


JSSLDG2> alter database stop logical standby apply;
JSSLDG2> execute dbms_logstdby.unskip('DML','JSS','TMP%');
JSSLDG2> execute dbms_logstdby.unskip('SCHEMA_DDL','JSS','TMP%');


跳過同步已經取消了,緊接著我們需要再呼叫dbms_logstdby.instantiate_table過程重新同步一下跳地

的物件,將skip這段時間,primary對tmp1表所做的操作同步過來(就俺看來,instantiate_table過程實

際上是藉助dblink重建了一遍物件),以保持與primary的一致。Dbms_logstdby.instantiate_table的語

法如下:

DBMS_LOGSTDBY.INSTANTIATE_TABLE (
     schema_name         IN VARCHAR2,
     table_name          IN VARCHAR2,
     dblink              IN VARCHAR2);


使用DBMS_LOGSTDBY.INSTANTIATE_TABLE過程重新執行一下同步(執行前別忘了暫停redo應用):

JSSLDG2> EXECUTE DBMS_LOGSTDBY.INSTANTIATE_TABLE('OWNER','TABLE1','DBLink_Primary');


JSSLDG2> alter database start logical standby apply;

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

相關文章