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去連結,用第一步查出來的名稱連線)。
④之後按下面步驟進行釋出訂閱。
第二種方法(本地):
②用我本地的計算機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這種開源軟體用著方便。