[英]The concurrent snapshot for publication 'xx' is not available because it has not been fully generated or the Log Reader A
I am having all sorts of trouble getting SQL Server (2005) to work properly. 我在使SQL Server(2005)正常工作时遇到各种麻烦。 When I run the client (SQL Server Express 2005) I get the following error "The concurrent snapshot for publication 'xx' is not available because it has not been fully generated or the Log Reader A"
当我运行客户端(SQL Server Express 2005)时,我收到以下错误“发布的并发快照'xx'不可用,因为它尚未完全生成或日志读取器A”
The error is cropped off. 错误被裁掉了。
I have tried: - Deleting the subscription - Deleting the publication and starting again - Restarting the server and client. 我尝试过: - 删除订阅 - 删除发布并重新开始 - 重新启动服务器和客户端。 - Shrinking the database
- 收缩数据库
All without any change. 一切都没有任何改变。
I know that the client can see the network share \\servername\\repldata which has a UNC subfolder with the snapshot in it (a folders deeper with the pubName and dateTime encoding as expected) 我知道客户端可以看到网络共享\\ servername \\ repldata,其中有一个UNC子文件夹,其中包含快照(更深层次的文件夹,其中包含pubName和dateTime编码)
Any tips or trips would be REALLY appreciated 任何提示或旅行都将非常感激
But here is the solution: http://social.msdn.microsoft.com/forums/en-US/sqlreplication/thread/baf99181-2fe1-4e6b-ba45-5d1d08103550/ 但这是解决方案: http : //social.msdn.microsoft.com/forums/en-US/sqlreplication/thread/baf99181-2fe1-4e6b-ba45-5d1d08103550/
1) delete the subscription & the whole publication that is not working 1)删除订阅和整个不起作用的出版物
2) run a select on these tables to see if there are still rows for the publication database available: 2)对这些表运行select以查看是否仍有可用的发布数据库行:
select * from msdb..MSdistpublishers
select * from distribution..MSpublisher_databases
select * from distribution..MSpublications
select * from distribution..MSarticles
select * from distribution..MSsubscriptions
3) now delete all rows that have still the 'publisher_db' from the just deleted publisher database: 3)现在从刚刚删除的发布者数据库中删除仍具有“publisher_db”的所有行:
delete from distribution..MSarticles where publisher_db = '<NameOfDatabase>'
delete from distribution..MSsubscriptions where publisher_db = '<NameOfDatabase>'
4) re-create the publication & the subscriber as normal 4)正常重新创建出版物和订户
That should do the trick :-) 这应该够了吧 :-)
Has the snapshot for the publication been generated? 是否生成了发布的快照? Sometimes this takes a looong time and sometimes it gets deferred to a later time.
有时这需要花费很长时间,有时会延迟到以后的时间。 If it is made, you should be able to find it on disk somewhere.
如果它是,你应该能够在磁盘上的某个地方找到它。
Make sure that the Log Reader is running on the Publisher, if this is Transactional Replication, which I assume it is. 确保日志读取器在发布服务器上运行,如果这是事务复制,我认为它是。
In my situation, it was due to fact that "MSSubscriptions" table on distributor database had nosync_type=1 and status=2. 在我的情况下,这是因为分发器数据库上的“MSSubscriptions”表有nosync_type = 1和status = 2。 Changed above to 0 and 1 respectively.
上面分别改为0和1。
Reinitialized the snapshot again and then distributor agent started picking up these changes. 再次重新初始化快照,然后分发服务器代理开始接收这些更改。
我只是再次重新初始化快照(新快照,不要重复使用旧快照)然后分销商代理开始接收这些更改。
For me it was just matter of giving the Log-Reader and Distribution service accounts DB_Owner access to the publishing database. 对我来说,只需要让日志读取器和分发服务帐户DB_Owner访问发布数据库。 I'm not sure if they were both required, but it was an easy fix.
我不确定它们是否都是必需的,但它很容易解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.