Performing a Complete Database Restore (Full Recovery Model)

W operacji przywracanie pełną bazy danych celem jest przywrócenie całej bazy danych.W czasie trwania przywracanie całej bazy danych jest w trybie offline.Przed dowolnej części bazy danych może przejść w tryb online, wszystkie dane zostają odzyskane do punktu zgodne są wszystkie części bazy danych w tym samym miejscu czas i istnieją nie niezakończone transakcje.

W modelu odzyskiwanie Pełny do określonego miejsca w bazie danych można przywrócić czas.Punkt, w czasie może być najbardziej niedawno dostępny kopia zapasowa, określoną data i czas lub zaznaczonej transakcji.

Security noteSecurity Note:

Zaleca się, należy nie dołączać lub przywrócić baz danych z nieznanych lub niezaufanych źródeł.Te bazy danych może zawierać złośliwy kod, który może być wykonać niezamierzone Transact-SQL Kod lub powodować błędy przez zmodyfikowanie schematu lub struktury fizycznej bazy danych. Aby korzystać z bazy danych z nieznanych lub niepewnych urządzenie źródłowe, uruchamianie DBCC CHECKDB w bazie danych na serwerze nonproduction i również sprawdzić kod, takie jak procedury przechowywane lub inny kod zdefiniowany przez użytkownika w bazie danych.

Przywracanie ukończone bazy danych

Zazwyczaj odzyskiwanie bazy danych w celu punkt awarii obejmuje następujące podstawowe kroki:

  1. Kopie zapasowe dziennik transakcji aktywnej (zwane także zakończenie dziennika).Spowoduje to utworzenie ogona-kopia zapasowa dziennika.Jeśli dziennik aktywnej transakcji jest niedostępny, wszystkie transakcje w tej części dziennika zostaną utracone.

    Important noteImportant Note:

    W obszarze rejestrowane zbiorczej model odzyskiwanie, wykonywanie kopii zapasowych wszystkich dziennik, który zawiera rejestrowane zbiorczej operacji wymaga dostępu do wszystkich plików danych w bazie danych.Jeśli nie można uzyskać dostępu do plików danych, dziennik transakcji nie można wykonać kopii zapasowej.W takim przypadek należy ręcznie wykonać ponownie wszystkie zmiany wprowadzone od momentu ostatniego dziennika kopia zapasowa dziennika.

    Aby uzyskać więcej informacji zobacz Tail-Log Backups.

  2. Przywrócenie najnowszej kopia zapasowa pełnego bazy danych bez odzyskiwanie bazy danych (przywracanie DATABASE database_name Z NORECOVERY).

  3. Jeśli istnieje różnicowe kopie zapasowe, przywracanie najnowszego bez odzyskiwanie bazy danych (RESTORE DATABASE database_name Z differential_backup_device Z NORECOVERY).

  4. Poczynając od utworzony po wykonaniu kopii zapasowej, po prostu przywrócić kopia zapasowa dziennik transakcji pierwszego przywrócić w dziennikach w sekwencji z NORECOVERY.

  5. odzyskać bazy danych (przywracanie DATABASE database_name Z ODZYSKIWANIEM). Alternatywnie w tym kroku można łączyć z przywrócenie ostatniej kopia zapasowa dziennika dziennika.

  6. Zazwyczaj można odzyskać przywracania pełną bazy danych do punktu czas lub oznaczona transakcja w kopia zapasowa dziennika dziennika.Jednak w modelu odzyskiwanie rejestrowane zbiorczej, jeśli kopia zapasowa dziennika zawiera zmiany rejestrowane masowych, punktu w czasie odzyskiwanie nie jest możliwe.Aby uzyskać więcej informacji zobaczRestoring a Database to a Point Within a Backup.

Na poniższej ilustracji przedstawiono tego procesu.Po awarii (1), a kopia zapasowa końcowego fragmentu dziennika jest tworzony (2).Następnie baza danych zostanie przywrócona do punkt awarii.Obejmuje to przywracanie kopia zapasowa dziennika bazy danych, kolejne różnicowa kopia zapasowa i każdej kopia zapasowa dziennika dziennika po różnicowa kopia zapasowa, łącznie z kopia zapasowa końcowego fragmentu dziennika.

Complete database restore to the time of a failure

Podczas całkowicie przywracanie bazy danych, należy używać sekwencji pojedynczego przywracanie.W poniższym przykładzie pokazano scenariusz, w którym baza danych zostanie przywrócony punkt awarii przywrócić opcje krytycznych w sekwencja przywracanie pełną bazy danych.Sekwencja przywracanie składa się z jednego lub kilku operacji przywracanie przenoszenia danych za pośrednictwem jednego lub większej liczby fazy przywracanie.Opis składni i szczegółowe informacje, które nie są odpowiednie do tego celu są pomijane.

Baza danych jest przywracany i jej do przodu.Różnicowa bazy danych umożliwia skrócenie czas do przodu rolki.Ta sekwencja przywracanie ma na celu wyeliminowanie utraty pracy; kopia zapasowa dziennika dziennika ogona ostatniej kopia zapasowa dziennika zostanie przywrócona.

