Cannot insert duplicate key row in object 'dbo.MSrepl_transactions' with unique index ...

Andrey K
Дата: 30.01.2013 16:17:12
Cannot insert duplicate key row in object 'dbo.MSrepl_transactions' with unique index 'ucMSrepl_transactions'. The duplicate key value is (1, 0x000bce2600026ee20156).Cannot insert duplicate key row in object 'dbo.MSrepl_commands' with unique index 'ucMSrepl_commands'. The duplicate key value is (1, 0x000bce2600026ee20156, 1).Cannot insert duplicate key row in object 'dbo.MSrepl_commands' with unique index 'ucMSrepl_commands'. The duplicate key value is (1, 0x000bce2600026ee20156, 2).

Кто сталкивался с такой проблемой помогите.
Андрей Г.
Дата: 30.01.2013 16:35:01
pkarklin,
Все убить и создать заново - это не решение проблемы
Andrey K
Дата: 30.01.2013 16:44:55
http://www.sqlservercentral.com/Forums/Topic992144-291-1.aspx

The steps are:
a) Identify the transaction that is trying to insert an existing xact_seqno,publisher_database_id record into the msrepl_transactions table - and the transaction that is trying to insert an existing xact_seqno,command_id,publisher_database_id record into the msrepl_commands table
b) Dummy update the xact_seqno to ensure that log reader agent doesn't pick them up (this is the vague part that I had in the script that I cannot locate)
c) skip this transaction and continue processing other data
d) try to manually synch the data in the transaction that was skipped


Скипнуть тоже не помогло насколько я понял.
Проблема актуальна.
SOS!
Crimean
Дата: 30.01.2013 17:20:25
Andrey K,

что значит не помогло? не смогли в базе дистрибуции найти нужную запись?
или не смогли ей поменять параметры / удалить ее? чтобы логридер дальше пошел?
Андрей Г.
Дата: 30.01.2013 17:40:58
я отвечу за него
удаление в БД распределителя ничего не дало...битая транзакция восстанавливается в том же виде
также попробовали пропускать транзакции
http://blogs.msdn.com/b/repltalk/archive/2011/08/23/using-sp-repldone-to-skip-a-transaction.aspx
к сожалению, делали все по шагам и все равно весь лог транзакций пометился как реплицированный (все команды)
Crimean
Дата: 30.01.2013 17:46:22
Андрей Г.
весь лог транзакций пометился как реплицированный (все команды)


наверное, все же, как НЕ-реплицированный, раз старые транзакции по-новой пошли?
Андрей Г.
Дата: 30.01.2013 17:48:43
Crimean,

нет, я не ошибся....все команды пропустились, если так будет понятнее :-) т.е. они не попали на распределитель, а оттуда на подписчики
Дмитрий Басовский
Дата: 30.01.2013 17:56:33
Пробовали даже такую экзотику, как отключение уникальных индексов. Записи по этой транзакции начали циклически добавляться в таблицы MSrepl_commands и MSrepl_transactions. Остановили процесс и вернули все на место (как было)... На момент удаления добавленных дублей за пару минут работы добавилось порядка 300 тыс. записей. Так что это цикл агента чтения лога транзакций.
Crimean
Дата: 30.01.2013 18:15:49
жесть. переподписать, сказав что схема и данные уже есть
дельту данных долить после...
агентов дистрибуции загнать в режим игнора ошибок
это если по-быстрому
ну или переподписать с применением частичного снапшота, но тут уже придется руками (а то и ушами) шевелить