講解SQL Server的複製及缺陷

iSQlServer發表於2010-04-22
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複製的缺陷:

  sql server 每隔一定時間進行一次複製,如果找不到另一臺Server(比如因為網路故障,或是另一臺SQL Server沒有啟動),經過n(預設為10)次連線後,它的複製功能將會down掉,直至有人將複製功能啟動。 需要複製的表中如果在複製之前就有資料,在建立複製時比較麻煩(sql server不提供此類問題的解決方法,需要手動完成)。因此,需要複製的表在使用過程中不能經常變動表結構。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-660417/,如需轉載,請註明出處,否則將追究法律責任。

相關文章