Sql Server【發布訂閱】功能實踐
需要使用另外一個數據庫的數據,又都在同一個Sql Server實例上,就使用了Sql Server的【發布訂閱】功能。
具體操作步驟:摸著里
一通操作之后服務并不能使用,數據沒有同步過來。右鍵 “查看快照代理狀態”發現一直在報錯: 對路徑“”的訪問被拒絕。百思不得其解!!
百度之,找到了答案:使用SQL Server發布數據庫快照的配置中,如果你選擇了使用SQL Server代理,而SQL Server代理服務使用的登陸身份不具有對存放快照文件位置的讀寫權限時,就會出現該錯誤。
解決方法:在服務中找到(SQL Server代理)服務,把服務的運行賬戶改成本地系統賬戶。問題解決!!
解決細節摸著里
后記:
1,被訂閱的表可以新增字段,但是不能修改或刪除字段。
2,【發布訂閱】應該是被設置在了數據庫上,不會隨著軟件的重裝而消失。
3,需要啟動Sql Server代理,否則無法正常使用。
---------------------------------------------------------------------------
這個功能不是很常用,一段時間之后發現又失敗了!!!
右鍵,選擇選擇“重新初始化所有訂閱”,提示報錯(有報錯就好說):無法初始化一項或多項支持自動初始化的訂閱。百度之,找到了一個說法,再對比自己的情況,確實是這樣的,具體原因如下:
服務器換過主機,所以此時機器名不一樣了,以前的發布項目都是之前的機器名,所有發布的項目在現在的機器名上未能成功刪除,最終導致復制功能不可用。由于sql的復制功能都是通過機器名去尋址的,所以在更換主機后由于新的機器名和舊的不一樣,故提示分發服務器未正確安裝。
解決方案:
//清空數據庫所有的訂閱和發布項目
所有本服務器上有發布或訂閱的的數據都用下面的命令清理掉就可以了。
sp_removedbreplication 'dbname'
解決細節摸著里