合併複製與觸發器實現同步

觸發器:在需要同步的三個數據庫裏分別創建觸發器,用來觸發當對本數據庫進行更新、插入、刪除操作時,觸發另外兩個庫裏的相同表的同步修改。創建時,需要注意,由於三個庫的數據時相互觸發,所以在執行當前數據必須首先禁用另外兩個庫的的觸發器,否則會出現死循環。禁用的代碼:alter table tablename disable trigger triggername.執行完當前的觸發器,還需重新打開觸發器,代碼:alter teble tablename enable trigger triggername

使用觸發器實現同步的優點是:實時性較強。

缺點是:性能較差(因爲每次對某個表執行操作會觸發其他表的同步操作),維護困難(由於觸發器實現的同步時數據庫之間表內數據的同步,不能實現表結構的同步,所以如果後期需要更改表結構,則需要同時對三個庫的表結構進行修改,還需要更改相應的觸發器裏對應的列,維護起來較爲繁瑣,特別是項目大時)

合併複製:利用SQL Server2005中的發佈、訂閱和分發功能,進行合併複製的配置。

優點:同步的內容除了表內的數據,還有表的結構,即某個表的結構發生變化,對應的定於服務器上得表結構也發生同步變化。這樣,只需更改發佈服務器上得表結構,就可以同步更新表結構

缺點:實時性較差,沒有觸發器來的快。

要更改表結構,只能對發佈服務器上得表進行操作,而不能對訂閱服務器上得數據進行操作。否則出錯。

衝突:repl_identity_range_A7A11E1F_3E11_4A5C_88D5_A46A3132DDA5

sp_adjustpublisheridentityrange

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章