Udostępnij za pośrednictwem


Recovery Paths

Opis odzyskiwanie ścieżki jest ważne, jeśli używana różnicy lub dziennika kopii zapasowych i odzyskiwanie bazy danych do poprzedniego punktu w czas przez jedną z następujących metod:

  • Wykonywanie punktu - w-czas przywracania

  • Trwa odzyskiwanie bez przywrócenia najpierw wszystkie kopie zapasowe dziennika lub ostatniej różnicowa kopia zapasowa.

Jeśli odzyskanie bazy danych do wcześniej punkt odzyskiwanie i rozpocząć korzystanie z bazy danych z tego punktu, utworzono nową ścieżka odzyskiwanie.The ścieżka odzyskiwanie is the sequence of data and log backups that have brought a database to a particular point in czas, either by regular database use or by a specific data and log przywracanie.Ścieżka odzyskiwanie składa się z unikatowy zestaw określonych przekształceń, które mają się w bazie danych w czasie, przy czym utrzymać spójność bazy danych.Na następującej ilustracji pokazano relację między punktem odzyskiwanie i wynikowe ścieżki odzyskiwanie.

Recovery point and resulting recovery paths

W następujących sytuacjach utwórz nową ścieżka odzyskiwanie, ponieważ baza danych nie zostanie przywrócona do "" koniec czas".Po tej dacie, kopie zapasowe istnieją, które można wykonać w bazie danych w dwóch lub więcej ścieżek odzyskiwanie, z których korzysta ten sam zakres LSNs.

  • Przywracanie wykonać pełną kopię zapasową bazy danych i odzyskiwanie bazy danych bez korzystania z innego typu kopia zapasowa.

  • Odzyskiwanie bazy danych na końcu różnicowa kopia zapasowa innych niż ostatniej różnicowa kopia zapasowa.

  • Przywracanie wykonać pełną kopię zapasową bazy danych i różnicowe bazy danych z kopia zapasowa i odzyskiwanie bazy danych bez stosowania istniejących transakcji dziennika kopii zapasowych.

  • Odzyskiwanie bazy danych na końcu kopia zapasowa dziennik transakcji innych niż najnowszej kopia zapasowa dziennik transakcji.

  • Odzyskiwanie bazy danych w określonym czas lub zaznaczonej transakcji w kopia zapasowa dziennik transakcji.

Ogólnie rzecz biorąc punkt odzyskiwanie rozpoczyna się nowa ścieżka odzyskiwanie, jeśli punkt odzyskiwanie powoduje, że transakcji, które mają być przywracane.Kopie zapasowe istniejących teraz może mieć dziennik numerów (LSNs) większe niż LSN tego punkt odzyskiwanie.Istnieje LSNs w tych kopii zapasowych na inną gałąź odzyskiwanie z nowego oddziału, utworzony w wyniku bieżącej operacji odzyskiwanie.

Najlepsze praktyki Aby uniknąć tworzenia ścieżka odzyskać, zawierający wiele rozwidlenia odzyskać, należy wykonać kompletny zestaw kopii zapasowych danych jak najszybciej po odzyskaniu bazy danych.Takie rozwiązanie gwarantuje, że wszystkie kopie zapasowe są pobierane na jednym gałąź odzyskiwanie.Aby to sprawdzić, możesz obejrzeć last_recovery_fork_guid kolumnabackupset tabela or PRZYWRACANIE HEADERONLY wyniki ustawiony po wykonaniu kopii zapasowej danych.

Przykładem ścieżka odzyskiwanie

Początkowo wszystkie kopie zapasowe bazy danych tworzą jeden ścieżka odzyskiwanie, jak pokazano na poniższej ilustracji.Na tej ilustracji ścieżka odzyskiwanie składa się z bazą danych kopii zapasowej, podjęte na czas t1, i trzy kopie zapasowe, na czas s t2 i t3 t4.

Original recovery path

