9002: Журнал транзакций базы данных заполнен по причине ...
SQL ServerЧто это значит?
Файл журнала транзакций базы данных заполнен, и новые транзакции не могут быть зарегистрированы. База данных отклоняет запись и может вести себя так, будто она только для чтения.
Почему возникает?
Отсутствие бэкапов журнала в модели восстановления FULL, долго открытая транзакция, отставание репликации/AlwaysOn или невозможность роста журнала (autogrow отключён или диск заполнен). Причину показывает log_reuse_wait_desc.
Как исправить
Проверьте log_reuse_wait_desc в sys.databases. Если это LOG_BACKUP в модели FULL, сделайте бэкап журнала (BACKUP LOG). Если это ACTIVE_TRANSACTION, найдите открытую транзакцию и зафиксируйте/откатите её (DBCC OPENTRAN). Освободите место на диске или исправьте настройку autogrow файла журнала. Если журнал действительно разросся, после бэкапа сожмите его с помощью DBCC SHRINKFILE. Если цепочка журналов не нужна, пересмотрите модель восстановления.
Ещё по этой СУБД
- 8152Строковые или двоичные данные были бы усечены
- 2628Строковые или двоичные данные были бы усечены в таблице, столбце ...; усекаемое значение
- 1222Превышен тайм-аут запроса блокировки
- 1105Не удалось выделить место для объекта в базе данных, поскольку файловая группа заполнена
- 208Недопустимое имя объекта
- 229Отказано в разрешении SELECT/EXECUTE на объект
- 4060Не удаётся открыть базу данных, запрошенную логином. Ошибка входа