Middle
Как работи възстановяването на база данни от пълно + диференциално + транзакционно лог архив?
sobes.tech AI
Отговор от 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;