How to: Restore to the Point of Failure (Transact-SQL)

W tym temacie wyjaśniono, jak przywracanie punktem awarii.Temat ma zastosowanie tylko w przypadku baz danych, które są przy użyciu modelu odzyskiwanie Pełny lub jest rejestrowane zbiorczej.

Aby przywrócić punkt awarii

  1. Wykonaj kopię zapasową ogona w dzienniku, uruchamiając następujące podstawowe kopia zapasowa instrukcja:

    BACKUP LOG <database_name>TO <backup_device> 
       WITH NORECOVERY, NO_TRUNCATE;
    
  2. Przywracanie pełnego bazy danych kopia zapasowa, uruchamiając następujące podstawowe PRZYWRACANIE BAZY DANYCH instrukcja:

    RESTORE DATABASE <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  3. Opcjonalnie można przywrócić bazę danych różnicowe kopia zapasowa, uruchamiając następującą instrukcję przywracanie DATABASE podstawowe:

    RESTORE DATABASE <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  4. Zastosowanie każdego dziennik transakcji, włącznie z częścią końcową-kopia zapasowa dziennika utworzonego w kroku 1, określając WITH NORECOVERY w instrukcja przywracanie dziennik:

    RESTORE LOG <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  5. odzyskać bazy danych, uruchamiając następującą instrukcję przywracanie DATABASE:

    RESTORE DATABASE <database_name> 
       WITH RECOVERY;
    

Example

Przed uruchomieniem w przykładzie, należy wykonać następujące wymagania:

  1. Wartość domyślna model odzyskiwanie z AdventureWorks Baza danych jest proste model odzyskiwanie. Ponieważ w tym modelu odzyskiwanie nie obsługuje Przywracanie do punktu awarii zestaw AdventureWorks Aby użyć model pełnego odzyskiwanie, uruchamiając następujące ZMIENIANIE BAZY DANYCH instrukcja:

    USE master;
    GO
    ALTER DATABASE AdventureWorks SET RECOVERY FULL;
    
  2. Utwórz pełną bazy danych, z tyłu bazy danych za pomocą następującej instrukcja kopia zapasowa:

    BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks_Data.bck';
    
  3. Procedura tworzenia kopia zapasowa dziennika:

    BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks_Log.bck';
    

W poniższym przykładzie przywraca kopie zapasowe, które zostały utworzone wcześniej, po utworzeniu ogona-kopia zapasowa dziennika z AdventureWorks Baza danych. (W tym kroku założono, czy dysk dziennika jest dostępny.)

Po pierwsze, w przykładzie zostanie utworzony dziennik ogona kopia zapasowa bazy danych, który przechwytuje aktywnego dziennika i pozostawi bazę danych w stanie przywracanie.Następnie w przykładzie przywraca kopię zapasową bazy danych, stosuje się rutynowe dziennika kopia zapasowa dziennika utworzony wcześniej i zastosowanie kopia zapasowa końcowego fragmentu dziennika.Na końcu przykładu odzyskuje bazy danych w osobnym kroku.

Uwaga

To zachowanie domyślne jest do odzyskania bazy danych jako część instrukcja, która przywraca ostatni kopia zapasowa.

/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks
   TO DISK = 'C:\AdventureWorks_Log.bck'
   WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks
   FROM DISK = 'C:\AdventureWorks_Data.bck'
   WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks
   FROM DISK = 'C:\AdventureWorks_Log.bck'
   WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks
   FROM  DISK = 'C:\AdventureWorks_Log.bck'
   WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks
   WITH RECOVERY;
GO