Ścieżki odzyskiwania

Opis odzyskiwania ścieżki jest ważne, jeśli używasz różnicowa lub dziennika kopii zapasowych i odzyskiwania bazy danych do wcześniejszego w czas przez jedną z następujących metod:

  • Wykonywanie punktu-w-czas przywracania

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

Jeśli odzyskanie bazy danych do wcześniej punkt odzyskiwanie i rozpocząć korzystanie z bazy danych z tego punktu, nowa ścieżka odzyskiwanie pochodzi.Ścieżka odzyskiwanie jest sekwencją kopii zapasowych danych i dziennika, które dostosowały bazy danych do określonego punktu w czas, stosowanie zwykłej bazy danych lub szczególnych przywracanie danych i dziennika.Ścieżka odzyskiwanie składa się z unikatowy zestaw określonego przekształcenia, które usprawnionych bazy danych przez czas, jeszcze utrzymać spójność bazy danych.Na poniższej ilustracji przedstawiono relacje między punkt odzyskiwanie i uzyskane ścieżki odzyskiwanie.

Punkt odzyskiwania i wynikowe ścieżki odzyskiwania

Następujących sytuacjach utwórz nową ścieżka odzyskiwanie, ponieważ baza danych nie jest przywracany do "koniec czas".Kopie zapasowe istnieje możliwooć bazy danych niedziałający dwa lub więcej ścieżek odzyskiwanie, które należy użyć tego samego zakres LSNs.

  • Przywracanie pełnej kopia zapasowa i odzyskiwanie bazy danych bez użycia typ kopia zapasowa.

  • Odzyskiwanie bazy danych na końcu Różnicowa kopia zapasowa innych niż najnowszą różnicową kopią zapasową.

  • Przywracanie pełnej kopia zapasowa i różnicowa bazy danych kopia zapasowa i odzyskiwanie bazy danych bez stosowania istniejących transakcji dziennika kopii zapasowych.

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

  • Odzyskiwanie bazy danych na określonym czas lub oznaczona transakcja w kopia zapasowa dziennika transakcji.

Ogólnie rzecz biorąc punkt odzyskiwanie rozpoczyna nową ścieżka odzyskiwanie, jeśli punkt odzyskiwanie powoduje, że można wycofać transakcji.Istniejące kopie zapasowe może być teraz dziennik numerów (LSNs) większa niż LSN to punkt odzyskiwanie.Istnieje LSNs w te kopie zapasowe na różnych gałąź odzyskiwania z nowego oddziału, utworzona przez bieżącą operację odzyskiwania.

Najlepsze praktyki aby uniknąć tworzenia ścieżka odzyskiwania zawierającego wiele rozwidlenia odzyskiwania, wykonać pełny zestaw kopii zapasowych danych jak najszybciej po odzyskaniu bazy danych.Podejście to gwarantuje, że podejmowane są wszystkie kopie zapasowe na jednym gałąź odzyskiwanie.Aby to sprawdzić, możesz obejrzeć last_recovery_fork_guid kolumna w backupset tabela lub RESTORE headeronly zestaw wyniki po wykonaniu kopii zapasowej danych.

Przykład ścieżki odzyskiwania

Początkowo wszystkie kopie zapasowe bazy danych Formularz pojedynczy ścieżka odzyskiwanie, jak pokazano na poniższej ilustracji.Na tej ilustracji ścieżka odzyskiwanie zawiera kopię zapasową bazy danych na czas t1 i trzy kopie zapasowe dziennika, podjętych w czasie t2, t3 i t4.

Oryginalna ścieżka odzyskiwania

Na poniższej ilustracji przedstawiono rozwidlenia odzyskiwania, które wynika z odzyskiwanie bazy danych do starego punktu w czas.Problem z t4 kopia zapasowa powoduje, że administrator bazy danych odzyskać bazy danych na końcu t3 kopia zapasowa dziennika.Przywracanie powoduje rozwidlenia odzyskiwanie.W czas t5 nową kopię zapasową dziennika rozpoczyna nową gałąź odzyskiwanie, odzyskiwanie odgałęzienia 2.

Tworzenie drugiej gałęzi odzyskiwania

Ostrzeżenie

Kopii zapasowej t5 zawiera metadane rozwidlenia odzyskiwanie, łączącego tej kopii zapasowej kopii zapasowej dziennika t3 na gałąź odzyskiwanie 1.Aby uzyskać informacje dotyczące odzyskiwanie rozwidlenia metadane zobacz "Zarządzanie rozwidlenia odzyskiwanie" w dalszej części tego tematu.

Przykład pokazano na poprzedniej ilustracji tworzy nową ścieżka odzyskiwanie, który jest przedstawione na poniższej ilustracji.Nowy ścieżka odzyskiwanie zawiera niektóre kopie na odzyskiwanie odgałęzienia 1 (t1 poprzez t3) i każdej kopia zapasowa na odzyskiwanie odgałęzienia 2 (t5 poprzez t9).Z perspektywa to ścieżka odzyskiwanie, t4 kopia zapasowa dziennika jest przestarzały.