Na poniższej ilustracji przedstawiono rozwidlenia odzyskiwania, które powstały na skutek odzyskiwanie bazy danych do starego punktu w czas.Problem z kopia zapasowa dziennika t4 powoduje, że administrator bazy danych do odzyskania bazy danych po zakończeniu wykonywania kopia zapasowa dziennika dziennika t3.To przywracanie powoduje, że rozwidlenia odzyskiwanie.Na czas t5 nową kopię zapasową dziennika rozpoczyna się nowa gałąź odzyskiwania, odzyskiwanie odgałęzienia 2.

Creation of a second recovery branch

Uwaga

Kopia zapasowa dziennika t5 zawiera rozwidlenia odzyskiwanie metadanych, które łączy tę kopię zapasową do kopii zapasowej dziennika t3 na gałąź odzyskiwanie 1.Aby uzyskać informacje na temat rozwidlenia odzyskiwanie metadane Zobacz "Zarządzanie odzyskiwanie rozwidlenia," w dalszej części tego tematu.

W przykładzie pokazano na poprzednim rysunku powoduje utworzenie nowej ścieżka odzyskiwanie, co pokazano na poniższej ilustracji.Nowa ścieżka odzyskiwanie zawiera niektóre kopie zapasowe na gałąź odzyskiwanie 1 (t1 za pośrednictwem t3) do każdego dziennika kopii zapasowych na gałąź odzyskiwanie 2 (t5 za pośrednictwem t9).Z perspektywa to ścieżka odzyskiwanie t4 kopii zapasowych dziennika jest przestarzała.

New recovery path

Po punkcie - w-czas przywracania, następna kopia zapasowa zawsze powoduje rozwidlenia odzyskiwanie.Na poniższej ilustracji punktu - w-czas przywracanie jest zakończona pozycjami przy użyciu kopia zapasowa dziennika dziennika t4.Odzyskiwanie bazy danych do tego punktu w czas powoduje, że rozwidlenia odzyskiwania.Następnie proces wykonywania kopii zapasowych dziennika jest tworzony na odzyskane bazy danych na t5 czas ustanowienia gałąź odzyskiwanie 2 i utworzenie nowej ścieżka odzyskiwanie.Pierwszy kopia zapasowa dziennika dziennika na nowej gałęzi t5, zawiera te same LSN pierwszego jako t3 kopii zapasowych dziennika i zastępuje go.Dlatego t3 i t4 kopie zapasowe są przestarzałe na nowym ścieżka odzyskiwanie.

New recovery path after a point-in-time restore

Aby przywrócić kopie zapasowe na to nowa ścieżka odzyskiwanie, sekwencja przywracanie jest: T1, t2 i t5. Podjęcia przyszłych kopii zapasowych na odzyskiwanie odgałęzienia 2 mają być dodawane w nowej ścieżka odzyskiwanie.

Do przywracanie i przenieść na przyszły okres oprócz ścieżka stare

Zazwyczaj wówczas, gdy istnieje wiele ścieżka odzyskiwanie, najnowsze z nich jest preferowanym ścieżka do przywracania bazy danych.Firma Microsoft zaleca, aby uniknąć przy użyciu starego ścieżka odzyskiwanie.Jednak jeśli zachodzi potrzeba, można kręć do przodu wzdłuż stare ścieżką odzyskiwanie korzystając z następującej sekwencji przed bieżącą ścieżka odzyskiwanie do tworzenia kopii zapasowych.Na przykład przed odzyskiwanie punktu w czasie wykonywania kopii zapasowych można użyć do późniejszego punktów w czasie wzdłuż stare ścieżka.

Na przykład w zależności od kopie zapasowe, utworzony na poprzednim rysunku, po utworzeniu kopia zapasowa dziennika t5 dziennika jest nadal możliwe do przywrócenia z kopia zapasowa dziennika pełnego bazy danych, podjęte na tabeli t1 na końcu t4 kopii zapasowych dziennika.Jest to na starą ścieżka odzyskiwanie.

Przywracanie i przenieść na przyszły okres od to stara ścieżka do nowej ścieżki

