Настройки 1С для более легкой и удобной работы

Ошибка очистки журнала транзакций базы 1С

Интересный случай с журналом одной клиент-серверной базы на MSSQL. С чего все началось. В один день пользователи не смогли войти в 1С — получили следующую ошибку:

«В данный момент вход в приложение невозможен, попробуйте войти позже
Ошибка СУБД: Microsoft SQL Server Native Client 10.0; The transaction log for database „DBName“ is full.
To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=6, Severity=11, native=9002, line=1».

Как решили

В моменте — подключились к консоли SQL Server Management Studio и увеличили лимит лога транзакций для базы. Это самое простое и быстрое решение, чтобы пользователи смогли открыть базу.

Что подозрительно: для БД установлена простая модель восстановления (Recovery Model: Simple), но очистить журнал не получалось. При команде Shrink File сервер SQL показывал, что доступное место к очистке отсутствует. Хотя файл лога уже достиг 5 Гб и не думал очищаться.

Как исправить данную ошибку

  1. Определяем степень использования лог-файла. Выполняем в консоли SQL команду:
dbcc sqlperf(logspace)

В результате вы увидите список ваших баз с колонками «Log Size (MB)» (размер лога) и «Log Space Used (%)» (какой объем использован).

Для нашей базы Log Space Used был равен 99%. Видим, что лог используется почти целиком.

  1. Делаем еще один запрос и смотрим колонки log_reuse_wait и log_reuse_wait_desc:
select * from sys.databases where name='DBName'

, где ’DBName’ — название вашей базы данных.

И вот какая петрушка: в log_reuse_wait_desc стоит значение REPLICATION, хотя в базе репликации никогда не было. Т. е. сервер не очищает лог, пока не пройдет репликация.

  1. Запускаем принудительное отключение репликации:
use master
exec sp_removedbreplication
@dbname = 'DBName'
GO
  1. Делаем стандартную очистку лога вручную через интерфейс (Tasks — Shrink — Files — Log) или командой Shrink:
DBCC SHRINKFILE (N'DBName_log')

✅ После отключения репликации БД очистка журнала транзакций становится возможной, и его рост прекращается.

__________
Что-то не так с 1С или нужна настройка?
Оставьте заявку или позвоните +7-911-500-10-11 — разберёмся и поможем.

Отправить
Поделиться