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

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

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

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

Защита от случайного запуска базы при восстановлении: WITH NORECOVERY

Обновлено: 26.08.2026 · Официальная документация ↗
  • Случайное выполнение RESTORE DATABASE ... WITH RECOVERY на промежуточном этапе, сделавшее невозможным применение последующих файлов логов (TRN).
  • Ошибка The log in this backup set begins at LSN ... which is too recent to apply to the database.
  • Необходимость перевести базу в режим только для чтения (Read-Only) между этапами наката для проверки данных.

1. Накат полной цепочки бэкапов с опцией WITH NORECOVERY

Все промежуточные бэкапы (Full, Differential, Transaction Log) должны накатываться с параметром WITH NORECOVERY:

-- 1. Восстановление полного бэкапа без завершения транзакционного наката
RESTORE DATABASE [Accounting1C]
FROM DISK = N'D:\Backups\Accounting1C_Full.bak'
WITH NORECOVERY, REPLACE;

-- 2. Восстановление разностного бэкапа
RESTORE DATABASE [Accounting1C]
FROM DISK = N'D:\Backups\Accounting1C_Diff.bak'
WITH NORECOVERY;

-- 3. Накат инкрементальных логов транзакций
RESTORE LOG [Accounting1C]
FROM DISK = N'D:\Backups\Accounting1C_Log_1.trn'
WITH NORECOVERY;

RESTORE LOG [Accounting1C]
FROM DISK = N'D:\Backups\Accounting1C_Log_2.trn'
WITH NORECOVERY;

2. Финализация восстановления (перевод в ONLINE)

Только после успешного наката последнего файла лога выполните финализацию:

-- Перевод базы в нормальный режим ONLINE
RESTORE DATABASE [Accounting1C] WITH RECOVERY;

3. Использование режима WITH STANDBY для инспекции состояния

Если требуется проверить состояние базы на определенный момент времени перед накатом следующего лога:

RESTORE LOG [Accounting1C]
FROM DISK = N'D:\Backups\Accounting1C_Log_3.trn'
WITH STANDBY = N'D:\Backups\RollbackUndoFile.undo';
💡 Практика специалистов: При создании сложных скриптов аварийного восстановления всегда разделяйте фазу наката файлов (всегда NORECOVERY) и отдельную отдельную финальную строчку финализации. Это защитит от случайного исполнения скрипта наполовину.

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

Что физически делает параметр WITH NORECOVERY?

Он выполняет только фазу REDO (накат зафиксированных транзакций), но пропускает фазу UNDO (откат незавершенных транзакций), оставляя базу в состоянии ожидания дополнительных файлов журналов.

Что делать, если база случайно восстановлена WITH RECOVERY раньше времени?

Применить оставшиеся бэкапы журналов станет невозможно из-за выполнения фазы UNDO. Процесс восстановления всей цепочки придется начинать с самого начала (с Full Backup).

Для чего нужен файл UNDO при использовании WITH STANDBY?

В режиме STANDBY незавершенные транзакции временно откатываются, чтобы базу можно было открыть в Read-Only, а информация для их повторного наката сохраняется в UNDO-файл.

Как перевести базу из статуса RESTORING в ONLINE без накатывания новых файлов?

Выполните команду: RESTORE DATABASE [ИмяБазы] WITH RECOVERY;.

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