資料庫複寫有4種.
分別是:
每一種都有各自的優缺點. 其中本人主要使用快照發布, 和事務發布. 至於為什麼不使用其他的, 是因為除這兩種之外其他的都為互相同步. 可能照成自增主鍵衝突問題, 並且網上還有人說有可能會照成死迴圈. 當然我沒試過.
快照發布:
發行伺服器按預定的時間間隔向訂閱伺服器發送已發佈資料的快照。
原理: 對當前資料庫進行拍照然後將所得的照片發過去恢複資料
優點: 快照發布可以有效保證資料的完整性. 可以控制快照產生的間隔時間等.
缺點: 由於是快照原理就是對當前資料庫進行拍照然後將所得的照片發過去恢複資料, 所以會存在三個問題
1. 由於是恢複的過程, 所以會對整個表先進行刪除再進行恢複. 所以會存在很小的一段時間資料庫找不到表的情況, 因為刪了麼. 這段時間由當前同步表的大小決定
2. 由於是快照是對整個資料表進行拍照, 所以在資料量大的表會存在老資料再做無效傳輸.
3. 由於每次同步資料比較大所以會存在不及時性.
適用: 經常改變的, 並且資料量不大的表.
事務性發布:
在訂閱伺服器收到已發佈資料的初始快照集後,發行伺服器將事務串流到訂閱伺服器。
原理: 記錄表資料的變化, 將變化同步到訂閱伺服器表.
優點: 資料同步及時, 一般幾秒就能同步. 不管表資料如何龐大多沒事.
缺點:
1. 訂閱伺服器表不能更改, 否者很有可能同步失敗.
2. 只對以後有變化的資料進行同步, 所以對舊資料丟失情況沒辦法恢複. 缺乏完整性.
3. 由於對發行資料表變更立馬就會進行同步, 所以串連訂閱伺服器經常頻繁.
適用: 不是經常變動的資料表.
具有可更新訂閱的事務性發布:
在 SQL Server 訂閱伺服器收到已發佈資料的初始快照集後,發行伺服器將事務串流到訂閱伺服器。來自訂閱伺服器的事務被應用於發行伺服器。
合并發布:
在訂閱伺服器收到已發佈資料的初始快照集後,發行伺服器和訂閱伺服器可以獨立更新已發佈資料。更改會定期合并。Microsoft SQL Server Mobile Edition 只能訂閱合并發布。