Nowa ścieżka odzyskiwania

Po pkt-w-czas przywracania, następna kopia zapasowa zawsze powoduje rozwidlenia odzyskiwanie.Na poniższej ilustracji punktu-w-czas zakończeniu przywracanie za pomocą kopia zapasowa t4 midway.Odzyskiwanie bazy danych do tego punktu w czas powoduje rozwidlenia odzyskiwania.Następnie kopia zapasowa dziennika jest tworzony na odzyskane bazy danych na czas t5, ustanowienie oddziału odzyskiwanie 2 i tworzenia nowego ścieżka odzyskiwanie.Pierwsza kopia zapasowa dziennika na nowego oddziału t5, zawiera samego LSN pierwszy jako t3 kopii zapasowej dziennika i zastępuje go.Dlatego zarówno t3 i t4 kopii zapasowych są przestarzałe na nowy ścieżka odzyskiwanie.

Nowa ścieżka odzyskiwania po przywracaniu z określonego momentu

Aby przywrócić kopie zapasowe na to nowa ścieżka odzyskiwanie sekwencja przywracanie jest: T1, t2 i t5.Podjęcia kolejnych kopii zapasowych na odzyskiwanie odgałęzienia 2 będzie należy włączyć nowe ścieżka odzyskiwanie.

Aby przywrócić i przetoczyć do przodu wzdłuż ścieżki stare

Zazwyczaj gdy istnieje wiele ścieżka odzyskiwanie, najnowsze ich jest preferowaną ścieżką przywracania bazy danych.Firma Microsoft zaleca, aby uniknąć przy użyciu starego ścieżka odzyskiwanie.Jeśli trzeba, można jednak przenieść do przodu w czasie wzdłuż stara ścieżka odzyskiwanie, korzystając z następującej sekwencji kopie zapasowe wykonane przed utworzeniem bieżącą ścieżkę odzyskiwanie.Na przykład, można użyć kopii zapasowych przed punktem-w-czas odzyskiwania osiągnąć później punktów w czas wzdłuż ścieżka starego.

Na przykład, w zależności od kopii zapasowych utworzony w poprzedniej ilustracji, po utworzeniu kopia zapasowa t5 dziennika jest nadal możliwe przywracanie z pełnej kopia zapasowa t1 są pod koniec t4 kopia zapasowa dziennika.Jest to w starym ścieżka odzyskiwanie.

Aby przywrócić i Przeskocz do przodu ze starej ścieżki do nowej ścieżki

Aparat baz danych programu SQL Server Zapobiega sekwencji przywracanie z przy użyciu kopii zapasowych, które nie wchodzą ze sobą, oznacza to, że próby przenieść do przodu w czasie wzdłuż ścieżki różnych odzyskiwanie.Ograniczenie to utrzymuje spójność bazy danych po odzyskiwanie.

Aby przywrócić i przenieść do przodu w czasie wzdłuż nowej ścieżka odzyskiwanie konstruowania sekwencji distinct przywracanie kopii zapasowych oraz kopie zapasowe zanim punkt odzyskiwanie po pkt odzyskiwanie:

  1. Przywracanie kopii zapasowych podjęte zostały przed odzyskiwanie, która wprowadziła nowy ścieżka odzyskiwanie.Wyklucz kopia zapasowa, który zawiera punkt odzyskiwanie.

  2. Przetoczyć do przodu wzdłuż nowej ścieżka odzyskiwanie przez przywrócenie kopii zapasowych, które miały miejsce od czasu ścieżka odzyskiwanie został utworzony.

Zarządzanie rozwidlenia odzyskiwania

A gałąź odzyskiwanie jest zakres z LSNs, udostępniać tego samego identyfikatora GUID.A ścieżka odzyskiwanie opisuje zakres LSNs z start point (LSN, GUID) do punkt końcowy (LSN, GUID).Zakres LSNs w ścieżka odzyskiwanie może przechodzić przez jeden lub więcej oddziałów odzyskiwanie od początku do końca.Nowy gałąź odzyskiwanie pochodzi podczas tworzenia bazy danych i PRZYWRÓCIĆ Z odzyskiwanie 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 relację nadrzędny podrzędność oddziałów odzyskiwanie.

Odzyskiwanie bazy danych Ustawia stan całej bazy danych, w tym LSN dalej, aby punkt odzyskiwania.LSNs są ponownie, począwszy od fork_point_lsn.Przy konstruowaniu sekwencja przywracanie, dlatego kopie zapasowe muszą być połączone przez rozwidlenia odzyskiwanie, a także LSN, ponieważ samego LSN może istnieć na więcej niż jeden rozwidlenia.Na poniższej ilustracji przedstawiono LSN ponownego użycia.Pokazuje, jak LSNs są używane w różnych odzyskiwanie rozwidlenia ponownie.Zielone pola na ilustracji oznacza dwóch kopii zapasowych, które używają tej samej LSN.

