改變複製物件結構對高階複製的影響
今天,接到維護人員的報告,說在一個複製組中,有一個複製物件在兩Site上的表結構不一致,Site A上的表比Site B上的表多一個欄位。而且比較奇怪的是,
從2邊修改表中的記錄,沒有錯誤發生,而且能夠同步。
按照以前的經驗:如果修改複製物件的結構後,修改複製物件中的資料是不能成功的。比如:
SQL> alter table ssmn_system drop column reserve3;
Table altered.
SQL> update ssmn_system set max_number=7;
update ssmn_system set max_number=7
*
ERROR at line 1:
ORA-23474: definition of "TEST"."SSMN_SYSTEM" has changed since generation of replication support
ORA-26500: error on caching "TEST"."SSMN_SYSTEM"
從中可以看出:刪除複製物件ssmn_system中的一個欄位後,在修改它的記錄,有錯誤發生。
所以,應該不是drop了Site B上的表的一個欄位,造成2 Site上的表結構不一致的。
那麼,是不是在Site A上表中增加了一個欄位呢?在實驗環境中測試以下:
1)在Site A的表中增加一個欄位:
SQL> alter table ssmn_system add (reserve4 varchar2(20));
2)修改表中的記錄:
SQL> update ssmn_system set reserve4='y',MAX_NUMBER=4;
1 row updated.
沒有報錯。
3)檢查Site B上表中記錄是否同步:
SQL> select * from ssmn_system;
MAX_NUMBER RESERVE3
---------- ------------- ----------
4 3
從中可以看出:資料已經同步。
4)在Site B上在此修改表中資料:
SQL> update ssmn_system set MAX_NUMBER=5;
1 row updated.
也沒有報錯。
5)檢查Site A上表中資料是否同步:
SQL> select * from ssmn_system;
MAX_NUMBER RESERVE3 RESERVE4
---------- ------------- ----------
5 3
從中可以看出:資料也同步了。
由此可以得出結論:如果增加複製物件的欄位,對高階複製沒有影響。Site A上表多一個欄位,是由於增加了欄位造成的。後來透過檢視複製組中複製物件包
含的欄位(可以從dba_repcolumn表中檢視),也驗證了這個結論。
進一步測試:如果此時在Site B上的表中也新增相同欄位, 則新增的欄位是否也能同步?
6)在Site B上新增欄位:
SQL> alter table ssmn_system add (reserve4 varchar2(20));
7)修改該欄位的值:
SQL> update ssmn_system set MAX_NUMBER=4,reserve4='test';
1 row updated.
沒有出錯。
8)檢查Site A上表的資料:
SQL> select * from ssmn_system;
MAX_NUMBER RESERVE3 RESERVE4
---------- ------------- --------------------
3 3
可以看出:max_number欄位同步了,但是reserve4欄位沒有同步,因為複製物件不包含該欄位。由此回想起之前的一個錯誤:表中有一個欄位資料不能同步。
這應該是因為這個不能同步的欄位是後增加的。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11422417/viewspace-975456/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 主體複製概念和體系結構——高階複製
- 高階複製總結
- 物化檢視複製概念和體系結構——高階複製
- oracle 高階複製Oracle
- Oracle高階複製Oracle
- 部署模板概念和體系結構——高階複製
- 複製管理工具介紹——高階複製
- 對於複製普通物件 深複製和淺複製是否一樣物件
- JS物件複製:深複製和淺複製JS物件
- [zt] 高階複製、流複製(Streams)、備庫區別
- Oracle高階複製Step by StepOracle
- oracle高階複製(轉載)Oracle
- oracle 高階複製簡介Oracle
- MySQL(二):主從複製結構、半同步複製、雙主複製結構、利用SSL實現安全的MySQL主從複製MySql
- 複製物件物件
- RMAN高階應用之Duplicate複製資料庫(3)複製流程資料庫
- MySQL 的主從複製(高階篇)MySql
- 關於Oracle 高階複製的概念Oracle
- Oracle 高階複製的概念及配置Oracle
- 高階複製-2、準備工作
- 衝突解決方案概念和體系結構——高階複製
- postgres複製表結構
- MySQL 複製表結構MySql
- mysql表結構複製MySql
- vue複製物件Vue物件
- 複製物件重新賦值不改變原物件物件賦值
- Oracle9i高階複製(單向複製部分)實施完畢Oracle
- 淺談JS中物件的淺複製和深複製JS物件
- Java中物件的深複製和淺複製詳解Java物件
- 複製使用者結構
- js物件的複製方法JS物件
- js物件深複製JS物件
- JavaScript物件複製理解JavaScript物件
- iOS之物件複製iOS物件
- js深度複製物件JS物件
- oracle高階複製的詳細手冊(轉)Oracle
- 學習Advanced Replication(高階複製) -zt
- Oracle 10g高階複製例項Oracle 10g