SQL Server復制功能要避開缺陷的干擾小結(jié)
更新時間:2011年03月24日 17:38:05 作者:
SQL Server具有強大的復制功能,除了將數(shù)據(jù)和數(shù)據(jù)庫對象從一個數(shù)據(jù)庫復制并準確分發(fā)的另一個數(shù)據(jù)庫中,還要實行數(shù)據(jù)庫之間的同步。
SQL Server的復制分為三種,下面介紹一下這三種復制技術(shù)及其存在的一些缺陷,大家在使用時可以根據(jù)具體的情境選擇適用的復制方法,避開這些缺陷的干擾。
1. 快照復制
A每隔一段時間將B中的相應表中的數(shù)據(jù)全部刪除,然后將自己相應表中的全部插到B中。此種方式顯然不適合我們的應用,不予考慮。
2. 事務復制
對A中的每一個滿足復制條件的事務,每隔一定時間A都應用到B上,反之亦然。SQL Server 通過把數(shù)據(jù)傳給三個存儲過程(插入,刪除,修改)進行數(shù)據(jù)的修改,我們可以根據(jù)自己的應用改寫此存儲過程。
存在缺陷:如果從A到B的復制條件和從B到A復制條件相同的話,會產(chǎn)生“踢皮球”的循環(huán)現(xiàn)象。既一系列事務應用于A,A會把這些事務應用于B,B收到這一系列事務后,又會把它應用于A,……如此循環(huán)。
3. 合并復制
每隔一段時間,復制將會把數(shù)據(jù)庫A,B中需要復制的數(shù)據(jù)合并一下,使得AB中的數(shù)據(jù)完全一樣,數(shù)據(jù)都是AB數(shù)據(jù)庫中數(shù)據(jù)的全體數(shù)據(jù)。如果A和B中數(shù)據(jù)主鍵有沖突,則根據(jù)優(yōu)先級只選其中一條數(shù)據(jù)。
需要注意:為了區(qū)分數(shù)據(jù)來自于哪個地點,SQL Server會將每一個需要復制的表中另加一個字段,在編程時應該注意。
存在缺陷:
SQL Server 每隔一定時間進行一次復制,如果找不到另一臺Server(比如因為網(wǎng)絡故障,或是另一臺SQL Server沒有啟動),經(jīng)過n(默認為10)次連接后,它的復制功能將會down掉,直至有人將復制功能啟動。 需要復制的表中如果在復制之前就有數(shù)據(jù),在建立復制時比較麻煩(SQL Server不提供此類問題的解決方法,需要手動完成)。因此,需要復制的表在使用過程中不能經(jīng)常變動表結(jié)構(gòu)。(文/張夢強)
1. 快照復制
A每隔一段時間將B中的相應表中的數(shù)據(jù)全部刪除,然后將自己相應表中的全部插到B中。此種方式顯然不適合我們的應用,不予考慮。
2. 事務復制
對A中的每一個滿足復制條件的事務,每隔一定時間A都應用到B上,反之亦然。SQL Server 通過把數(shù)據(jù)傳給三個存儲過程(插入,刪除,修改)進行數(shù)據(jù)的修改,我們可以根據(jù)自己的應用改寫此存儲過程。
存在缺陷:如果從A到B的復制條件和從B到A復制條件相同的話,會產(chǎn)生“踢皮球”的循環(huán)現(xiàn)象。既一系列事務應用于A,A會把這些事務應用于B,B收到這一系列事務后,又會把它應用于A,……如此循環(huán)。
3. 合并復制
每隔一段時間,復制將會把數(shù)據(jù)庫A,B中需要復制的數(shù)據(jù)合并一下,使得AB中的數(shù)據(jù)完全一樣,數(shù)據(jù)都是AB數(shù)據(jù)庫中數(shù)據(jù)的全體數(shù)據(jù)。如果A和B中數(shù)據(jù)主鍵有沖突,則根據(jù)優(yōu)先級只選其中一條數(shù)據(jù)。
需要注意:為了區(qū)分數(shù)據(jù)來自于哪個地點,SQL Server會將每一個需要復制的表中另加一個字段,在編程時應該注意。
存在缺陷:
SQL Server 每隔一定時間進行一次復制,如果找不到另一臺Server(比如因為網(wǎng)絡故障,或是另一臺SQL Server沒有啟動),經(jīng)過n(默認為10)次連接后,它的復制功能將會down掉,直至有人將復制功能啟動。 需要復制的表中如果在復制之前就有數(shù)據(jù),在建立復制時比較麻煩(SQL Server不提供此類問題的解決方法,需要手動完成)。因此,需要復制的表在使用過程中不能經(jīng)常變動表結(jié)構(gòu)。(文/張夢強)
相關(guān)文章
sql?server多行數(shù)據(jù)合并一行顯示簡單實現(xiàn)代碼
有時候我們需要將多行數(shù)據(jù)按照某一列進行合并,以便更方便地進行數(shù)據(jù)分析和處理,這篇文章主要給大家介紹了關(guān)于sql?server多行數(shù)據(jù)合并一行顯示簡單實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2023-12-12
sql server 臨時表 查找并刪除的實現(xiàn)代碼
考慮使用表變量而不使用臨時表。當需要在臨時表上顯式地創(chuàng)建索引時,或多個存儲過程或函數(shù)需要使用表值時,臨時表很有用。通常,表變量提供更有效的查詢處理。2008-12-12
sqlserver 中ntext字段的批量替換(updatetext的用法)
在Sql Server 中,ntext/text/image 字段不允許應用replace函數(shù)替換內(nèi)容2009-09-09
sqlserver數(shù)據(jù)庫使用存儲過程和dbmail實現(xiàn)定時發(fā)送郵件
這篇文章主要介紹了sqlserver數(shù)據(jù)庫存儲過程和Job實現(xiàn)定時從數(shù)據(jù)庫發(fā)送郵件的功能,大家參考使用吧2014-01-01

