SQL SERVER中資料同步的實現 轉

2021-09-05 17:51:07 字數 1693 閱讀 2977

轉自:

sqlserver中,資料庫同步的實現

經過測試,可以順利實現資料庫結構的初始化和資料的單向同步(也就是訂閱伺服器的資料可以及時更新為發布伺服器的資料)。

準備工作:

>>資料的同步中主要考慮的三部分,可以理解成三颱主機。發布伺服器,分發伺服器和訂閱伺服器;可以從字面的意思理解,要實現的功能實際就是讓訂閱伺服器通過分發伺服器保持資料及時地和發布伺服器上的資料一致。整個執行過程是這樣一來的:

a.訂閱伺服器應該有個初始化,一般來說我們開始做這個同步任務的時候,發布伺服器已經有了相當的資料量了,而我們的訂閱伺服器應該是新建的服務。即使發布中沒有資料,也需要把他的資料庫結構初始化到訂閱伺服器上。

b.我採用的是事物複製,發布伺服器的資料發生變化後,相當於觸發了乙個更新操作,而事物複製可以在設定的時間把資料更新的操作更新到訂閱伺服器中去。當然,這個操作需要經過分發伺服器。在我的測試中,我是把發布伺服器和分發伺服器設定為同一臺主機,可以順利實現資料在案分鐘內同步。

>>在操作的起始,需要考慮訂閱伺服器是否有和發布伺服器相同結構的資料庫,如果有,需要做的就是使用**把發布伺服器現有的資料初始化過去;如果沒有對應的相同結構的資料庫,就需要要把發布伺服器當前的資料庫結構和當前的資料都初始化到訂閱伺服器中。當然這裡所說的操作都是在下面的實施步驟中實現,不需要單獨處理。

>>如果說對windows系統有所要求的話,就應該保證這三個伺服器(發布,分發,訂閱)在同個域中,以同乙個域管理員帳號身份執行,操作如下:

a.進入相應的伺服器,控制面板->服務->sqlserveragent,設定登入,三颱伺服器同樣設定。

b.操作前,也不允許這三颱伺服器對應的別名使用呢稱,比如"local",這樣的別名要刪除重建,可以採用主機名,比如:server02.

下面開始執行資料庫同步的操作:

>>配置發布伺服器和分發伺服器:

a.選中對應伺服器的註冊名->工具->複製->配置發布、訂閱和分發,直接按照預設設定向下執行,直到完成。關閉。

b.再一次選中這個伺服器伺服器的註冊名->工具->複製->配置發布、訂閱和分發,可以看到這次介面和步驟a中的介面有所不同,我們只需要配置一下 發布伺服器,發布資料庫,訂閱伺服器。(我的發布資料庫採用的是事物性的)。點「確定」完成操作。《標記p>

>>建立發布,可以選中相應的註冊,用工具->複製->建立和管理發布或者在該註冊下面的 複製->發布內容 選中後,在右邊空白處,右鍵,新建發布,來建立你的發布。我選擇的是事物發布,按照預設設定,選擇你要發布的表或其他物件,其他地方不需要修改,直到完成操作。

>>修改發布屬性:選擇「狀態」->立即執行**程式;**程式屬性->設定你的排程,比如一分鐘一次。(排程->編輯->更改;通知->寫入windows應用程式事件日誌),"確定"完成操作。

>>建立訂閱:選擇發布伺服器對應的註冊,複製->發布內容->在這個內容上右鍵,強制新訂閱,->"下一步",選擇訂閱伺服器(在標記p那一步選擇的訂閱伺服器)->「下一步」->選擇你有的資料庫,或者新建乙個資料庫

->"下一步"-> 修改你需要的排程->按照預設設定,直到完成。

到這裡就可以完成了,修改發布伺服器資料庫中的內容,等一兩分鐘,資料就同步到訂閱伺服器中了。不過由於第一次執行需要快照,如果發布庫中有一定的內容,第一次執行可能需要幾分鐘時間。如果資料不能同步過去,大家是排程設定時間太短(比如1分鐘)使快照不能完成,所以後面的步驟無法執行,遇到這樣的情況的話,

選中你發布的內容,設定屬性,在「狀態」中「立即執行**程式」,這樣的話,資料會馬上同步過去的。

SQL Server 跨庫同步資料

最近有個需求是要跨庫進行資料同步,兩個資料庫分布在兩台物理計算機上,自動定期同步可以通過sql server 作業來實現,但是前提是需要編寫乙個儲存過程來實現同步邏輯處理。這裡的儲存過程用的不是opendatasource,而是用的鏈結伺服器來實現的。儲存過程建立在ip1 192.168.0.3伺服...

domino資料同步到sql server

近期有個需求,要同步domino資料到selservlet資料庫,檢視幾年前ls使用odbc寫的同步功能,還能正常使用。而且加入讀者域進去功能 之前沒有這個需求 改進成網頁配置版本號 曾經是cs配置 發現desiger9.0的幫助已經沒有了odbc的幫助,還得在老版本號desiger查詢更改內容,假...

SQL SERVER 異類資料庫資料同步

不知道是我電腦有問題還是部落格出了問題.昨天寫了一大堆還抓了n n 10 張,結果ie掛掉了.沒心情搞,簡單說下方法吧.論壇上看到有人問到oracle和sql server 2000實時同步的問題.以前同步做的也都只是sql server之間的同步.異類的還真沒做過.網上找了下,在csdn上看到也有...