2013-02-19 3 views
1

Я новичок в репликации SQL Server и внес некоторые изменения в существующую реплицированную среду. Это SQL Server 2005 SP3 с репликацией транзакций.
Я создал новую таблицу, добавил столбцы в существующую таблицу и добавил некоторые SP. Я сделал все это в базе данных издателя. Я создал новый снимок и повторно инициализировал подписки. Новая таблица и новые столбцы были реплицированы на новый сервер, и данные были синхронизированы успешно, но всего один раз.Репликация SQL Server - Дублирующие агенты подписки?

Сразу после этого монитор репликации сообщает об ошибке. На вкладке «Дистрибьютор на подписку» я получаю сообщение о том, что «Подзапрос возвратил более 1 значения». Командная попытка ...

delete from MSsubscription_articlecolumns 
    where artid=89 and 
      agent_id = (
       select id from MSsubscription_agents 
        where update_mode > 0 and 
         UPPER(publisher) = UPPER('xxxx') and 
         publisher_db = N'xxxx' and 
         publication = N'xxxxx' 
      ) end 

Зачем нужны дублирующие агенты подписки? Как это исправить? Спасибо за помощь.

ответ

1

Мне удалось решить проблему, вручную отредактировав данные в таблице MSsubscription_agents. Было 2 записи с тем же издателем, db и именами публикаций. Вместо того, чтобы удалять одну из записей, я изменил update_mode на более старую запись на 0, которая отфильтровала ее из инструкции проблемы в исходном вопросе. После этого процесс репликации смог пройти мимо этого утверждения и работать правильно. Благодарю.

Смежные вопросы