Резервная копия заключительного фрагмента журнала перед восстановлением (NORECOVERY / NO_TRUNCATE)
SQL ServerВосстановлениеКоманда
-- A) Healthy DB: back up the tail and put the DB into RESTORING (no new writes):
BACKUP LOG [Musteri]
TO DISK = N'D:\Backup\Musteri_tail.trn'
WITH NORECOVERY, CHECKSUM, INIT;
-- B) Damaged DB / data file lost, log file intact:
-- BACKUP LOG [Musteri]
-- TO DISK = N'D:\Backup\Musteri_tail_damaged.trn'
-- WITH NO_TRUNCATE, CONTINUE_AFTER_ERROR, INIT;
SELECT name, state_desc FROM sys.databases WHERE name = N'Musteri';Что делает
Копирует часть журнала, записанную после последней резервной копии журнала (заключительный фрагмент), чтобы цепочка восстановления дошла до момента сбоя и последние минуты транзакций не были потеряны.
Когда использовать
Перед восстановлением поверх той же базы, при отказе диска с файлами данных или при финальном переключении миграции.
Внимание
NORECOVERY переводит базу в RESTORING и прекращает доступ пользователей; не выполните это на не той базе. Восстановление WITH REPLACE без копии заключительного фрагмента журнала окончательно отбрасывает транзакции после последней копии журнала. Копия, сделанная с NO_TRUNCATE, может содержать неполные метаданные; после восстановления выполните DBCC CHECKDB. В модели SIMPLE копия заключительного фрагмента журнала невозможна.