Jak Przywracanie do punktu awarii (Transact-SQL)
W tym temacie wyjaśniono sposób przywracanie z punktem awarii.Temat jest odpowiednia tylko dla baz danych, które są przy użyciu modelu odzyskiwanie Pełny lub bulk-logged.
Aby przywracanie do punktu awarii
Wykonywanie kopii zapasowej dziennika ogona, uruchamiając następujące podstawowe kopii zapasowej instrukcja:
BACKUP LOG <database_name>TO <backup_device> WITH NORECOVERY, NO_TRUNCATE;
Przywracanie pełnej kopia zapasowa, uruchamiając następujące podstawowe PRZYWRÓĆ bazę danych instrukcja:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Opcjonalnie można przywrócić z kopii zapasowej różnicowa bazy danych, uruchamiając następujące podstawowe RESTORE DATABASE instrukcja:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Zastosowanie każdego dziennika transakcji w tym kopia zapasowa końcowego fragmentu dziennika utworzonego w kroku 1, określając Z NORECOVERY w instrukcja PRZYWRÓCIĆ dziennika:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
Odzyskania bazy, uruchamiając następujące przywracanie bazy danych instrukcja:
RESTORE DATABASE <database_name> WITH RECOVERY;
Przykład
Przed uruchomieniem przykładu, należy wykonać następujące preparaty:
Domyślny model odzyskiwanie z AdventureWorks2008R2 Baza danych jest model odzyskiwanie prostego.Ponieważ w tym modelu odzyskiwanie nie obsługuje przywrócić punktu awarii, zestaw AdventureWorks2008R2 do korzystania z model odzyskiwanie pełnego, uruchamiając następujące ALTER DATABASE instrukcja:
USE master; GO ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL;
Utwórz pełną bazę danych z tyłu bazy danych przy użyciu następującej kopii zapasowej instrukcja:
BACKUP DATABASE AdventureWork2008R2s TO DISK = 'C:\AdventureWorks2008R2_Data.bck';
Tworzenie kopia zapasowa dziennika rutynowych:
BACKUP LOG AdventureWorks2008R2 TO DISK = 'C:\AdventureWorks2008R2_Log.bck';
Poniższy przykład przywraca kopie zapasowe utworzone wcześniej, po utworzeniu kopia zapasowa końcowego fragmentu dziennika z AdventureWorks2008R2 bazy danych.(W tym kroku założono możliwy dysk dziennika).
Przykład tworzy najpierw, kopia zapasowa końcowego fragmentu dziennika bazy danych, który przechwytuje aktywnego dziennika i pozostawia w stanie Przywracanie bazy danych.Następnie przykład przywraca kopię zapasową bazy danych, stosuje się rutynowe dziennika kopia zapasowa utworzony wcześniej i stosuje się kopia zapasowa końcowego fragmentu dziennika.Wreszcie przykład odzyskuje bazy danych w osobnym kroku.
Ostrzeżenie
Zachowaniem domyślnym jest odzyskać jako część instrukcja, która przywraca ostatecznej kopia zapasowa bazy danych.
/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks2008R2
TO DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Data.bck'
WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks2008R2
WITH RECOVERY;
GO
Zobacz także