Эта ошибка обычно возникает, когда на подписчике не существует определенной записи, а команда обновления или удаления выполняется для той же записи на основном сервере и также реплицируется на подписчике.
Поскольку эта запись не существует на подписчике, репликация выдает ошибку «Row Not Found»
Решение этой ошибки, чтобы репликация вернулась в нормальное рабочее состояние:
Мы можем проверить следующим запросом, был ли запрос у издателя об обновлении или удалении заявления:
USE [distribution]
SELECT *
FROM msrepl_commands
WHERE publisher_database_id = 1
AND command_id = 1
AND xact_seqno = 0x00099979000038D6000100000000
Мы можем получить художественную информацию из запроса выше, который можно передать ниже proc:
EXEC Sp_browsereplcmds
@article_id = 813,
@command_id = 1,
@xact_seqno_start = '0x00099979000038D60001',
@xact_seqno_end = '0x00099979000038D60001',
@publisher_database_id = 1
Выше запрос даст информацию о том, был ли это оператор обновления или оператор удаления.
- В случае удаления заявления
Эта запись может быть непосредственно удалена из объектов msrepl_commands, так что репликация не будет предпринимать попытки повторной попытки записи
DELETE FROM msrepl_commands
WHERE publisher_database_id = 1
AND command_id =1
AND xact_seqno = 0x00099979000038D6000100000000
- В случае заявления об обновлении:
Вам необходимо вставить эту запись вручную из базы данных издателя в базу данных подписчика: