SQLServer 中發布與訂閱

2022-08-16 03:27:14 字數 2155 閱讀 8403

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

首先說明一下資料複製的流程。如下圖a是(192.168.210.170)上的資料庫,b是(172.23.100.109)上的資料庫。把b當作資料來源,然後a從b上獲取資料。

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

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

解決辦法有兩種:

第一種方法(遠端):①分別查詢出資料庫伺服器的名稱,查詢語句「select @@servername」。

②ab兩個伺服器分別遠端桌面登陸上。

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

第二種方法(本地):①分別查詢出資料庫伺服器的名稱,查詢語句「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這種開源軟體用著方便。

SQLServer 中發布與訂閱

在對資料庫做遷移的時候,會有很多方法,用儲存過程,job,也可以用開源工具kettle,那麼今天這些天變接觸到了一種新的方法,就是sqlserver中自帶的發布與訂閱。首先說明一下資料複製的流程。如下圖a是 192.168.210.170 上的資料庫,b是 172.23.100.109 上的資料庫。...

SQL SERVER發布與訂閱

一.配置分發 1.配置分發伺服器,注 配置發布與訂閱,連線sqlserver必須用伺服器名登入 2.配置分發 3.選擇分發伺服器 4.選擇快照資料夾 5.設定此資料夾的讀寫許可權為everyone 6.選擇分發資料庫路徑 7.配置分發 8.配置分發 9.配置分發完成 二.新建發布 1 新建發布 2 ...

js 中發布與訂閱者模式

之前在unity做遊戲的時候,常常使用到,發布於訂閱者模式。目的是為了解耦。不然 太黏不易維護。他的本質就是做到,發布者唯一的 key 但是訂閱者多個 value 是乙個一對多的關係 let eventmap new map class observe key key值 param args key...