Wykonywanie pełne przywracanie bazy danych (modelu odzyskiwania pełny)

pełne przywracanie bazy danych celem jest przywrócenie całej bazy danych.Czas przywracanie całej bazy danych jest w trybie offline.Przed jakiejkolwiek części bazy danych można przejść w tryb online, wszystkie dane jest odzyskiwana spójne punkt, w którym wszystkie części bazy danych są w tym samym punkcie czas i niezakończone transakcje nie istnieje.

W modelu odzyskiwanie bazy danych można przywrócić do określonego punktu w czas.W pkt czas może być najświeższe dostępne kopia zapasowa określonego dnia i czas, lub oznaczona transakcja.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Zaleca się, aby użytkownik nie dołączyć lub przywracanie bazy danych z nieznanych lub niezaufanych źródeł.Te bazy danych może zawierać złośliwy kod, który może wykonać niezamierzone Transact-SQL Kod lub powodować błędy przez zmodyfikowanie schematu lub fizycznych struktura bazy danych.Przed użyciem bazy danych z nieznanych lub niezaufanych źródło, uruchomić dbcc checkdb bazy danych na serwerze Nieprodukcyjne i również sprawdzić kod, takie jak procedury przechowywane lub inny kod zdefiniowany przez użytkownika w bazie danych.

Przywracanie pełnej bazy danych

Zazwyczaj odzyskiwanie bazy danych do punktu awarii obejmuje następujące podstawowe czynności:

  1. Wykonywanie kopii zapasowej dziennika transakcji aktywnej (znany jako ogona dziennika).Tworzy to kopia zapasowa końcowego fragmentu dziennika.Jeśli dziennik aktywnych transakcji jest niedostępny, wszystkie transakcje w tej części dziennika zostaną utracone.

    Ważna informacjaWażne:

    W obszarze bulk-logged model odzyskiwanie, wykonywanie kopii zapasowych wszelkich dziennik zawierający bulk-logged operacji wymaga dostępu do wszystkich plików danych w bazie danych.Jeśli nie można uzyskać dostępu do plików danych, nie zapasowe dziennika transakcji.W takim przypadek należy ręcznie ponowne wykonanie wszystkie zmiany wprowadzone od ostatniego dziennika kopia zapasowa.

    Aby uzyskać więcej informacji, zobacz Kopie zapasowe dziennika ogona.

  2. Przywrócenie najnowszej pełnej kopia zapasowa bez odzyskiwanie bazy danych (PRZYWRÓĆ bazę danych database_name od backup_device Z NORECOVERY).

  3. Jeśli istnieje różnicowych kopii zapasowych, przywracanie najnowszego bez odzyskiwanie bazy danych (PRZYWRÓĆ bazę danych database_name od differential_backup_device Z NORECOVERY).

  4. Począwszy od pierwszej kopia zapasowa dziennika dziennika transakcji, utworzonego po właśnie przywrócona kopia zapasowa, przywracanie dzienniki w sekwencji z NORECOVERY.

  5. Odzyskanie bazy danych (PRZYWRÓĆ bazę danych database_name z odzyskiwania).Alternatywnie w tym kroku można łączyć z przywracania ostatniej kopia zapasowa dziennika.

  6. pełne przywracanie bazy danych można odzyskać zwykle do punktu czas lub oznaczona transakcja w kopia zapasowa dziennika.Jednak w modelu bulk-logged odzyskiwania Jeśli kopia zapasowa zawiera zmiany bulk-logged, pkt-w-czas odzyskiwania nie jest możliwe.Aby uzyskać więcej informacji, zobacz Przywracanie do punktu w kopii zapasowej bazy danych.

Na następującej ilustracji pokazano tego procesu.Po awarii (1), kopia zapasowa końcowego fragmentu dziennika jest tworzony (2).Następnie baza danych zostanie przywrócona do punktu awarii.Obejmuje to przywracanie kopia zapasowa bazy danych, kolejne różnicowej kopia zapasowa i każdej kopia zapasowa podjęte po różnicy kopia zapasowa, łącznie z kopia zapasowa końcowego fragmentu dziennika.

Pełne przywrócenie bazy danych do czasu awarii

Kiedy są całkowicie Przywracanie bazy danych, pojedynczy sekwencja przywracanie powinna być używana.Poniższy przykład przedstawia opcje krytycznych w sekwencja przywracania dla pełne przywracanie bazy danych scenariusz, w którym baza danych zostanie przywrócona do punktu awarii.A sekwencja przywracanie składa się z operacji przywracanie, które przenoszenia danych za pośrednictwem jednej lub więcej faz przywracanie.Składnia i szczegóły, które nie są właściwe do tego celu są pomijane.

