不同數據庫之間表數據的實時同步-發布與訂閱


下載網站:www.SyncNavigator.CN 
 客服QQ1793040
----------------------------------------------------------


關於HKROnline SyncNavigator 注冊機價格的問題

 

 

HKROnline SyncNavigator 8.4.1 非破解版 注冊機 授權激活教程
 

 

 

 

最近一直在研究數據庫同步的問題,在網上查了很多資料,也請教了很多人,找到了一種通過快照復制的方法。研究了一番后發現之前就是用的這個方法,效果不是很好,果斷放棄。經過了一番尋覓和他人指點,最后從一位熱心網友那里得知一款很好用的軟件—— SyncNavigator。

 

 

好東西就要拿出來跟大家分享,所以今天向大家介紹一下這款軟件,及其一些使用方法。下面先看看它有什么強大的功能吧!

 

SyncNavigator的基本功能:

 

自動同步數據/定時同步數據
無論是實時同步/24小時不間斷同步,還是根據計划任務(每小時/每日/每周/等)定時自動同步都能完全勝任。

完整支持 Microsoft SQL Server
完整支持 Microsoft SQL Server 2000 2005 2008 數據庫類型。並能在不同數據庫版本之間相互同步數據。

支持 MySQL 4.1 以上版本
支持 MySQL 4.1 5.0 5.1 5.4 5.5。並能在不同數據庫版本之間相互同步數據。

無人值守和故障自動恢復
當數據庫故障或網絡故障以后,無需人工干預(或操作)自動恢復同步並確保數據完全准確,可靠。

同構數據庫同步/異構數據庫同步
SQL Server to SQL Server, MySQL to MySQL, SQL Server to MySQL 等都能輕松實現。

斷點續傳和增量同步
當同步完成(或中斷)后,再次同步時能繼續上一次的位置增量同步,避免每次都需要從頭開始的問題。

最近要將不同服務器上數據庫的表數據同步匯總,所以就涉及到了數據同步的問題,以前沒有接觸過,在網上找了找方法,

大抵的方法有三種:

1,在數據庫中編寫觸發器

2,寫一個同步程序去完成同步

3,使用數據庫的發布和訂閱功能

以上前兩種方法暫且不提,今天說說第三種方法:使用數據庫的發布和訂閱功能實現同一服務器下的不同數據庫的表數據同步和不同服務器下的不同數據庫的表數據同步前提是源數據表結構和目標數據表結構必須相同。

先來說說【發布】和【訂閱】的操作步驟,在文章的后面,會將這個過程中可能會遇到的所有問題做一個匯總,然后給出解決方法。

目錄

1發布

2訂閱

3發布和訂閱過程中的可能遇到問題及解決方案

1發布
1,首先使用本機名稱連接到數據庫,不能使用IP地址連接數據庫,至於為什么,在文后說明找到【。復制,展開復制選項,可以看到兩個節點】:【本地發布】,【本地訂閱】

 

 

2,鼠標右鍵點擊【本地發布】,【選擇新建發布】

 

3,【彈出新建發布向導】對話框,【選擇下一步】

 

4,選擇要發布的數據庫,點擊然后【下一步】

5,選擇發布類型,這里數據庫有四種發布類型,每種發布類型下面都有類型說明,這里在選擇選擇【快照發布】,點擊然后【下一步】

 

如圖6所示,選擇要發布的表對象,在左側的選擇區域選擇要發布的表信息,然后點擊【下一步】

7,進入篩選表的設置界面,這里的篩選是指發布的表數據中的某一個或者全部字段只能為固定的值,從而達到當所有的訂閱服務器接收數據時,接收到的該字段的值為發布時設定的值。如果不需要,直接點擊【下一步】

8,進入快照代理界面,將界面上的兩項內容選中

9,如果需要修改數據同步的時間和頻率,則點擊【更改】

10,設置數據同步的的的頻率段段,每天執行的的的頻率段段狀語從句:執行的開始時間結束狀語從句:時間,設置完成點擊【確定】,返回到上一界面,然后點擊【下一步】

11,設置代理快照,點擊【安全設置】,進入設置界面

12,選擇【在SQL Server代理服務賬戶下運行】和【使用以下SQL Server登錄名】,登錄名和密碼是為了使訂閱的服務器登錄到發布服務器。設置完成點擊【確定】,返回到上一個界面,然后點擊【下一步】

13,該頁面選擇默認設置,直接點擊【下一步】

14,為本次發布創建一個名稱,然后點擊【完成】

15,以上步驟全部做完之后,等待發布的創建完成,當提示成功時,表示本次發布創建成功

16,返回到數據庫的連接初始界面,的左側處節點選擇【復制】 – 》【本地發布】,可以在改節點下看到剛才創建好的發布

至此,發布的相關操作已經做完,一個完整的發布已經成功發布。接下來要做的就是在需要同步數據的服務器上訂閱該發布。

2訂閱
在需要同步數據的服務器上添加訂閱,訂閱剛才我們添加的發布,這樣可以實現數據庫表數據之間的同步和遷移。

