MSSQL Error 14151: Replication-Transaction-Log Reader Subsystem agent failed
- Задание SQL Server Agent
*-LogReader-*падает с кодом возвратаError 14151: Replication-Replication Transaction-Log Reader Subsystem: agent %ls failed. - В Replication Monitor статус публикации горит красным крестом с описанием сбоя агента.
- Изменения из опубликованной базы 1С перестают поступать к подписчикам.
- Журнал транзакций переполняется из-за невозможности продвинуть LSN вперед.
1. Получение детальной ошибки через Replication Monitor или T-SQL
USE distribution;
GO
SELECT TOP 20 time, error_text, error_code
FROM msrepl_errors
ORDER BY id DESC;2. Трассировка сбойной команды с помощью sp_replshowcmds
USE your_published_1c_db;
GO
-- Просмотр первой необработанной транзакции в журнале
EXEC sp_replshowcmds;3. Пропуск сбойной команды или сброс очереди
-- Пропуск одной транзакции при сбое схемы данных
-- На шаге задания Log Reader добавьте параметр запуска: -SkipErrors 14151:20598
-- Либо полный сброс транзакционного указателя:
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1;4. Проверка прав учетной записи SQL Server Agent
Убедитесь, что учетная запись агента репликации имеет права db_owner в базе публикации и базе distribution, а также входит в список доступа к публикации (PAL — Publication Access List).
5. Перезапуск агента чтения лога
EXEC msdb.dbo.sp_start_job @job_name = 'SERVER-DB-Publication-1'; Частые вопросы (FAQ)
Какая самая частая причина ошибки 14151 в 1С?
Несоответствие схемы данных: например, реструктуризация таблицы в 1С без обновления статьи публикации репликации (DDL-изменения привели к ошибке десериализации бинарного потока лога).
Как добавить параметр -SkipErrors в Log Reader Agent?
Откройте свойства задания SQL Server Agent -> Steps -> Run Agent -> в конец строки команды добавьте -SkipErrors <код_ошибки>.
Помогает ли перезапуск службы SQL Server?
Нет, перезапуск службы не очищает сбойный LSN в журнале транзакций. Проблема устраняется только сбросом sp_repldone или пропуском ошибки.
Как пересоздать список доступа к публикации (PAL)?
Используйте системную хранимую процедуру EXEC sp_addpublication_access @publication = 'PubName', @login = 'domain\login'.