The SQL Server Database Engine prevents a sekwencja przywracanie from by using backups that do not go together, that is, that try to przenieść na przyszły okres along different odzyskiwanie paths. Ograniczenie to pozwala zachować spójność bazy danych po odzyskiwanie.

Aby przywrócić i przenieść na przyszły okres nowej ścieżce odzyskiwanie, utworzyć sekwencji różne przywracanie kopii zapasowych przed punkt odzyskiwanie i kopii zapasowych po punkt odzyskiwanie:

  1. Proces przywracanie kopii zapasowych, podjęte znajdowały się przed odzyskiwanie, które wprowadzona nowa ścieżka odzyskiwanie.Wyłącza kopia zapasowa zawierający punkt odzyskiwanie.

  2. Wycofanie do przodu na nowej ścieżce odzyskiwanie przez Przywracanie kopii zapasowych, które zostały podjęte od czasu utworzenia ścieżka odzyskiwanie.

Zarządzanie rozwidlenia odzyskiwanie

A gałąź odzyskiwanie jest zakres z LSNs używających tego samego identyfikatora GUID.Ścieżka odzyskiwanie opisuje zakres LSNs z Uruchom punkt (LSN, GUID) do punkt końcowy (LSN, GUID).Zakres LSNs w ścieżka odzyskiwanie mogą przechodzić przez jeden lub więcej gałęzi odzyskiwanie od rozpoczęcia do zakończenia.Nowa gałąź odzyskiwanie pochodzi podczas tworzenia bazy danych i kiedy przywracanie WITH przywrócenia generuje rozwidlenia odzyskiwanie.

A recovery fork.is the point (LSN,GUID) at which a new recovery branch is started, every time a RESTORE WITH RECOVERY is performed.Poszczególne rozwidlenia odzyskiwanie określa relacji nadrzędny podrzędność między oddziałami odzyskiwanie.

Odzyskiwanie bazy danych Ustawia stan całej bazy danych, w tym do następnego LSN, punkt odzyskiwania.Ponownie LSNs są następnie używane, począwszy od fork_point_lsn.Podczas tworzenia sekwencja przywracanie, dlatego kopie zapasowe muszą być połączone przez rozwidlenia odzyskiwanie, a także LSN, ponieważ ten sam LSN może istnieć na więcej niż jeden rozwidlenia.Na poniższej ilustracji przedstawiono LSN ponownego użycia.Pokazuje, w jaki sposób są używane ponownie w różnych odzyskiwanie rozwidlenia LSNs.Zielone pola na ilustracji oznacza dwóch kopii zapasowych, które używają tych samych LSN.

How LSNs are reused in different recovery forks

Jeśli kopie zapasowe, które przy przechodzeniu rozwidlenia odzyskiwanie muszą być wyposażone w sekwencji przywracanie, sekwencja przywracania musi być skonstruowany tak, aby kopie zapasowe, które są używane, należy wykonać odzyskiwanie poprawną ścieżka do punkt odzyskiwanie.W tym celu kopie zapasowe obejmują pierwsze rozwidlenia odzyskiwanie GUID i ostatniego rozwidlenia odzyskiwanie identyfikatora GUID.

Te identyfikatory GUID oraz inne metadane, które odnosi się do śledzenia ścieżki odzyskiwanie, są przechowywane w backupset historia tabela i również są zwracane przez PRZYWRACANIE HEADERONLY instrukcja.W poniższej tabela zestawiono wartości metadane, które dotyczą tworzenia sekwencji przywracanie przy przechodzeniu rozwidlenia odzyskiwanie.Należy zauważyć, że nazwy kolumn dla tych wartości są różne dla historia tabela i zestawie wyników instrukcja przywracanie HEADERONLY:

LSN

Description

Nazwa kolumna backupset

HEADERONLY przywracanie nazwa kolumna

Pierwszy rozwidlenia odzyskiwanie GUID

Identyfikator początkowy rozwidlenia odzyskiwanie.

first_recovery_fork_guid

