繁体   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