Baza danych jest przywracane i walcowane do przodu.Różnicowa bazy danych jest używany do zmniejszenia przewijaniem czas.To sekwencja przywracanie ma na celu wyeliminowanie utraty pracy; Ostatnia kopia zapasowa jest przywracany jest kopia zapasowa końcowego fragmentu dziennika.

Podstawowe przywracanie składnię sekwencja przywracanie jest:

  1. PRZYWRÓĆ bazę danych bazy danych z full database backup Z NORECOVERY;

  2. PRZYWRÓĆ bazę danych bazy danych z full_differential_backup Z NORECOVERY;

  3. Przywracanie dziennika bazy danych od log_backup Z NORECOVERY;

    Powtórz ten krok przywracanie dziennika dla każdego dodatkowego kopia zapasowa dziennika.

  4. PRZYWRÓĆ bazę danych bazy danych z odzysku;

Przykład

Na przykład następujący AdventureWorks2008R2 Przykładowa baza danych została zestaw do korzystania z model odzyskiwanie pełnego przed up. kopii bazy danychPrzykład tworzy kopia zapasowa końcowego fragmentu dziennika z AdventureWorks2008R2 bazy danych.Dalej, przykład przywraca kopię zapasową wcześniej pełnej bazy danych i kopia zapasowa, a następnie przywraca przykładzie kopia zapasowa końcowego fragmentu dziennika.Przykład odzyskuje bazy danych w oddzielnych, końcowe kroku.

Ostrzeżenie

W tym przykładzie użyto kopia zapasowa bazy danych i kopia zapasowa dziennika w "przy użyciu kopii zapasowych w obszarze pełnego modelu odzyskiwania bazy danych" utworzono sekcja w Pełne kopie zapasowe bazy danych.

Przykład rozpoczyna się od ALTER DATABASE instrukcja, która ustawia model odzyskiwanie do FULL.

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

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

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

Odzyskiwanie punkt awarii

Aby przywracanie pełnej kopii zapasowej

Ważna informacjaWażne:

Podczas przywracanie kopia zapasowa bazy danych na wystąpienie innego serwera, zobacz Kopiowanie bazy danych z kopii zapasowej i przywracania i Zarządzanie metadane podczas tworzenia bazy danych na inne wystąpienie serwera.

Aby przywracanie kopię zapasową bazy danych różnicowego

Aby przywracanie kopia zapasowa dziennika transakcji

Po przywracanie kopii zapasowych danych lub kopii zapasowych musi przywracanie wszystkich transakcji później dziennika kopii zapasowych, a następnie odzyskać bazy danych.

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

Odzyskiwanie do punktu w czasie

W modelu odzyskiwanie bazy danych można przywrócić do określonego punktu w czas w kopia zapasowa dziennika.W pkt czas może być określoną datę i czas, oznaczona transakcja lub numer sekwencyjny dziennika (LSN).Aby uzyskać więcej informacji, zobacz Przywracanie do punktu w kopii zapasowej bazy danych.

Obsługę kopii zapasowych z wcześniejszych wersji programu SQL Server

W SQL Server 2008, możesz przywracanie kopię zapasową bazy danych, który został utworzony za pomocą SQL Server 2000, SQL Server 2005, lub SQL Server 2008.Jednakże kopie zapasowe wzorca, model i msdb utworzonych za pomocą SQL Server 2000 lub SQL Server 2005 nie można przywrócić przez SQL Server 2008.Ponadto SQL Server 2008 kopii zapasowych nie można przywrócić przez wcześniej wersja z SQL Server.

SQL Server 2008 wykorzystuje inną ścieżka domyślną niż wcześniejsze wersje.Dlatego, aby przywracanie bazy danych, który został utworzony w lokalizacji domyślnej, albo SQL Server 2000 lub SQL Server 2005 kopii zapasowych, należy użyć opcji PRZENOSZENIA.Informacje dla nowej domyślnej ścieżka, zobacz Lokalizacje domyślne i nazwanych wystąpień programu SQL Server.

Ostrzeżenie

Aby uzyskać informacje dotyczące sposobu uaktualniania bazy danych, który został utworzony za pomocą SQL Server w wersja 7.0 lub wcześniejszej, aby SQL Server 2005, zobacz Kopiowanie bazy danych programu SQL Server 7.0 lub starszym.