Ошибки · Решение
SQL Server ошибка 3159: что означает и как исправить
SQL Server защищает изменения в хвосте текущего журнала и не позволяет перезаписать их без tail-log backup либо явно выбранного сценария замены.
Короткий ответ
Ошибка 3159 защищает хвост текущего transaction log от потери при RESTORE. Если изменения нужно сохранить, сделайте tail-log backup; перезапись без него должна быть сознательным решением.
Что означает ошибка
SQL Server защищает изменения в хвосте текущего журнала и не позволяет перезаписать их без tail-log backup либо явно выбранного сценария замены.
Возможные причины
- RESTORE выполняется поверх действующей базы.
- Disaster recovery сценарий не включил tail-log backup перед заменой.
- В текущем log ещё есть изменения, отсутствующие в резервной цепочке.
Что проверить
- Проверьте RPO и согласуйте допустимую потерю данных.
- Определите, доступна ли база достаточно для tail-log backup.
- Оцените, есть ли незарезервированные транзакции, которые нужно сохранить.
Безопасные шаги
- Если данные нужно сохранить — снимите tail-log backup по поддерживаемому сценарию.
- Если целенаправленно отбрасываете хвост журнала, зафиксируйте это решение и только затем используйте overwrite-сценарий.
- После восстановления проверьте конечный LSN и целостность.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если SQL Server 3159 повторяется после проверки указанного состояния, передайте DBA полный текст ошибки, несколько соседних записей SQL Server error log, версию/edition, имя базы и точную команду, на которой возник сбой.
Похожие ошибки
- /errors/sql-server-error-3002/
- /errors/sql-server-error-3013/
- /errors/sql-server-error-3021/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.