簡體   English   中英

發布'xx'的並發快照不可用,因為它尚未完全生成或日志讀取器A

[英]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)正常重新創建出版物和訂戶

這應該夠了吧 :-)

  1. 是否生成了發布的快照? 有時這需要花費很長時間,有時會延遲到以后的時間。 如果它是,你應該能夠在磁盤上的某個地方找到它。

  2. 確保日志讀取器在發布服務器上運行,如果這是事務復制,我認為它是。

在我的情況下,這是因為分發器數據庫上的“MSSubscriptions”表有nosync_type = 1和status = 2。 上面分別改為0和1。

再次重新初始化快照,然后分發服務器代理開始接收這些更改。

我只是再次重新初始化快照(新快照,不要重復使用舊快照)然后分銷商代理開始接收這些更改。

對我來說,只需要讓日志讀取器和分發服務帳戶DB_Owner訪問發布數據庫。 我不確定它們是否都是必需的,但它很容易解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM