DBAtlas · Атлас эксплуатации баз данных

Резервная копия заключительного фрагмента журнала перед восстановлением (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 копия заключительного фрагмента журнала невозможна.

Открыть в DBAtlas →

Связанные материалы