SQL Server可以通過發布和訂閱方式在兩台數據庫之間做數據實時同步。本手冊描述了創建發布與訂閱的步驟。
本手冊所使用的環境如下:
|
|
IP |
主機名 |
| 主數據庫 |
192.168.2.110 |
ECS-DEV-10 |
| 備數據庫 |
192.168.2.112 |
ECS-DEV-12 |
1配置主機名
在兩台數據庫之間創建發布和訂閱時,兩台服務器之間需要通過主機名互通,需要在各自的hosts文件中配置對端的主機名和IP。
在主數據庫上編輯以下文件:
C:\Windows\System32\drivers\etc\hosts
在最后添加一行,內容如下:
192.168.2.112 ECS-DEV-12
在備數據庫這個文件中也添加一行,內容如下:
192.168.2.110 ECS-DEV-10
2配置代理
打開,SQL Server配置管理器,在左側樹上選擇【SQL Server服務】

右側雙擊【SQL Server代理】

【登錄】切頁中,勾選【本賬戶】,賬號名填寫和【SQL Server】服務相同的賬號名

【服務】切頁中,將啟動模式改成【自動】,點擊【確定】保存

確認代理狀態是否是【正在運行】,如果沒有在運行,則右鍵點擊代理,點擊【啟動】

3在主數據庫創建發布
打開Microsoft SQL Server Management Studio,連接主數據庫,在左邊的對象資源管理器中,右鍵點擊【復制】->【本地發布】,點擊【新建發布】

點擊【下一步】

選擇要同步的數據庫,這里選擇dwis,點擊【下一步】

發布類型選擇【事務發布】,點擊【下一步】

要發布的對象選擇全部,點擊【下一步】

點擊【下一步】

點擊【下一步】

勾選【立即創建快照並使快照保持可用狀態,以初始化訂閱】,點擊【下一步】

點擊【安全設置】

勾選【在SQL Server代理服務賬戶下運行】,勾選【使用以下SQL Server登錄名】,輸入數據庫的用戶名和密碼,點擊【確定】

勾選【創建發布】,點擊【下一步】

填寫發布名稱,點擊【完成】

等待創建發布完成之后,點擊【關閉】

4在備數據庫創建訂閱
連接備庫,在對象資源管理器中,右鍵選擇剛才創建好的發布,點擊【新建訂閱】

點擊【下一步】

選擇剛才創建發布的數據庫,點擊【下一步】

選擇【推送訂閱】,點擊【下一步】

點擊【添加訂閱服務器】

連接備數據庫,這里的服務器名稱需要填寫主機名。身份驗證選擇【SQL Server身份驗證】,輸入登錄名和密碼,點擊連接

點擊【下一步】

點擊訂閱服務器右邊的【....】按鈕,配置代理的安全性

勾選【在SQL Server代理服務賬戶下運行】,勾選【使用以下SQL Server登錄名】,輸入數據庫的用戶名和密碼,點擊【確定】

代理計划選擇【連續允許】,點擊【下一步】

勾選【初始化】,初始化時間選擇【立即】,點擊【下一步】

勾選【創建訂閱】,點擊【下一步】

點擊【完成】

等待訂閱創建成功之后,點擊【關閉】

5監控發布和訂閱狀態
在對象資源管理器中,右鍵點擊創建好的發布,點擊【啟動復制監視器】,在里面可以查看發布和訂閱的運行情況

修改表結構
如果需要在已創建發布與訂閱的環境下修改表結構,需要重新生成代理快照,操作步驟如下:
右鍵點擊已創建的發布,點擊【屬性】

左邊選擇【項目】,將要修改的表上的勾去掉

去掉勾的時候會彈出一個確認提示對話框,點擊【是】關閉對話框,然后點擊【確定】

執行修改表結構語句修改表結構,修改完之后,返回剛才的【項目】頁面,將剛才的表再次勾選上
再次右鍵點擊已創建的發布,點擊【查看快照代理狀態】

點擊【啟動】,等待快照生成結束之后,查看兩台數據庫的數據是否已經可以正常同步

