Middle
14
Как работает восстановление базы данных из full + differential + transaction log backup?
Companies where asked
Интехкард
Answer from AI
sobes.tech AI
Восстановление базы данных из полного (full), дифференциального (differential) и журнала транзакций (transaction log) бэкапов происходит в несколько этапов:
- Восстанавливается последний полный бэкап — это базовое состояние базы.
- Затем применяется последний дифференциальный бэкап, который содержит изменения с момента полного бэкапа.
- После этого последовательно применяются все журналы транзакций, сделанные после дифференциального бэкапа, чтобы довести базу до нужного состояния на момент последнего лога.
Важно при восстановлении использовать опцию NORECOVERY для промежуточных шагов, чтобы база оставалась в состоянии восстановления и принимала последующие бэкапы, и только после применения всех — выполнить RECOVERY.
Пример команд:
RESTORE DATABASE MyDB FROM DISK = 'full.bak' WITH NORECOVERY;
RESTORE DATABASE MyDB FROM DISK = 'diff.bak' WITH NORECOVERY;
RESTORE LOG MyDB FROM DISK = 'log1.trn' WITH NORECOVERY;
RESTORE LOG MyDB FROM DISK = 'log2.trn' WITH RECOVERY;