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