![](/img/trans.png)
[英]SQL server replication error: “The initial snapshot for publication 'XYZ' is not yet available”
[英]The concurrent snapshot for publication 'xx' is not available because it has not been fully generated or the Log Reader A
我在使SQL Server(2005)正常工作時遇到各種麻煩。 當我運行客戶端(SQL Server Express 2005)時,我收到以下錯誤“發布的並發快照'xx'不可用,因為它尚未完全生成或日志讀取器A”
錯誤被裁掉了。
我嘗試過: - 刪除訂閱 - 刪除發布並重新開始 - 重新啟動服務器和客戶端。 - 收縮數據庫
一切都沒有任何改變。
我知道客戶端可以看到網絡共享\\ servername \\ repldata,其中有一個UNC子文件夾,其中包含快照(更深層次的文件夾,其中包含pubName和dateTime編碼)
任何提示或旅行都將非常感激
但這是解決方案: http : //social.msdn.microsoft.com/forums/en-US/sqlreplication/thread/baf99181-2fe1-4e6b-ba45-5d1d08103550/
1)刪除訂閱和整個不起作用的出版物
2)對這些表運行select以查看是否仍有可用的發布數據庫行:
select * from msdb..MSdistpublishers
select * from distribution..MSpublisher_databases
select * from distribution..MSpublications
select * from distribution..MSarticles
select * from distribution..MSsubscriptions
3)現在從剛剛刪除的發布者數據庫中刪除仍具有“publisher_db”的所有行:
delete from distribution..MSarticles where publisher_db = '<NameOfDatabase>'
delete from distribution..MSsubscriptions where publisher_db = '<NameOfDatabase>'
4)正常重新創建出版物和訂戶
這應該夠了吧 :-)
是否生成了發布的快照? 有時這需要花費很長時間,有時會延遲到以后的時間。 如果它是,你應該能夠在磁盤上的某個地方找到它。
確保日志讀取器在發布服務器上運行,如果這是事務復制,我認為它是。
在我的情況下,這是因為分發器數據庫上的“MSSubscriptions”表有nosync_type = 1和status = 2。 上面分別改為0和1。
再次重新初始化快照,然后分發服務器代理開始接收這些更改。
我只是再次重新初始化快照(新快照,不要重復使用舊快照)然后分銷商代理開始接收這些更改。
對我來說,只需要讓日志讀取器和分發服務帳戶DB_Owner訪問發布數據庫。 我不確定它們是否都是必需的,但它很容易解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.