上篇中說了通過SQL JOB的方式對數據庫的同步,這一節作為上一節的延續介紹通過發布訂閱的方式實現數據庫之間的同步操作。發布訂閱份為兩個步驟:1、發布。2訂閱。首先在數據源數據庫服務器上對需要同步的數據進行發布,然後在目標數據庫服務器上對上述發布進行訂閱。發布可以發布一張表的部分數據,也可以對整張表進行發布。下面分別介紹發布、訂閱的過程。
1、發布。發布需要用實際的服務器名稱,不能使用服務器的IP地址進行。能發布的信息包括【表】、【存儲過程】、【用戶函數】如果使用IP會有錯誤,如下圖:
具體發布過程如下:
1、找到數據庫服務器下的【復制】--【本地發布】,選擇【新建發布】。如下圖:
2.選擇待發布的數據庫。如下圖:
3、選擇發布類型。這裡選擇的默認類型【快照發布】。幾種發布類型的區別,SQL SERVER都在下面給出了說明。如下圖:
4、選擇待發布的類容。如下圖:
上圖中右側就是篩選的SQL語句。
5、設置快照代理。如下圖:
更改同步頻率如下圖:
6、設置代理安全性。如下圖:
7、填寫發布名稱
8、完成發布。如下圖:
2、訂閱。訂閱是對數據庫發布的快照進行同步,將發布的數據源數據同步到目標數據庫。具體訂閱過程如下;
1、找到數據庫服務器下的【復制】--【本地訂閱】,選擇【新建訂閱】。如下圖:
2、選擇訂閱的發布。如下圖:
3、選擇分發代理的位置;如下圖:
4、選擇訂閱服務器上的存放同步過來的數據的一個或者多個目標數據庫。如下圖:
若要添加多個訂閱數據庫,則點擊【添加訂閱服務器】。如下圖:
5、設置分發代理的安全性。如下圖:
6、設置同步計劃。如下圖:
7、完成訂閱。如下圖:
這樣就完成了發布與訂閱的整個流程。
這裡,和上節一起就介紹完了SQL Server數據庫同步的兩種方式,希望對你有用。
SQL Server在數據同步方面應用比較多還是復制技術,通過事務復制可以實現准實時同步,准實時同步的意思並不是真正的實時同步,總會有一定延遲的,這主要取決於兩台服務器間的網絡狀況,即便網絡狀況非常好,比如內網中的2台機器,也是會有一定延遲的,一般在幾秒吧。
另外事務復制對表結構要求比較嚴格,需要有主鍵。如果需要整庫同步,可以考慮使用數據庫鏡像,這對表沒有太多要求。
通過備份方式也可以實現,SQL Server本身也提供了日志傳送功能來通過備份進行同步,但是這樣數據延遲就更大了,取決於備份恢復的頻率,可能並不符合樓主需要。
復制和數據庫鏡像這兩項技術都不是一兩句話能說清楚的,詳細信息可以查看微軟MSDN文檔
msdn.microsoft.com/...9.aspx
msdn.microsoft.com/...9.aspx
使用事務方式會快些,在主機上接交一個事務,基本上在訂閱機上過一個1到2秒就可以看到了。
不過據部份高手說,對於數據量大的系統容易出問題。