Udostępnij za pośrednictwem


Odzyskiwanie zaznaczonych transakcji

W tym temacie jest odpowiednia tylko dla baz danych, które zawierają zaznaczone transakcje, które używają modeli odzyskiwanie Pełny lub bulk-logged.

Informacje dotyczące wymagań przywracania do konkretnych punkt odzyskiwanie, zobacz Przywracanie do punktu w kopii zapasowej bazy danych.

SQL Server obsługuje Wstawianie znaków w nazwie do umożliwienia odzyskiwanie do tego znaku określonego dziennika transakcji.Znaczniki dziennika są określonych transakcji i dodaje się tylko wtedy, gdy zatwierdzeniu ich skojarzonej transakcji.W wyniku znaczniki można związany z określonej pracy i do punktu, uwzględniającej lub wykluczającej tej pracy można odzyskać.

Przed wstawieniem nazwanych znaczniki do dziennika transakcji należy rozważyć następujące kwestie:

  • Ponieważ znaki transakcji zajmują miejsca w dzienniku, należy ich używać tylko dla transakcji, które odgrywać znaczącą rolę w strategii odzyskiwanie bazy danych.

  • Po zatwierdzeniu oznaczona transakcja zostanie wstawiona w logmarkhistory tabela w msdb.

  • Zaznaczonych transakcji obejmujących wiele baz danych na tym samym serwerze bazy danych lub na różnych serwerach, znaczniki musi być rejestrowane w dziennikach dotyczy baz.Aby uzyskać więcej informacji, zobacz Używając zaznaczonych transakcji (modelu odzyskiwania pełny).

Ostrzeżenie

Aby uzyskać informacje dotyczące transakcji, zobacz Używając zaznaczonych transakcji (modelu odzyskiwania pełny).

Wstawianie składnię języka Transact-SQL o nazwie znaki w dzienniku transakcji

Aby wstawić znaczniki do dzienników transakcji, użyj instrukcja BEGIN TRANSACTION instrukcja i z oznaczyćOpisklauzula.Znak jest taką samą nazwę jak transakcji.Opcjonalna Opis jest opis tekstowy znaku, a nie nazwy znacznika.Na przykład nazwa transakcji i znaku, który jest tworzony w następującej BEGIN TRANSACTION Instrukcja jest Tx1:

BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'  

Rekordy dziennika transakcji, nazwa transakcji (znacznik), opis, bazy danych, użytkownik, datetime informacji i numer sekwencyjny dziennika (LSN).datetime Informacji jest używana wraz z nazwą znaku do jednoznacznego identyfikowania znacznika.

Aby uzyskać informacje na temat wstawić znacznik do transakcji obejmujących wiele baz danych, zobacz Używając zaznaczonych transakcji (modelu odzyskiwania pełny).

Składnia języka Transact-SQL odzyskiwanie znaku

Podczas możesz miejsce docelowe zaznaczonej transakcji za pomocą PRZYWRÓCIĆ dziennika instrukcja, można użyć jednej następujące klauzule zatrzymać na lub bezpośrednio przed znakiem:

  • Korzystać Z STOPATMARK = '<mark_name>" klauzula, aby określić, że oznaczona transakcja jest punkt odzyskiwanie.

    STOPATMARK toczy się dalej do kreski i obejmuje oznaczona transakcja w przenieść do przodu w czasie.

  • Korzystać Z STOPBEFOREMARK = '<mark_name>" klauzula, aby określić, że dziennik rejestrowanie jest bezpośrednio przed znakiem jest punkt odzyskiwanie.

    STOPBEFOREMARK toczy się dalej do kreski i wyklucza oznaczona transakcja z przenieść do przodu w czasie.

Opcjonalne po obsługuje opcje STOPATMARK i STOPBEFOREMARK datetime klauzula.Gdy datetime jest używany, znak nazwy nie muszą być unikatowe.

Jeżeli po datetime zostanie pominięty, przenieść do przodu w czasie zatrzymuje się w pierwszym znaku, który ma nazwę określonego.Jeżeli po datetime określono przenieść do przodu w czasie zatrzymuje się na pierwszego znaku, który o określonej nazwie, dokładnie w lub po datetime.

Ostrzeżenie

Zgodnie z pkt wszystkich-w-czas operacji przywracanie, odzyskiwanie znaku jest niedozwolona, gdy baza danych jest poddawana operacje, które są bulk-logged.

Aby przywracanie do zaznaczonych transakcji

Jak Przywracanie bazy danych do zaznaczonych transakcji (SQL Server Management Studio)

RESTORE (Transact-SQL)

Przygotowywanie kopii zapasowych dziennika

Na przykład odpowiednią strategię kopia zapasowa tych baz danych pokrewnych byłby następujący:

  1. Użyj pełnego model odzyskiwanie dla obu baz danych.

  2. Tworzenie pełna kopia zapasowa każdej bazy danych.

    Bazy danych można zapasowe kolejno lub jednocześnie.

  3. Przed utworzeniem kopii zapasowej dziennika transakcji, oznacz transakcji, która wykonuje w przypadku wszystkich baz danych.Uzyskać informacje o tworzeniu zaznaczonych transakcji Używając zaznaczonych transakcji (modelu odzyskiwania pełny).

  4. Wykonaj kopię zapasową dziennika transakcji dla każdej bazy danych.

Odzyskiwanie bazy danych do zaznaczonych transakcji

Aby przywracanie kopia zapasowa

  1. Tworzenie kopii zapasowych dziennika ogona baz nieuszkodzone, jeśli to możliwe.

  2. Przywrócenie najnowszej pełnej kopia zapasowa każdej bazy danych.

  3. Zidentyfikować najnowsze oznaczona transakcja, która jest dostępna we wszystkich kopie zapasowe dziennika transakcji.Te informacje są przechowywane w logmarkhistory tabela w msdb bazy danych na każdym serwerze.

  4. Zidentyfikować kopii zapasowych dziennika dla wszystkich powiązanych baz danych, zawierające ten znacznik.

  5. Przywracanie każdego kopia zapasowa dziennika, zatrzymywanie na podstawie oznaczonej transakcji.

  6. Odzyskanie każdej bazy danych.