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żna informacjaWaż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

  1. 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.

  2. Powtórz krok 1 dla każdej kopia zapasowa dziennika transakcji, należy zastosować.

  3. 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żna informacjaWaż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