Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Temat dotyczy tylko modelu pełnego odzyskiwania lub modelu odzyskiwania rejestrowanego zbiorczo.
W tym temacie opisano stosowanie kopii zapasowych dziennika transakcji w ramach przywracania bazy danych programu SQL Server.
Wymagania dotyczące przywracania kopii zapasowych dziennika transakcji
Aby zastosować kopię zapasową dziennika transakcji, należy spełnić następujące wymagania:
Wystarczająca liczba kopii zapasowych dziennika dla sekwencji przywracania: Aby ukończyć sekwencję przywracania, musisz mieć wystarczającą liczbę rekordów dziennika. Niezbędne kopie zapasowe dziennika, w tym kopia zapasowa końcowa tam, gdzie jest to wymagane, muszą być dostępne przed rozpoczęciem sekwencji przywracania.
Poprawna kolejność przywracania: Należy najpierw przywrócić natychmiast poprzednią pełną kopię zapasową bazy danych lub różnicowej kopii zapasowej bazy danych. Następnie wszystkie dzienniki transakcji utworzone po tej pełnej lub różnicowej kopii zapasowej bazy danych muszą zostać przywrócone w kolejności chronologicznej. Jeśli kopia zapasowa dziennika transakcji w tym łańcuchu dzienników zostanie utracona lub uszkodzona, możesz przywrócić tylko dzienniki transakcji przed brakującym dziennikiem transakcji.
Baza danych nie została jeszcze odzyskana: Nie można odzyskać bazy danych do momentu zastosowania końcowego dziennika transakcji. Jeśli odzyskasz bazę danych po przywróceniu jednej z pośrednich kopii zapasowych dziennika transakcji przed zakończeniem łańcucha dzienników, nie możesz przywrócić bazy danych poza ten punkt bez ponownego uruchomienia pełnej sekwencji przywracania, zaczynając od pełnej kopii zapasowej bazy danych.
Napiwek
Najlepszym rozwiązaniem jest przywrócenie wszystkich kopii zapasowych dziennika (
RESTORE LOG *database_name* WITH NORECOVERY
). Następnie po przywróceniu ostatniej kopii zapasowej dziennika odzyskaj bazę danych w oddzielnej operacji (RESTORE DATABASE *database_name* WITH RECOVERY
).
Logi odzyskiwania i transakcji
Po zakończeniu operacji przywracania i odzyskaniu bazy danych jest wykonywany proces odzyskiwania w celu zapewnienia integralności bazy danych. Aby uzyskać więcej informacji na temat procesu odzyskiwania, zobacz Przywracanie i odzyskiwanie: Omówienie (SQL Server).
Po zakończeniu procesu odzyskiwania baza danych przechodzi do trybu online i nie można zastosować kolejnych kopii zapasowych dziennika transakcji do bazy danych. Na przykład seria kopii zapasowych dziennika transakcji zawiera długotrwałą transakcję. Początek transakcji jest rejestrowany w pierwszej kopii zapasowej dziennika transakcji, ale koniec transakcji jest rejestrowany w drugiej kopii zapasowej dziennika transakcji. W pierwszej kopii zapasowej dziennika transakcji nie ma rekordu operacji zatwierdzania ani wycofywania. Jeśli operacja odzyskiwania jest uruchamiana po zastosowaniu pierwszej kopii zapasowej dziennika transakcji, długotrwała transakcja jest traktowana jako niekompletna, a modyfikacje danych zarejestrowane w pierwszej kopii zapasowej dziennika transakcji dla transakcji zostaną wycofane. Program SQL Server nie zezwala na zastosowanie drugiej kopii zapasowej dziennika transakcji po tym punkcie.
Notatka
W niektórych okolicznościach można jawnie dodać plik podczas przywracania dziennika.
Przywracanie do punktu awarii przy użyciu kopii zapasowych dziennika
Przyjmij następującą sekwencję zdarzeń.
Czas | Zdarzenie |
---|---|
8:00 rano | Utwórz kopię zapasową bazy danych, aby utworzyć pełną kopię zapasową bazy danych. |
Południe | Utwórz kopię zapasową dziennika transakcji. |
16:00 | Utwórz kopię zapasową dziennika transakcji. |
18:00 | Utwórz kopię zapasową bazy danych, aby utworzyć pełną kopię zapasową bazy danych. |
20:00 | Utwórz kopię zapasową dziennika transakcji. |
19:45 | Wystąpił błąd. |
Aby uzyskać wyjaśnienie tej przykładowej sekwencji kopii zapasowych, zobacz kopie zapasowe dziennika transakcji (SQL Server).
Aby przywrócić bazę danych do stanu o godzinie 19:45 (punkt awarii), można użyć jednej z następujących alternatywnych procedur:
Alternatywna 1: Przywracanie bazy danych przy użyciu najnowszej pełnej kopii zapasowej bazy danych
Utwórz kopię zapasową dziennika końcowego logu transakcji aktualnie aktywnego w momencie awarii.
Nie przywracaj pełnej kopii zapasowej bazy danych z godziny 8:00 rano. Zamiast tego przywróć najnowszą pełną kopię zapasową bazy danych z godziny 18:00, a następnie zastosuj kopię zapasową dziennika z godziny 20:00 i końcową kopię zapasową dziennika.
Alternatywa 2: Przywracanie bazy danych przy użyciu wcześniejszej pełnej kopii zapasowej bazy danych
Ten alternatywny proces jest przydatny, jeśli problem uniemożliwia korzystanie z pełnej kopii zapasowej bazy danych z godziny 18:00. Ten proces trwa dłużej niż przywracanie z pełnej kopii zapasowej bazy danych o godzinie 6:00 P.M.
Utwórz kopię zapasową dziennika końcowego aktualnie aktywnego dziennika transakcji jako punktu awarii.
Przywróć pełną kopię zapasową bazy danych o godzinie 8:00, a następnie przywróć wszystkie cztery kopie zapasowe dziennika transakcji w odpowiedniej kolejności. Spowoduje to przekazanie wszystkich zakończonych transakcji do 19:45.
Ta alternatywa wskazuje nadmiarowe zabezpieczenia oferowane przez utrzymywanie łańcucha kopii zapasowych dziennika transakcji w ramach serii pełnych kopii zapasowych bazy danych.
W niektórych przypadkach można również użyć dzienników transakcji, aby przywrócić bazę danych do określonego punktu w czasie. Aby uzyskać więcej informacji, przywrócić bazę danych programu SQL Server do punktu w czasie (model pełnego odzyskiwania).
Powiązane zadania
Aby zastosować kopię zapasową dziennika transakcji
Aby przywrócić do punktu odzyskiwania
przywracanie bazy danych do punktu awarii w ramach modelu pełnego odzyskiwania (Transact-SQL)
SqlRestore (SMO)
Odzyskiwanie powiązanych baz danych zawierających oznaczone transakcje
odzyskiwanie do numeru sekwencji dziennika (SQL Server)
Aby odzyskać bazę danych po przywróceniu kopii zapasowych przy użyciu funkcji WITH NORECOVERY
Zobacz też
Dziennik transakcji (SQL Server)
Architektura Dziennika Transakcji SQL Server i Przewodnik Zarządzania