Jak Zastosowanie kopii zapasowej dziennika transakcji (Transact-SQL)
Aby zastosować transakcji kopia zapasowa dziennika do bazy danych, muszą być spełnione następujące:
Przed utworzeniem najnowszej kopia zapasowa bazy danych pełny lub różnicowy bazy danych musi był używany pełny model odzyskiwanie lub bulk-logged model odzyskiwanie.
sekwencja przywracanie Należy wcześniej Z NORECOVERY przy przywracaniu wcześniejszych kopii zapasowych.
Kopie zapasowe dziennika muszą być stosowane w kolejności, w jakiej zostały utworzone, bez żadnych przerw w łańcuch dzienników.Z wyjątkiem do ostatniej kopia zapasowa dziennika muszą używać Z NORECOVERY w następujący sposób:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
Stosując ostatniej kopia zapasowa dziennika, można wykonać następujące czynności:
Odzyskanie bazy danych jako część dziennika ostatniej kopii zapasowej instrukcja:
RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY; GO
Poczekać do odzyskania bazy danych za pomocą oddzielnych RESTORE DATABASE instrukcja:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; RESTORE DATABASE <database_name> WITH RECOVERY; GO
Oczekiwanie na odzyskać bazy danych daje możliwość sprawdzenia, czy zostały przywrócone wszystkie kopie zapasowe dziennika konieczne.Niniejsze podejście jest wskazane często wykonywanych punktu-w-czas przywracanie.
Ważne: |
---|
Zaleca się, że zawsze jawnie określić Z NORECOVERY lub z odzyskiwania w instrukcja co PRZYWRACANIA, aby wyeliminować niejasności.Jest to szczególnie ważne podczas pisania skryptów. |
Aby zastosować kopia zapasowa dziennika transakcji
Wykonywanie PRZYWRACANIA dziennika instrukcja zastosowanie kopia zapasowa dziennika transakcji, określając:
Nazwa bazy danych, które będą stosowane w dzienniku transakcji.
urządzenie kopia zapasowa Którego będzie przywrócić kopia zapasowa dziennika transakcji.
Klauzula NORECOVERY.
Podstawowa składnia to instrukcja jest następujący:
Przywracanie dziennika nazwa_bazy_danych od <backup_device> Z NORECOVERY.
Where database_name is the name of database and <backup_device>is the name of the device that contains the log backup being restored.
Powtórz krok 1 dla każdej kopia zapasowa dziennika transakcji, należy zastosować.
Po przywróceniu ostatniej kopia zapasowa w sieci sekwencja przywracanie, odzyskanie bazy danych użyj następującej instrukcja:
Przywracanie nazwa_bazy_danych z odzysku
Ważne: Jeśli tworzysz duplikat bazy danych należy pominąć krok odzyskiwanie.A duplikat bazy danych musi pozostawać w stanie przywracanie.
Przykład
Domyślnie AdventureWorks2008R2 bazy danych używa model odzyskiwanie prostego.Następujące przykłady wymagają modyfikacji bazy danych używać pełnych model odzyskiwanie, jak następuje:
ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL
A.Stosowanie kopia zapasowa dziennika transakcji pojedynczej
W następującym przykładzie uruchomiono przywracając AdventureWorks2008R2 bazy danych przy użyciu pełnej kopia zapasowa, znajdujący się na urządzenie kopia zapasowa o nazwie AdventureWorks2008R2_1.Przykład następnie dotyczy pierwszej kopia zapasowa dziennika transakcji, znajdujący się na urządzenie kopia zapasowa o nazwie AdventureWorks2008R2_log.Wreszcie przykład odzyskuje bazy danych.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2_1
WITH NORECOVERY
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2_log
WITH FILE = 1,
WITH NORECOVERY
GO
RESTORE DATABASE AdventureWorks2008R2
WITH RECOVERY
GO
B.Stosowanie wielu kopii zapasowych dziennika transakcji
W następującym przykładzie uruchomiono przywracając AdventureWorks2008R2 bazy danych przy użyciu pełnej kopia zapasowa, znajdujący się na urządzenie kopia zapasowa o nazwie AdventureWorks2008R2_1.Przykład następnie stosuje, jeden po drugim, znajdujące się na kopie zapasowe dziennika transakcji trzy pierwsze urządzenie kopia zapasowa o nazwie AdventureWorks2008R2_log.Wreszcie przykład odzyskuje bazy danych.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2_1
WITH NORECOVERY
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2_log
WITH FILE = 1,
NORECOVERY
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2_log
WITH FILE = 2,
WITH NORECOVERY
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2_log
WITH FILE = 3,
WITH NORECOVERY
GO
RESTORE DATABASE AdventureWorks2008R2
WITH RECOVERY
GO
Zobacz także