SQL Server數(shù)據(jù)復(fù)制的三種方法
SQL Server數(shù)據(jù)復(fù)制是非?;?,也是最常見的操作之一,下面就為您介紹SQL Server數(shù)據(jù)復(fù)制的三種方法,希望對您有所啟迪。
成功進行SQL Server數(shù)據(jù)復(fù)制工作,有些條件是必不可少的:
1>SQL Server Agent必須啟動,MSDTC必須啟動。
2>所有要SQL Server數(shù)據(jù)復(fù)制的表必須有主鍵。
3>如果表中有text或image數(shù)據(jù)類型,必須使用with log選項,不能使用with no_log選項。
另外max text repl size選項控制可以復(fù)制的文本和圖像數(shù)據(jù)的***規(guī)模,超過這個限制的操作將失敗。(這個不知如何理解?)
4>在要進行復(fù)制的計算機上,應(yīng)該至少是隱含共享,即共享名是C$或D$…。
5>為SQL Server代理使用的Windows NT帳號不能是一個本地的系統(tǒng)帳號,因為本地的系統(tǒng)帳號不允許網(wǎng)絡(luò)存取。
6>如果參與SQL Server數(shù)據(jù)復(fù)制的服務(wù)器在另外的計算機域中,必須在這些域之間建立信任關(guān)系。
SQL Server數(shù)據(jù)復(fù)制的三種方法:
1,快照復(fù)制。
2,事務(wù)復(fù)制。通過在發(fā)布端發(fā)布數(shù)據(jù),訂閱端立即更新返回到發(fā)布端。這種方法對于沒有Iamge,text,ntext等類型是能成功,或許對我們的項目更為合理些,但是在辦公自動化的收發(fā)文管理中都涉及到這種數(shù)據(jù)類型。
用這種方法復(fù)制的時候出現(xiàn)的錯誤為:
當發(fā)布端,新增一條記錄后,過一定時間后則會復(fù)制到訂閱端,
而如果在訂閱端新增一條記錄,則會出現(xiàn)這樣一個錯誤信息:
[Microsoft][ODBC SQL Server Driver][SQL Server]Updatable Subscriptions:The
text/ntext/image values inserted at Subscriber will be NULL.
保存不進去,SQL Server數(shù)據(jù)復(fù)制(立即更新)也就不成功。不知道該如何解決這一問題?
操作步驟:在發(fā)布端:新建->發(fā)布->顯示高級選項->選擇一個數(shù)據(jù)庫->事務(wù)發(fā)布->選即時更新->在選定項目中選取要復(fù)制的表,此表要符合以上的一些條件。在按照向?qū)瓿刹僮?。如果有需要可以在發(fā)布屬性中選取行,即寫WHERE語句篩選要復(fù)制下去的行。
在訂閱端:新建->請求訂閱->顯示高級選項->選擇一個機器名->登錄的帳號->此后需要修改一下復(fù)制的周期。再根據(jù)向?qū)瓿捎嗛喸O(shè)置.
3,出現(xiàn)了事務(wù)復(fù)制不能解決的問題后,現(xiàn)想出另外一種復(fù)制方法:合并復(fù)制。
初步設(shè)想是在總部數(shù)據(jù)庫服務(wù)器上做發(fā)布端,在成員公司的數(shù)據(jù)庫服務(wù)器上做訂閱端,根據(jù)篩選行來復(fù)制不同的數(shù)據(jù)到不同的成員公司.
合并復(fù)制特點:
1。如果在發(fā)布端跟訂閱端都有一條主鍵相同的記錄,那么它將以發(fā)布端的記錄復(fù)制下去,覆蓋掉訂閱端的同主鍵數(shù)據(jù)。
2。在合并過程中進行數(shù)據(jù)同步(所有服務(wù)器的數(shù)據(jù)更新進行匯集)
操作步驟:在發(fā)布端:新建->發(fā)布->顯示高級選項->選擇一個數(shù)據(jù)庫所在的機器名->合并發(fā)布->在選定項目中選取要復(fù)制的表,此表要符合以上的一些條件。在按照向?qū)瓿刹僮鳌H绻行枰梢栽诎l(fā)布屬性中選取行,即寫WHERE語句篩選要復(fù)制下去的行。
在訂閱端:新建->請求訂閱->顯示高級選項->選擇一個機器名->登錄的帳號->此后需要修改一下復(fù)制的周期。再根據(jù)向?qū)瓿捎嗛喸O(shè)置.
【編輯推薦】