Jak numery LSN są ponownie używane w różnych rozgałęzieniach odzyskiwania

Jeśli sekwencja przywracania musi dołączyć kopii zapasowych, które przechodzą przez rozwidlenia odzyskiwanie, przywracanie sekwencji muszą być skonstruowane tak, aby kopie zapasowe, które są używane, należy wykonać odzyskiwanie poprawną ścieżkę do punkt odzyskiwanie.W tym celu kopii zapasowych zawiera pierwszą rozwidlenia odzyskiwanie GUID i ostatniego rozwidlenia odzyskiwanie identyfikatora GUID.

Te identyfikatory GUID wraz z innymi metadane, które odnoszą się do śledzenia ścieżki odzyskiwanie, są przechowywane w backupset historia tabela i są również zwracana RESTORE headeronly instrukcja.W następującej tabela zestawiono wartości metadane, które są istotne dla konstruowania przywracanie sekwencji przechodzenia rozwidlenia odzyskiwanie.Należy zauważyć, że kolumna nazwy dla wartości te są różne dla tabela historia i zestaw wyników instrukcja HEADERONLY PRZYWRACANIA:

LSN

Opis

Nazwa kolumna backupset

PRZYWRÓĆ HEADERONLY 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.

last_recovery_fork_guid

RecoveryForkID

Pierwszy LSN

Rejestrować kolejny numer rekordu dziennika pierwszy lub najstarsze w zestaw kopii zapasowych.

first_lsn

FirstLSN

Ostatni LSN

Rejestrować kolejny numer następnego rekordu dziennika po zestaw kopii zapasowych.

last_lsn

LastLSN

Rozwidlenie punkt LSN

Numer kolejny punkt rozwidlenia dziennika, jeśli pierwszym punkt odzyskiwanie identyfikator GUID nie jest równa ostatniej (≠) punkt odzyskiwanie identyfikatora GUID.W przeciwnym wypadku rozwidlenia odzyskiwanie nie występuje w kopia zapasowa i rozwidlenia LSN punkt jest NULL.

fork_point_lsn

ForkPointLSN

Różnicowa podstawowy identyfikator GUID

Na podstawie pojedynczej różnicowej kopia zapasowa, wartość jest identyfikator unikatowy z kopia podstawowa dla różnicowych kopii zapasowych.

Dla zróżnicowanie multibased ma wartość NULL i kopia podstawowa dla różnicowych kopii zapasowych musi być ustalony poziom pliku.Aby uzyskać więcej informacji, zobacz backupfile (języka Transact-SQL).

Dla nondifferential kopia zapasowa typów wartością jest NULL.

differential_base_guid

DifferentialBaseGUID

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

  • Rozwidlenie ostatniej odzysku GUID i pierwszy rozwidlenia odzyskiwanie GUID są używane do łącze kopie zapasowe, aby upewnić się, że sekwencja następuje rozwidlenia poprawne.Dla każdego kopia zapasowa dziennika w sekwencji przywrócone, first_recovery_fork_guid musi być równa last_recovery_fork_guid wcześniejszych kopia zapasowa w sekwencji.

    Identyfikator first_recovery_fork_guid = identyfikator last_recovery_fork_guid

  • Różnicowe kopie zapasowe i danych musi być również połączony.

    Jeśli kopia zapasowa dziennika zawiera LSN ostatniej pełnej kopia zapasowa lub kopia zapasowa bazy danych różnicowych i punkt rozwidlenia łączenia badań zależy od lokalizacji ostatniego LSN względem punktu rozwidlenia.

    Łączenie badań są następujące, używając wartości od backupset:

    • Jeśli last_lsn jest mniejsza lub równa fork_point_lsn, last_recovery_fork_guid danych lub różnicowej kopia zapasowa musi być równa first_recovery_fork_guid z kopia zapasowa dziennika.Na poniższej ilustracji przedstawiono przypadek, w którym last_lsn jest mniejsza niż fork_point_lsn.

      Numer last_lsn jest mniejszy niż numer fork_point_lsn

    • Jeśli last_lsn jest większa niż fork_point_lsn, last_recovery_fork_guid danych lub różnicowej kopia zapasowa musi być równa last_recovery_fork_guid z kopia zapasowa dziennika.Na poniższej ilustracji przedstawiono przypadek, w którym last_lsn jest większa niż fork_point_lsn.

      Numer last_lsn jest większy niż numer fork_point_lsn

  • Zlokalizuj różnicowej kopii zapasowej kopia podstawowa dla różnicowych kopii zapasowych za pomocą backupset.differential_base_guid.

    W przypadku różnicy multibased, backupset.differential_base_guid jest równa NULL i należy określić różnicy podstaw przez plik za pomocą backupfile.differential_base_guid.