Logical Standby中的supplemental logging和rely disable constraint
Windows 2003 Server , Oracle10.2.0.4
由於rowid (虛列) 是定位Oracle中具體資料的物理儲存位置,是實體地址,由於在邏輯Standby 採用SQL Apply 方式(而不是資料塊block直接更新同步方式) 進行資料同步, Standby 資料庫裡rowid可能不等於Primary 資料庫裡的rowid,所以必須採取一些機制來保證在Primary DB裡所更新的行能夠對應到Logical Standby 裡相應的行。
新增一個disabled的主鍵型別的rely的限制(disabled primary key rely constraint)
如果應用程式確保表裡的行是唯一標識的,你可以在表上建立一個disabled主鍵型別的rely的限制:
SQL>alter table mytab add primary key(id,name) rely disable;
rely constraint告訴系統確保了所有的行都是唯一的。如果rely constraint所指定的列沒有唯一,則在邏輯備用資料庫應用SQL時將會失敗。最好新增主鍵或唯一索引,這樣在邏輯備用資料庫應用SQL語句時也會速度快些。可見,一般是不建議使用rely disabled 來進行限制的,而最好是新增主鍵或唯一索引。
supplemental logging在重做日誌裡新增了唯一標識行的資訊。主鍵或唯一索引存在與否,能夠影響追加的日誌(supplemental logging):
a、如果表有主鍵或唯一索引,則在supplemental logging的時候,向重做日誌新增的資訊是最少的。
b、如果表沒有主鍵或唯一索引,supplemental logging會自動在重做日誌裡記錄所有欄位的值。
如何啟用supplemental logging
在主資料庫上,執行下面語句以便將主鍵和唯一索引資訊新增到歸檔日誌裡:
SQL> alter database add supplemental log data(primary key,unique index) columns; 如果想刪除,使用drop .
該語句在主資料庫中向重做日誌新增了唯一標識行的資訊,從而日誌應用服務可以在備用資料庫里正確的標識相同的行了。
備註: Oracle中定義PK與Unique Index 區別是 not null , 在Oracle中唯一索引中的null數值被視為不同 ,PK不允許有null 值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-591147/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Logical Standby中Job的處理
- supplemental logging總結
- constraint enable,disable的問題解決AI
- 深入認識Oracle Supplemental loggingOracle
- 建立 Logical Standby DatabaseDatabase
- manage logical standby databaseDatabase
- DataGuard:Logical Standby Switchover
- Constraint State(disable/enable validate/noalidate)AI
- DataGuard:Logical Standby FailoverAI
- 監控Logical standby databaseDatabase
- Logical Standby Database的配置步驟.Database
- Logical Standby的維護操作_SKIP
- nologging、force logging、supplemental log的理解
- alter table modify constraint_disable_enable_novalidateAI
- Oracle DG建立Logical Standby DatabaseOracleDatabase
- 物理Standby資料庫及邏輯Standby資料庫(Physical Standby & Logical Standby)資料庫
- Oracle 隱含引數 _disable_loggingOracle
- GGS ERROR 190 No Minimum Supplemental Logging Is EnabledError
- RAC環境LOGICAL STANDBY的SWITCHOVER切換
- Logical Standby中自動優化統計功能問題 ?優化
- 建立Oracle 11g logical standbyOracle
- Oracle10g logical standby 建立Oracle
- Create Logical Standby For Oracle 10GOracle 10g
- [zt]Logical standby同步故障的處理過程
- RAC環境LOGICAL STANDBY的FAILOVER切換AI
- Oracle10gR2 Logical Standby (zt)Oracle
- 建立Data guard logical standby database須知Database
- [江楓]In Memory Undo與logical standby databaseDatabase
- [zt] Logical standby維護命令手冊
- Standby建立時候的Forced Logging模式模式
- [20120824]oracle中的 CONSTRAINT 屬性ENABLE DISABLE VALIDATE NOVALIDATE.txtOracleAI
- local_irq_disable和disable_irq的區別
- Oracle Logical Standby 維護常用命令Oracle
- Logical Standby常見問題解決方式
- oracle 10g logical standby db creationOracle 10g
- Logical Standby中為什麼要求表中資料的唯一性約束
- ERROR OGG-00730 No minimum supplemental logging is enabledError
- Oracle 9i Logical Standby與Physical standby歸檔恢復區別Oracle