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不提供此類問題的解決方法,需要手動完成)。是以,需要複制的表在使用過程中不能經常變動表結構。
轉載于:https://blog.51cto.com/2305427/475654