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監控發佈和訂閱狀態
在對象資源管理器中,右鍵點擊創建好的發佈,點擊【啓動複製監視器】,在裏面可以查看發佈和訂閱的運行情況
修改表結構
如果需要在已創建發佈與訂閱的環境下修改表結構,需要重新生成代理快照,操作步驟如下:
右鍵點擊已創建的發佈,點擊【屬性】
左邊選擇【項目】,將要修改的表上的勾去掉
去掉勾的時候會彈出一個確認提示對話框,點擊【是】關閉對話框,然後點擊【確定】
執行修改表結構語句修改表結構,修改完之後,返回剛纔的【項目】頁面,將剛纔的表再次勾選上
再次右鍵點擊已創建的發佈,點擊【查看快照代理狀態】
點擊【啓動】,等待快照生成結束之後,查看兩臺數據庫的數據是否已經可以正常同步