軟件SQL Server複製功能避開缺陷的方法

SQL Server的複製分爲三種,下面介紹一下這三種複製技術及其存在的一些缺陷,大家在使用時可以根據具體的情境選擇適用的複製方法,避開這些缺陷的干擾。

軟件SQL Server複製功能避開缺陷的方法

 1. 快照複製

A每隔一段時間將B中的相應表中的數據全部刪除,然後將自己相應表中的全部插到B中。此種方式顯然不適合我們的應用,不予考慮。

2. 事務複製

對A中的每一個滿足複製條件的事務,每隔一定時間A都應用到B上,反之亦然。SQL Server 通過把數據傳給三個存儲過程(插入,刪除,修改)進行數據的修改,我們可以根據自己的應用改寫此存儲過程。

存在缺陷:如果從A到B的.複製條件和從B到A複製條件相同的話,會產生“踢皮球”的循環現象。既一系列事務應用於A,A會把這些事務應用於B,B收到這一系列事務後,又會把它應用於A,……如此循環。

3. 合併複製

每隔一段時間,複製將會把數據庫A,B中需要複製的數據合併一下,使得AB中的數據完全一樣,數據都是AB數據庫中數據的全體數據。如果A和B中數據主鍵有衝突,則根據優先級只選其中一條數據。

需要注意:爲了區分數據來自於哪個地點,SQL Server會將每一個需要複製的表中另加一個字段,在編程時應該注意。

存在缺陷:

SQL Server 每隔一定時間進行一次複製,如果找不到另一臺Server(比如因爲網絡故障,或是另一臺SQL Server沒有啓動),經過n(默認爲10)次連接後,它的複製功能將會down掉,直至有人將複製功能啓動。 需要複製的表中如果在複製之前就有數據,在建立複製時比較麻煩(SQL Server不提供此類問題的解決方法,需要手動完成)。因此,需要複製的表在使用過程中不能經常變動表結構。(文/張夢強)