熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server復制功能 巧妙選擇避開Bug

2013-11-15 14:44:33  來源: SQL Server 

  SQL Server具有強大的復制功能除了將數據和數據庫對象從一個數據庫復制並准確分發的另一個數據庫中還要實行數據庫之間的同步SQL Server的復制分為三種下面介紹一下這三種復制技術及其存在的一些缺陷大家在使用時可以根據具體的情境選擇適用的復制方法避開這些缺陷的干擾

   快照復制

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

   事務復制

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

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

   合並復制

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

  需要注意為了區分數據來自於哪個地點SQL Server會將每一個需要復制的表中另加一個字段在編程時應該注意

  存在缺陷

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


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22264.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.