Podstawowe PRZYWRACANIE składnia sekwencja przywracania:

  1. PRZYWRACANIE BAZY DANYCH bazy danych FROM full database backup Z NORECOVERY;

  2. PRZYWRACANIE BAZY DANYCH bazy danych FROM full_differential_backup Z NORECOVERY;

  3. przywracanie DZIENNIK bazy danych FROM log_backup WITH NORECOVERY;

    Powtórz ten krok przywracanie dziennika dla każdej dodatkowej kopia zapasowa dziennika.

  4. PRZYWRACANIE BAZY DANYCH bazy danych WITH przywrócenia;

Przykład

W poniższym przykładzie AdventureWorks Przykładowa baza danych została ustawiona za pomocą pełnego model odzyskiwanie przed baza danych została wykonana kopia zapasowa. W przykładzie zostanie utworzony ogona-kopia zapasowa dziennika z AdventureWorks Baza danych. Następnie w przykładzie przywraca programu wcześniej pełną kopię zapasową bazy danych i kopia zapasowa dziennika, a następnie w przykładzie przywrócenie kopia zapasowa końcowego fragmentu dziennika.W przykładzie odzyskuje bazy danych w oddzielnych, końcowego kroku.

Uwaga

W tym przykładzie użyto kopia zapasowa dziennika bazy danych i kopia zapasowa dziennika utworzonego w „ kopie zapasowe bazy danych korzystanie w pełni model odzyskiwanie "sekcja w Full Database Backups.

W przykładzie rozpoczyna się od ZMIENIANIE BAZY DANYCH Instrukcja ustawiające modelu odzyskiwanieFULL.

USE master;
--Create tail-log backup.
BACKUP LOG AdventureWorks 
TO DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'  
   WITH NORECOVERY; 
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak' 
  WITH FILE=1, 
    NORECOVERY;

--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak' 
  WITH FILE=2, 
    NORECOVERY;

--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
  WITH FILE=3, 
    NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks WITH RECOVERY;
GO

Odzyskiwanie punktu błędu

Aby przywrócić wykonać pełną kopię zapasową bazy danych

Important noteImportant Note:

Gdy użytkownik przywracanie bazy danych z kopia zapasowa na wystąpienie innego serwera, zobacz Copying Databases with Backup and Restore i Managing Metadata When Making a Database Available on Another Server Instance.

Aby przywrócić różnicowe bazy danych z kopia zapasowa

Aby przywracanie kopia zapasowa dziennik transakcji

Po przywróceniu programu Kopia zapasowa danych lub kopii zapasowych, należy przywrócić wszystkie później kopie zapasowe dziennik transakcji, a następnie odzyskać bazy danych.

Przywracanie kopia zapasowa za pomocą obiektów SMO (SQL Server Management Objects)

  • SqlRestore(Server)

Odzyskiwanie do punktu w czas

W model pełnego odzyskiwanie bazy danych można przywrócić do określonego punktu w czasie w kopia zapasowa dziennika dziennika.Punkt, w czasie może być określoną data i czas, oznaczona transakcja lub numer sekwencyjny dziennika (LSN).Aby uzyskać więcej informacji zobaczRestoring a Database to a Point Within a Backup.

Obsługę kopii zapasowych z starszych wersjach programu SQL Server

W SQL Server 2008, to możesz przywracanie kopia zapasowa bazy danych, który został utworzony za pomocą SQL Server 2000, SQL Server 2005, lub SQL Server 2008. Jednakże kopie zapasowe wzorzec, Model and msdb zostały utworzone przy użyciu SQL Server 2000 lub SQL Server 2005 Nie można przywrócić przez SQL Server 2008. Ponadto SQL Server 2008 Nie można przywrócić kopie zapasowe w dowolnej starszej wersja programu SQL Server.

SQL Server 2008 wykorzystuje inną ścieżka domyślną niż wcześniejsze wersje.W związku z tym aby przywrócić bazę danych, który został utworzony w lokalizacji domyślnej: SQL Server 2000 lub SQL Server 2005 kopie zapasowe, trzeba użyć opcji MOVE. Aby uzyskać informacje na temat nowej ścieżka domyślnej zobacz File Locations for Default and Named Instances of SQL Server.

Uwaga

Aby uzyskać informacje dotyczące sposobu uaktualniania bazy danych, który został utworzony za pomocą SQL Server w wersja 7.0 lub starszym do SQL Server 2005, zobacz Copying Databases from SQL Server 7.0 or Earlier.

Historia zmian

Microsoft Learning

W sekcji "Przywracanie a wykonano baza_danych" poprawiona składnia Przywracanie różnicowa kopia zapasowa w kroku 3.

W sekcji "Przywracanie a wykonano baza_danych" poprawiona przykładowy kod do tworzenia kopia zapasowa końcowego fragmentu dziennika.