Udostępnij za pośrednictwem


Log Sequence Numbers and Restore Planning

 W tym temacie odnosi się do SQL Server bazy danych, które wykorzystują model pełnego odzyskiwanie.

Do przywracanie planowania, najważniejszych dziennika sekwencji numerów (LSNs) są najpierw i ostatniego LSNs.Te LSNs można uzyskać z następujących lokalizacji:

  • The backupset tabela in msdb.Kolumny noszą nazwy first_lsn and last_lsn.

  • Instrukcja HEADERONLY przywracanie.Kolumny noszą nazwy FirstLSN and LastLSN.

W poniższej tabela definiuje te terminy różnych kopii zapasowych.

Termin

Definicja

first_lsn or FirstLSN

Zwraca 1 nonpartitioned tabela lub indeksu.

Dane i różnicowych kopii zapasowych pierwszy LSN identyfikuje najwcześniejszą rekordu dziennika jest wymagana w celu wykonania odzyskiwanie z tej kopia zapasowa.

Dla kopii zapasowych dziennika pierwszy LSN Określa pierwszy rekord dziennika uwzględniane w kopia zapasowa.

last_lsn or LastLSN

numer sekwencyjny dziennika następnego rekordu dziennika po zestaw kopii zapasowych.

Ostatni LSN identyfikuje następny rekord dziennika poza koniec kopia zapasowa.Dane i różnicowych kopii zapasowych (i zawierające rejestrowane zbiorczej operacji kopii zapasowych dziennika) przenieść na przyszły okres musi co najmniej o przejdź do tego LSN.W przeciwnym razie kopiowane podczas przywracanie danych jest niespójna.

Dla kopii zapasowych dziennika wykonywanie kopia zapasowa dziennika dziennika zawiera rekordy dziennika do, ale bez uwzględnienia tego LSN.

Dziennik numerów sekwencji i danych lub Differential kopii zapasowych

Dla danych i różnicowych kopii zapasowych, dane dziennika między first_lsn and last_lsn znajduje się w kopia zapasowa.Dzięki temu kopia zapasowa, która ma być używany bez kopii zapasowych dziennika do odzyskania last_lsn.

Dla danych lub różnicowa kopia zapasowa last_lsn jest najwcześniejszego punkt odzyskiwanie to możliwe, jeśli korzystasz z kopii zapasowej w sekwencji przywracanie.Jeśli wcześniejszego odzyskiwanie jest wymagany, należy użyć wcześniejszych wykonywania kopia zapasowa.

Podczas planowania których kopia zapasowa dziennika do przenieść na przyszły okres po przywróceniu danych lub różnicowa kopia zapasowa, zazwyczaj rozpoczyna się z pierwszym kopia zapasowa dziennika dziennika po tych danych lub różnicowa kopia zapasowa.Podczas inspekcji właściwości kopia zapasowa dziennika, można znaleźć dziennika kopii zapasowych, którego first_lsn jest mniejsza niż lub równa last_lsn od danych lub różnicowa kopia zapasowa i których last_lsn jest większe niż last_lsn od danych lub różnicowa kopia zapasowa.

Numery sekwencji dziennika oraz kopii zapasowych dziennika w łańcuch dzienników

Łańcuch nowy dziennik zostanie uruchomiony z pierwszej pełnej bazy danych kopia zapasowa następujące bazy danych tworzeniem lub po przełączeniu z proste model odzyskiwanie pełnego lub zarejestrowane zbiorczej model odzyskiwanie.In the first log backup in a chain, backupset.begins_log_chain = 1.

The first_lsn and last_lsn are used to link log backups into a consecutive sequence (łańcuch dzienników).Można użyć sekwencji kopie zapasowe następujących po sobie dziennika do przenieść na przyszły okres bazy danych, od najnowszych danych lub różnicowa kopia zapasowa lub z wcześniejszej kopii zapasowej w przeszłości brakujące lub uszkodzone dane i różnicowa kopia zapasowa.

W kopia zapasowa dziennika dziennika first_lsn jest LSN pierwszego rekordu dziennika w kopia zapasowa dziennika i począwszy od tego rekordu dziennika kopia zapasowa dziennika dziennika zawiera rekordy dziennika, ale nie więcej niż rekord dziennika, w których LSN jest last_lsn.Two log backups are consecutive if and only if the LSN of the last log record in the earlier backup (Backup_A) is greater than or equal to the LSN of the first log record in the later backup (Backup_B); that is, Backup_A.last_lsn >= Backup_B.first_lsn.Jeśli to nie zostanie spełniony, luka istnieje między dwie kopie zapasowe.

istotność relację między tymi LSN jest następująca:

  • A.last_lsn = B.first_lsn

    If A.last_lsn = B.first_lsn, B is usually the log backup taken immediately after A.

    Na poniższej ilustracji przedstawiono tę relację.Należy zauważyć, że rekord dziennika n, który występuje w kopia zapasowa dziennika B, został zarejestrowany jako last_lsn w kopia zapasowa dziennika A i jako first_lsn B. w dzienniku, wykonywania kopii zapasowych

    last_lsn of log backup A=first_lsn of log backup B

  • A.last_lsn > B.first_lsn

    If A.last_lsn > B.first_lsn, overlap exists.Nakładanie zazwyczaj wyniki z tworzenia kopia zapasowa dziennika dziennika tylko do kopiowania lub pierwszej kopia zapasowa dziennika dziennika po odzyskiwanie punktu w czasie.Nakładanie może obejmować rozwidlenia różnych odzyskiwanie.Aby uzyskać więcej informacji zobaczRecovery Paths.

Powoduje, że łańcuchy uszkodzony dziennik

Ogólnie rzecz biorąc SQL Server Database Engine pozwala uniknąć przerwy w sekwencji kopii zapasowych dziennika, utrzymując łańcuch dzienników nienaruszony. Jednak administrator bazy danych może uszkodzić łańcuch dzienników przez zmianę model odzyskiwanie prosty, a następnie z powrotem do pełnego lub zarejestrowane zbiorczej.

Nie można przywracać do przodu przez model odzyskiwanie zmiany, które obejmują proste model odzyskiwanie, ponieważ łańcuch dzienników zostanie przerwane.Po zmianie w modelu odzyskiwanie Pełny lub jest rejestrowane zbiorczych, należy podjąć nowe kopia podstawowa dla różnicowych kopii zapasowych lub zestaw podstaw różnicowe.Można również umożliwia różnicowe kopie zapasowe Mostek przerwy.