1,同樣的是使用本機名稱連接數據庫,然后選擇【復制】,展開該節點,選擇【本地訂閱】,鼠標右鍵點擊該項,選擇【新建訂閱】

2,進入新建訂閱向導界面,初始界面同新建發布界面,選擇【下一步】

3,進入為訂閱選擇發布的界面,如果是一個服務器不同數據庫之間的表數據同步,則在發布服務器中選擇本地服務器;如果是不同服務器之間不同數據庫的表的數據同步,則在發布服務器中選擇遠程服務器。

4,如果是不同服務器之間的數據同步,選擇【發布服務器】的下拉框,選擇第一項【查找SQL Server發布服務器】,會彈出【連接到服務器】的對話框,點擊【服務器名稱】一欄的下拉框,選擇【瀏覽更多】,在打開的界面【選擇網絡服務器】,找到發布的服務器。

 

 

5,找到該服務器之后,選擇用實例名登錄數據庫,選擇用SQL Server身份驗證,登錄名和密碼則為源服務器創建發布時選擇的登錄名和密碼

6,選擇連接,自動返回到選擇發布服務器的界面,在數據庫和發布區域,會將連接到的服務器的所有發布的數據庫顯示出來,例如這個的textdb就是剛才創建的發布數據庫,然后展開該項,可以看到我們剛才創建的發布為111的名稱,選中該發布,點擊然后【下一步】

如圖7所示,選擇然后【在配給物服務器***運行上所有代理】,【點擊下一步】

如圖8所示,選擇訂閱服務器,選中當前需要訂閱的服務器,然后點擊后面的【訂閱數據庫】,選擇下拉框,然后選擇目標數據庫,之后完成【選擇下一步】

 

9,進入分發代理安全性設置界面,選擇與訂閱服務器的連接的選擇按鈕,進入設置界面

10,按照圖中所示進行設置,SQL Server登錄名和密碼即為當前數據庫的登錄名和密碼,設置完成點擊【確定】,返回到上一界面,然后點擊【下一步】

11,同步計划的設置,點擊代理計划框,出現下拉框,選擇需要的方式,完成設置點擊之后【下一步】

12,初始化的設置,點擊初始化時間設置框,出現下拉框,選擇需要的初始化時間,完成設置點擊【下一步】

13,其他選項全部默認,點擊直接【下一步】

 

14,點擊完成,等待訂閱的成功提示

至此,目標服務器端的訂閱也成功配置。

以上發布和訂閱同時完成之后,只要保證服務器之間的連接暢通,則數據會實時的實現同步。

以上只是一對一的服務器之間的數據同步,一個服務器同時訂閱多個發布會有沖突,比如服務器1的甲數據庫有一個表一,服務器2的乙數據庫有一個表B,需要將數據庫阿中表一的數據和數據庫乙中表b的數據匯總同步到服務器3的數據庫的ç表中,A,b,C三個表的結構需要完全相同,在的服務器3單獨訂閱服務器1時,數據可以順利同步,當同時訂閱服務器1和服務器2的時候,在同步服務器1的數據時沒有問題,在同步服務器2的時候,會自動覆蓋掉服務器1的數據。

3 發布和訂閱過程中的可能遇到問題及解決方案
在發布和訂閱的創建過程中,往往會因為電腦的設置原因,而出現各種各樣的問題,在這里整理一下最常見到的問題,並提供一些解決方案

1

問題:新建發布或者訂閱,提示“無法連接到服務器,需要有實際的服務名才能連接到服務器”,

解決方案:該問題是因為使用了IP地址登錄服務器導致的,需要使用實際的服務名登錄服務器,具體的名稱查看方法:【右鍵我的電腦】 – “【屬性】即可查看到計算機名,使用該名稱連接服務器即可

 

2

問題:新建發布或者訂閱,提示“SQL Server復制需要有實際的服務器名稱才能連接到服務器,不支持通過別名,ip地址或其他任何備用名稱進行連接。請指定實際的服務器名稱”xxxx“”

解決方案:該問題是由於更改計算機名稱導致的。如果遇到此問題,則復制下面的SQL語句到數據庫中執行

select @@servername
select serverproperty(‘servername’)
執行以上兩句代碼,結果如上圖所示,如果兩個結果的名稱不一致,則需要修改,修改代碼如下:

if serverproperty(‘servername’) <> @@servername
begin
declare @server sysname
set @server = @@servername
exec sp_dropserver @server = @server
set @server = cast(serverproperty(‘servername’) as sysname)
exec sp_addserver @server = @server , @local = ‘LOCAL’
End
執行以上代碼,執行成功以后,需要重新啟動SQL Server(MSSQLSERVER)服務,然后重啟之后再使用一下代碼查詢。

select @@servername
select serverproperty(‘servername’)
結果顯示查詢結果一致,則該問題解決。

3

問題:在創建發布的最后一步,提示一個警告,顯示“SQL Server無法啟動快照代理”

解決方案:該問題是由於SQL服務器的一個服務沒有啟動導致的打開SQL服務器的配置管理器,查看SQL服務器的代理服務是否啟動,如果沒有啟動,則啟動該程序即可

 

暫時遇到的這幾種問題,以后遇到的在做補充。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM