SQLServer 中發布與訂閱


  在對數據庫做遷移的時候,會有很多方法,用存儲過程,job,也可以用開源工具kettle,那么今天這些天變接觸到了一種新的方法,就是SqlServer中自帶的發布與訂閱。

  首先說明一下數據復制的流程。如下圖A是(192.168.210.170)上的數據庫,B是(172.23.100.109)上的數據庫。把B當作數據源,然后A從B上獲取數據。

     發布前准備:首先兩個服務器之間要能相互通訊,也就是能ping命令能通。

         平時我們鏈接數據庫的時候,經常都是用的ip登陸,但是發布的時候不能這樣,必須用服務器名稱,不然會報錯,如下圖。

        

        解決辦法有兩種:

             第一種方法(遠程):①分別查詢出數據庫服務器的名稱,查詢語句“select @@SERVERNAME”。

                                         ②AB兩個服務器分別遠程桌面登陸上。

                                         ③用服務器上的Management studio去連接本機的數據庫(注意:不能用ip去鏈接,用第一步查出來的名稱連接)。

                                         ④之后按下面步驟進行發布訂閱。

             第二種方法(本地):①分別查詢出數據庫服務器的名稱,查詢語句“select @@SERVERNAME”。

                                               用我本地的計算機C,找到C:\Windows\System32\drivers\etc這個路徑,將在hosts文件中將A的ip地址和第一步查詢 出來的服務器名稱添加進去,B也是。這也就是映射。

               ③打開本地的Management studio,去連接AB兩個數據庫(這里也應該用查詢服務器名稱)。

               ④之后按下面步驟進行發布訂閱。

           這里本實驗選擇的是第二種方式,接下來就正式開始了。

 

1.發布

      

  

①在數據庫B服務器下找到【復制】-【本地發布】-【新建發布】。

  

②選擇要發布的數據庫

  

③選擇發布類型,這里選擇快照發布。

  

④選擇發布的內容,即要發布哪些數據。

  

 ⑤進行數據篩選,可以在這一步就行條件過濾,當然也可以不設置條件,選取所有數據。

      

⑥設置快照代理並更改同步頻率

  

    

⑦安全性設置,即配置登陸類型,登陸賬戶密碼。

  

 

  

⑧給發布名稱起一個名字,我起了個LS(李四)

   

  

  最終,到這一步,發布算是完成了,接下來就開始看訂閱。

 2.訂閱

    訂閱是對剛才發布的快照進行同步,即將數據源數據同步到目標數據庫。

①在服務器A上,【復制】-【本地訂閱】-【新建訂閱】

  

 

②選擇訂閱發布

  

  

③選擇分發代理的位置,選擇一個簡單的推送訂閱。

  

 

 ④設置訂閱服務器的目標數據庫

  

⑤設置代理安全性,即訂閱服務器的賬戶密碼。

  

⑥設置同步計划,這里選擇連續運行。

  

⑦點擊完成,訂閱配置完成。

  

⑧查看監視。在【本地發布】-【啟動復制監視器】,點開就能查看快照的運行狀態,和其他詳細信息。

    

  

 

 

  至此,發布與訂閱都已完成。在服務器A中One這個數據庫中,會發現多了一張aaa的數據表,這表示B服務器的數據傳到A上了。當在服務器B修改aaa表中的記錄(源數據)時,A里面的記錄(目標數據)也會改變。

總結:搞了幾天這個數據發布與訂閱,但是感覺這個並不是很好用,靈活性上不好,感覺都不如kettle這種開源軟件用着方便。


免責聲明!

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



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