Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MSSQL_ERROR_9015 1С:Предприятие и СУБД

MSSQL Error 9015: An error occurred while scanning log records for replication

Обновлено: 25.08.2026 · Официальная документация ↗
  • Агент чтения журнала (Log Reader Agent) падает с ошибкой Error 9015: An error occurred while scanning log records for replication in database.
  • Журнал транзакций (LDF) базы 1С / СУБД бесконечно разрастается, а столбец log_reuse_wait_desc в sys.databases показывает значение REPLICATION или CDC.
  • Команда DBCC SHRINKFILE не освобождает дисковое пространство журнала.
  • Остановка процессов выгрузки данных и репликации между филиалами и центральной базой.

1. Анализ причины удержания журнала транзакций

SELECT name, log_reuse_wait, log_reuse_wait_desc 
FROM sys.databases 
WHERE name = 'upp_production';

DBCC OPENTRAN('upp_production');
EXEC sp_replshowcmds;

2. Проверка целостности метаданных репликации и LSN

USE upp_production;
GO
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1;

Команда sp_repldone с параметром @reset = 1 сбрасывает указатель ожидающих репликации транзакций и помечает все распределенные транзакции как прочитанные.

3. Очистка контекста CDC (если включен сбор изменений)

EXEC sys.sp_cdc_stop_job @job_type = N'capture';
EXEC sys.sp_cdc_start_job @job_type = N'capture';

4. Принудительное усечение и сжатие журнала

BACKUP LOG upp_production TO DISK = 'NUL';
DBCC SHRINKFILE (upp_production_log, 2048);

5. Переинициализация подписки репликации (при повреждении LSN)

EXEC sp_refreshsubscriptions @publication = 'Pub_1C_Data';
💡 Практика специалистов: В высоконагруженных конфигурациях 1С:Предприятие (ERP, КА) с включенным CDC или транзакционной репликацией ошибка 9015 часто коррелирует с повреждением цепочки VLF (Virtual Log Files). Всегда проверяйте вывод DBCC LOGINFO перед принудительным сбросом маркеров.

Частые вопросы (FAQ)

Почему ошибка 9015 возникает в базах 1С, где репликация не настраивалась явно?

Ошибка часто возникает, если на базе ранее тестировался функционал Change Data Capture (CDC) или был включен Transactional Replication, после чего публикацию удалили некорректно, оставив внутренние системные флаги репликации активными в sys.databases.

Безопасно ли выполнять sp_repldone с параметром @reset = 1?

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

Как предотвратить повторное разрастание LDF при ошибке 9015?

Необходимо настроить регулярный мониторинг счетчика Log Bytes Flushed/sec и проверять статус работы агента SQL Server Agent, отвечающего за шаг чтения лога репликации (Log Reader Agent).

Поможет ли перевод базы в режим Simple Recovery Model?

Перевод в Simple снимет ожидание транзакционного лога, но автоматически отключит и сломает всю транзакционную репликацию. Если репликация критически необходима, нужно сохранять Full и сбрасывать LSN через sp_repldone.

Полезные материалы
Рекомендуем