FirstRecoveryForkID

Ostatni rozwidlenia odzyskiwanie GUID

Identyfikator końcową rozwidlenia odzyskiwanie.

Różnica między czas lokalnym (gdzie operacji tworzenia kopia zapasowa ma miejsce) i skoordynowanego czas uniwersalnego (UTC) 15 minut.

RecoveryForkID

Pierwszy LSN

Zwraca 1 nonpartitioned tabela lub indeksu.

Numer partycji.

FirstLSN

Ostatni LSN

Rejestracja liczby sekwencji następny rekord dziennika po kopia zapasowa zestawu.

size_with_current_compression_setting (KB)

LastLSN

Rozwidlenia LSN punkt

Rejestracja sekwencji liczby punkt rozwidlenia, jeśli pierwszym identyfikatora GUID punktu odzyskiwanie nie jest równa (≠) ostatniego identyfikatora GUID punktu odzyskiwanie.W przeciwnym razie rozwidlenia odzyskiwanie nie występuje w kopia zapasowa i rozwidlenia LSN punkt ma wartość NULL.

fork_point_lsn

ForkPointLSN

Różnicowa podstawowy identyfikator GUID

Dla opartego na jednym różnicowa kopia zapasowa, wartość jest identyfikator unikatowy kopia podstawowa dla różnicowych kopii zapasowych.

W przypadku różnicowych kopii zapasowych o wielu kopiach podstawowych ta wartość jest równa NULL i kopia podstawowa dla różnicowych kopii zapasowych musi zostać określona na poziomie pliku.Aby uzyskać więcej informacji, zobacz temat backupfile (Transact-SQL).

W przypadku kopii zapasowych innych niż różnicowe ta wartość jest równa NULL.

differential_base_guid

DifferentialBaseGUID

Pozostałą część tej dyskusji używa nazwy tylko tych wartości backupset tabel historia.

  • Ostatni rozwidlenia odzyskiwanie GUID i pierwszym rozwidlenia odzyskiwanie GUID są używane do łączenia kopie zapasowe, aby upewnić się, że kolejność następuje prawidłowe rozwidlenia.Dla każdej kopii dziennika w sekwencji do przywrócenia, first_recovery_fork_guid musi są równe.last_recovery_fork_guid wcześniejszego utworzenia kopia zapasowa dziennika w sekwencji.

    first_recovery_fork_guid = last_recovery_fork_guid

  • Dane i różnicowe kopie zapasowe muszą być również połączone.

    kopia zapasowa dziennika dziennika zawiera zarówno ostatniego LSN wykonać pełną kopię zapasową bazy danych lub różnicowy bazy danych z kopia zapasowa dziennika i punkt rozwidlenia, łączenia test zależy od lokalizacji ostatniego LSN względem punktu rozwidlenia.

    Łączenie testów są następujące, używając wartości z backupset:

    • Jeśli last_lsn jest mniejsza niż lub równa fork_point_lsn, the last_recovery_fork_guid danych lub różnicowa kopia zapasowa musi są równe.first_recovery_fork_guid of the kopia zapasowa dziennika.Na poniższej ilustracji przedstawiono przypadek, w którym last_lsn jest mniejsza niż fork_point_lsn.

      last_lsn is less than fork_point_lsn

    • Jeśli last_lsn jest większe niż fork_point_lsn, the last_recovery_fork_guid danych lub różnicowa kopia zapasowa musi są równe.last_recovery_fork_guid kopii zapasowych dziennika.Na poniższej ilustracji przedstawiono przypadek, w którym last_lsn jest większe niż fork_point_lsn.

      last_lsn is greater than fork_point_lsn

  • różnicowa kopia zapasowa zlokalizuj kopia podstawowa dla różnicowych kopii zapasowych przy użyciu backupset.differential_base_guid.

    W przypadku różnicy multibased, backupset.differential_base_guid ma wartość NULL, a wymagane jest określenie różnicy baz przez plik przy użyciu backupfile.differential_base_guid.