2009-06-19 1 views
2

У меня возникли проблемы со сбоями в работе SQL Server (2005). Когда я запускаю клиента (SQL Server Express 2005), я получаю следующую ошибку: «Совместный снимок для публикации« xx »недоступен, потому что он не был полностью сгенерирован или Log Reader A«Совместный снимок для публикации 'xx' недоступен, поскольку он не был полностью сгенерирован или Log Reader A

Ошибка обрезана ,

Я пробовал: - Удаление подписки - Удаление публикации и начиная снова - Перезагружаем сервер и клиент. - Сжатие базы данных

Все без изменений.

Я знаю, что клиент может увидеть сетевую папку \ имя_сервера \ repldata который имеет вложенную UNC с снимку в нем (а папки глубже с кодировкой pubName и DATETIME, как и ожидалось)

Любые советы или поездки будет действительно оценили

+0

Можете ли вы определить, какой тип репликации вы используете, моментальный снимок/транзакционный/слияние? Вы используете push или pull подписки? –

ответ

0
  1. была сформирована снимок для публикации? Иногда это занимает некоторое время, и иногда оно откладывается на более поздний срок. Если он сделан, вы можете найти его на диске где-нибудь.

  2. Убедитесь, что Log Reader работает в Publisher, если это транзакционная репликация, которую я предполагаю.

8

Но вот решение: http://social.msdn.microsoft.com/forums/en-US/sqlreplication/thread/baf99181-2fe1-4e6b-ba45-5d1d08103550/

1) удалить подписку & все публикации, не работает

2) запустить выбор на этих таблицах, чтобы увидеть, если есть еще строки для базы данных публикаций:

select * from msdb..MSdistpublishers 
select * from distribution..MSpublisher_databases 
select * from distribution..MSpublications 
select * from distribution..MSarticles 
select * from distribution..MSsubscriptions 

3) теперь удалить все строки, которые все еще находятся в пабе lisher_db»от только что удаленных баз данных издателя:

delete from distribution..MSarticles where publisher_db = '<NameOfDatabase>' 
delete from distribution..MSsubscriptions where publisher_db = '<NameOfDatabase>' 

4) пересоздать публикацию & абонент как обычный

Это должно сделать трюк :-)

+0

Не нужно извиняться за поздний ответ - такие вклады более чем приветствуются! –

0

В моей ситуации это было из-за того, что таблица «MSSubscriptions» в базе данных дистрибьютора имела nosync_type = 1 и status = 2. Изменено выше до 0 и 1 соответственно.

Повторно инициализировал моментальный снимок, а затем агент-дистрибьютор начал собирать эти изменения.

0

Я только что повторно инициализировал снимок (новый снимок, не переустанавливаю старый), а затем агент-дистрибьютор начал собирать эти изменения.