今天剛在學數據庫的讀寫分離(主從分離),原本電腦上安裝的SQL Server2012是Express版本的,在數據庫-->復制下,只有本地訂閱,沒有本地發布,所以只能把這個版本的數據庫刪了,裝上了Enterprise版本。
等待數據庫裝完之后,進入數據庫就顯示如下頁面了
本地發布和本地訂閱都有,為了實現數據庫主從分離這個功能,我們還需要開啟SQL Server代理服務器,打開本地電腦的服務,啟動SQL Server代理服務(默認是沒有啟動的)
啟動完服務就可以了開始實現我們要的功能了,首先,我們創建兩個數據庫TestA(做為主數據庫)和TestB(做為從數據庫),
主數據庫的作用一般用於新增、刪除、更改操作
從數據庫可以有多個,一般用於查詢操作,因為一般網站可能80%的訪問是查詢。
本次演示在同一台機器上進行。
1、新建本地發布
2、選中需要發布的數據庫,以TestA為例
3、發布類型選擇事務發布
4、把我們需要的表選上(示例只創建了一個表)
5、如果有需要,可以進行篩選表行
6、創建快照代理
7、選中快照代理安全性進行設置
8、填寫發布名稱,會在本地發布中顯示
9、至此本地發布新建完成(會在本地發布中顯示所寫的發布名稱)
10、接下來新建本地訂閱(右鍵新建訂閱,以TestB為例)
11、選中發布服務器(有幾種選擇,本機如下)
12、如果不是選擇本機的(例如查找SQL Server 發布服務器)
13、分發代理位置
注意:這里我們選中推送訂閱
當數據庫的數據有變更的時候,就會通過訂閱和發布系統通知各個從數據庫更新
1、從數據庫隔一段時間輪詢主數據庫,將主數據庫中增量的腳本獲取后執行(性能低下)
2、當主數據庫有數據更新時,主數據庫將增量的數據腳本自動推送給各個數據庫執行(性能高效,也是我們使用的這種)
14、選擇訂閱服務器,也就是以我們的TestB為例
15、設置安全性
16、至此本地訂閱發布成功
然而,卻出現問題了,在本地訂閱中並沒有顯示發布成功的數據庫
通過一步步查看,在我們剛創建的本地發布中,右鍵‘查看快照代理狀態’
發現ReplData文件夾下,訪問被拒絕,因為需要給它設置一個Everyone的權限
這時候重新啟動代理,就可以順利啟動了
本地訂閱也可以顯示了,並且數據順利同步過去了