最簡單的SQLserver,發佈訂閱教程,保證一次就成功

 

 

最簡單的SQLserver,發佈訂閱教程,保證一次就成功

 

發佈訂閱用來做數據庫的讀寫分離,還是很好用的 

當單臺數據庫的壓力太大時,可以考慮這種方案,一主多從,主服務器的數據庫只管寫入,其他的數據庫都是隻讀也是一種很好的方案

 

開始

我們選擇A服務器做爲發佈的服務器, 

B服務器做爲訂閱的服務器, 

 第一部分A服務器

 

選擇要A服務器,選擇 “複製”,“本地發佈”,右鍵本地發佈

 如果是第一次會有如下,一直點下一步

注意:..\ ReplData這個文件夾是發佈所在的文件夾,要保持訪問權限,當在c盤時,有時可能會出現無法訪問,我這裏一般會給ReplData這個文件夾加上everyone權限

選擇要發佈的數據庫

注意:這個數據庫要有過完整備份

 

選擇發佈類型

 

注意:實時性高,數據量大的一般選擇事務發佈比較好

 

一直點下一步

 

注意,這一步很關鍵

 

 

注意:1,不要用sa賬戶,單獨再新建一個sqlserver賬戶,而且要有該數據庫的db_owner權限,

 

 

我們來添加一個test賬戶  找到“安全性”,右鍵“登錄名”

 

點擊“用戶映射”更改一下test賬戶權限

 

 

這個test賬戶一定要有你即將要發佈的數據庫的public和db_owner權限

然後:在B服務器上進行一模一樣添加test賬戶的操作,後面會用到

添加完成之後繼續發佈,加上我們添加的Test賬戶

 

有個警告,說代理沒運行

 

找到sqlserver管理器,將代理運行起來,

 

,B服務器也進行相同的操作,保證sqlserver代理都是開着的

 

到這裏還不夠

 

下一步,配置host,找到 A服務器文件  c:\windows\system32\drivers\etc下的hosts文件

 

 

在最後一行填上B服務器的ip 和主機名, 注意,ip和名字之間隔空格,這個ip可是是內網,也可以是公網

 

然後A服務器就完備了,沒啥事了,接下來配置B服務器,  

 

 

第二部分,B服務器

在B服務器進行相同的操作主機上進行相同的添加host操作 

將A服務器的ip 和主機名 添加到B服務器的hosts文件下面,

 

然後開始創建訂閱

 

 

選擇查找SqlServer服務器,這裏服務器名稱寫A服務器的名稱,不能用ip,用剛纔在hosts文件裏面那個A服務器的主機名

 

使用sa或者剛纔創建的test賬戶登錄,登錄成功後,會看到A服務器的發佈

 

選擇上面的,推送訂閱,好處是便於集中管理

 

賬戶還用剛纔創建的那個test

 

然後一直下一步,直到完成

 

創建完成

 

測試一下,在A服務器添加一條數據

可以看到,B服務器馬上也有了,刪除修改也會同步,到這裏就全部成功

 

其他

在A服務器上面查看訂閱的狀況

右鍵當前的發佈,“啓動複製監視器”

 

可以看到當前的狀況, 

如果訂閱沒有成功,或者數據沒能同步,可以在這裏看看日誌,查找原因。

 

 

 

常見問題

 1,  兩臺主機的 1433端口互相不通

 2,  SqlServer Agent 代理沒有開啓

3,  沒有配置 hosts 文件中的ip和主機名映射

4,  ReplData文件夾權限不足

5,  發佈訂閱前沒有進行完整備份

 

(聯繫作者,QQ 634892969)

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章