1. 程式人生 > >SQLServer 中釋出與訂閱

SQLServer 中釋出與訂閱

  在對資料庫做遷移的時候,會有很多方法,用儲存過程,job,也可以用開源工具lettle,那麼今天這些天變接觸到了一種新的方法,就是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這種開源軟體用著方便。