SQL Server 2012本地發布、訂閱及相關問題的解決方案


今天剛在學數據庫的讀寫分離(主從分離),原本電腦上安裝的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的權限

 

 這時候重新啟動代理,就可以順利啟動了

 

 本地訂閱也可以顯示了,並且數據順利同步過去了

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM