How to: Apply a Transaction Log Backup (Transact-SQL)

Aby zastosować dziennik transakcji kopia zapasowa dziennika bazy danych, poniżej muszą być spełnione:

  • Przed utworzeniem najnowszej kopia zapasowa bazy danych pełnych ani różnicowych, bazy danych musi mieć zostały z model pełnego odzyskiwanie lub modelu odzyskiwanie rejestrowane zbiorczej.

  • Sekwencja przywracanie musi określono WITH NORECOVERY podczas przywracanie wcześniejszych kopii zapasowych.

  • Kopie zapasowe dziennika muszą być stosowane w kolejności, w jakiej zostały utworzone, bez żadnych przerw w łańcuchu dziennika.Z wyjątkiem dla ostatniej kopia zapasowa dziennika dziennika należy użyć WITH NORECOVERY w następujący sposób:

    RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
    
  • W przypadku stosowania ostatniej kopia zapasowa dziennika dziennika, można wykonać jedną z następujących czynności:

    • odzyskać bazy danych w ramach ostatniego wyciągu dziennik kopia zapasowa:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;
      GO
      
    • Czekaj, aby odzyskać bazy danych za pomocą oddzielnych instrukcja przywracanie DATABASE:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; 
      RESTORE DATABASE <database_name> WITH RECOVERY;
      GO
      

      Oczekiwanie na odzyskanie bazy danych daje możliwość sprawdzenia, czy zostały przywrócone wszystkich kopii zapasowych dziennika konieczne.Ta metoda jest często podczas wykonywania operacji przywracanie punktu w czasie.

Important noteImportant Note:

Firma Microsoft zaleca, aby zawsze jawnie określić albo WITH NO odzyskiwanie lub WITH odzyskiwanie w każdej instrukcja przywracanie wyeliminować niejednoznaczności.Jest to szczególnie ważne podczas pisania skryptów.

Aby zastosować kopia zapasowa dziennik transakcji

  1. Wykonać instrukcję przywracanie dziennik, aby zastosować kopia zapasowa dziennik transakcji, określając:

    • Nazwa bazy danych, do którego mają być stosowane dziennik transakcji.

    • Urządzenie kopii zapasowej kopia zapasowa dziennik transakcji będzie można przywrócić.

    • Klauzula NORECOVERY.

    Podstawowa składnia tej instrukcja jest następująca:

    przywracanie DZIENNIK nazwa_bazy_danych FROM < backup_device > NORECOVERY WITH.

    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 dziennik transakcji, należy zastosować.

  3. Po przywróceniu ostatniej kopia zapasowa z kolei przywracanie, aby odzyskać bazy danych użyć następującej instrukcja:

    PRZYWRACANIE nazwa_bazy_danych WITH przywrócenia

    Important noteImportant Note:

    W przypadku tworzenia lustrzana baza danych, pomiń krok odzyskiwanie.lustrzana baza danych musi pozostać w stanie RESTORING.

Example

Domyślnie AdventureWorks Baza danych używa proste model odzyskiwanie. W poniższych przykładach wymagają modyfikowania bazy danych do model pełnego odzyskiwanie, należy użyć w następujący sposób:

ALTER DATABASE AdventureWorks SET RECOVERY FULL

A.Stosowanie kopia zapasowa dziennik transakcji pojedynczej

W poniższym przykładzie jest uruchamiany przy przywracaniu AdventureWorks bazy danych za pomocą wykonać pełną kopię zapasową bazy danych znajdującego się na urządzeniu kopia zapasowa o nazwie AdventureWorks_1. W przykładzie są następnie stosowane znajdującego się kopia zapasowa dziennik transakcji pierwszy na urządzenie kopii zapasowej o nazwie AdventureWorks_log. Na końcu przykładu odzyskuje bazy danych.

RESTORE DATABASE AdventureWorks
   FROM AdventureWorks_1
   WITH NORECOVERY
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorks_log
   WITH FILE = 1,
   WITH NORECOVERY
GO
RESTORE DATABASE AdventureWorks
   WITH RECOVERY
GO

B.Stosowanie wielu kopie zapasowe dziennik transakcji

W poniższym przykładzie jest uruchamiany przy przywracaniu AdventureWorks bazy danych za pomocą wykonać pełną kopię zapasową bazy danych znajdującego się na urządzeniu kopia zapasowa o nazwie AdventureWorks_1. W przykładzie następnie stosuje, jeden po drugim, kopie zapasowe dziennik transakcji na trzech pierwszych znajdujące się na urządzenie kopia zapasowa o nazwie AdventureWorks_log. Na końcu przykładu odzyskuje bazy danych.

RESTORE DATABASE AdventureWorks
   FROM AdventureWorks_1
   WITH NORECOVERY
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorks_log
   WITH FILE = 1,
   NORECOVERY
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorks_log
   WITH FILE = 2,
   WITH NORECOVERY
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorks_log
   WITH FILE = 3,
   WITH NORECOVERY
GO
RESTORE DATABASE AdventureWorks
   WITH RECOVERY
GO