Udostępnij za pośrednictwem


Omówienie przywracania i odzyskiwania (SQL Server)

Dotyczy:programu SQL Server

Ten artykuł zawiera omówienie procesu przywracania i odzyskiwania bazy danych dla programu SQL Server.

Przegląd

Aby odzyskać bazę danych programu SQL Server po awarii, administrator bazy danych musi przywrócić zestaw kopii zapasowych programu SQL Server w logicznie poprawnej i znaczącej sekwencji przywracania. Proces przywracania i odzyskiwania programu SQL Server obsługuje przywracanie danych z kopii zapasowych całej bazy danych, pliku danych lub strony danych w następujący sposób:

  • Baza danych (pełne przywracanie bazy danych)

    Cała baza danych jest przywracana i odzyskiwane, a baza danych jest w trybie offline podczas operacji przywracania i odzyskiwania.

  • Plik danych (przywracanie pliku do)

    Plik danych lub zestaw plików są przywracane i odzyskiwane. Podczas przywracania plików grupy plików zawierające pliki są automatycznie w trybie offline podczas przywracania. Każda próba uzyskania dostępu do grupy plików w trybie offline powoduje błąd.

  • Strona danych (przywracanie strony )

    W ramach pełnego modelu odzyskiwania lub modelu odzyskiwania rejestrowanego zbiorczo można przywrócić poszczególne strony. Przywracanie stron można wykonać w dowolnej bazie danych niezależnie od liczby grup plików.

Tworzenie kopii zapasowych i przywracanie programu SQL Server działa we wszystkich obsługiwanych systemach operacyjnych. Aby uzyskać informacje o obsługiwanych systemach operacyjnych, zobacz Wymagania sprzętowe i programowe. Aby uzyskać informacje o obsłudze kopii zapasowych z wcześniejszych wersji programu SQL Server, zobacz sekcję Obsługa Zgodności w RESTORE.

Przywracanie scenariuszy

Scenariusz przywracania w programie SQL Server to proces przywracania danych z co najmniej jednej kopii zapasowej, a następnie odzyskiwania bazy danych. Obsługiwane scenariusze przywracania zależą od modelu odzyskiwania bazy danych i wersji programu SQL Server.

W poniższej tabeli przedstawiono możliwe scenariusze przywracania, które są obsługiwane w przypadku różnych modeli odzyskiwania.

Przywróć scenariusz W ramach prostego modelu odzyskiwania W przypadku modeli przywracania pełnego lub rejestrowanego zbiorczo
Ukończone przywracanie bazy danych Podstawowa strategia przywracania. Pełne przywracanie bazy danych może obejmować po prostu przywrócenie i odzyskanie pełnej kopii zapasowej bazy danych. Alternatywnie pełne przywracanie bazy danych może obejmować przywrócenie pełnej kopii zapasowej bazy danych, a następnie przywrócenie i odzyskanie różnicowej kopii zapasowej.

Aby uzyskać więcej informacji, zobacz Complete Database Restores (Simple Recovery Model).
Podstawowa strategia przywracania. Pełne przywracanie bazy danych obejmuje przywrócenie pełnej kopii zapasowej bazy danych i opcjonalnie różnicową kopię zapasową (jeśli istnieje), a następnie przywrócenie wszystkich kolejnych kopii zapasowych dziennika (w sekwencji). Pełne przywrócenie bazy danych kończy się odzyskaniem i przywróceniem ostatniej kopii zapasowej dziennika (PRZYWRACANIE Z ODZYSKIWANIEM).
Aby uzyskać więcej informacji, zobacz Complete Database Restores (Model pełnego odzyskiwania)
Przywracanie plików 1 Przywróć co najmniej jeden uszkodzony plik tylko do odczytu bez przywracania całej bazy danych. Przywracanie plików jest dostępne tylko wtedy, gdy baza danych ma co najmniej jedną grupę plików tylko do odczytu. Przywraca jeden lub więcej plików bez przywracania całej bazy danych. Przywracanie plików można wykonać, gdy baza danych jest w trybie offline lub w niektórych wersjach programu SQL Server, podczas gdy baza danych pozostaje w trybie online. Podczas przywracania pliku grupy plików zawierające przywracane pliki są zawsze w trybie offline.
Przywracanie strony Nie dotyczy Przywraca co najmniej jedną uszkodzoną stronę. Przywracanie strony można wykonać, gdy baza danych jest w trybie offline lub w niektórych wersjach programu SQL Server, podczas gdy baza danych pozostaje w trybie online. Podczas przywracania strony przywracane strony są zawsze w trybie offline.

Nieprzerwany łańcuch kopii zapasowych dziennika musi być dostępny aż do bieżącego pliku dziennika i wszystkie muszą być zastosowane, aby strona up-tobyła zgodna z aktualnym stanem bieżącego pliku dziennika.
Aby uzyskać więcej informacji, zobacz Restore Pages (SQL Server).
Przywracanie częściowe 1 Przywracanie i odzyskiwanie bazy danych na etapach na poziomie grupy plików, począwszy od podstawowej i wszystkich grup plików odczytu/zapisu, pomocniczych grup plików. Przywracanie i odzyskiwanie bazy danych na etapach na poziomie grupy plików, począwszy od podstawowej grupy plików.

Aby uzyskać więcej informacji, zobacz Przywracanie częściowe (SQL Server)

1 przywracanie online jest obsługiwane tylko w wersji Enterprise.

Kroki przywracania bazy danych

Aby wykonać przywracanie pliku, aparat bazy danych wykonuje dwa kroki:

  • Tworzy wszystkie brakujące pliki bazy danych.

  • Kopiuje dane z urządzeń kopii zapasowych do plików bazy danych.

Aby wykonać przywracanie bazy danych, aparat bazy danych wykonuje trzy kroki:

  • Tworzy pliki dziennika bazy danych i transakcji, jeśli jeszcze nie istnieją.

  • Kopiuje wszystkie strony danych, dziennika i indeksu z nośnika kopii zapasowej bazy danych do plików bazy danych.

  • Zastosowuje dziennik transakcji w procesie odzyskiwania, znanym jako .

Niezależnie od sposobu przywracania danych, zanim będzie można odzyskać bazę danych, aparat bazy danych programu SQL Server gwarantuje, że cała baza danych jest logicznie spójna. Jeśli na przykład przywrócisz plik, nie możesz go odzyskać i przenieść go do trybu online, dopóki nie zostanie on przekazany wystarczająco daleko, aby zapewnić spójność z bazą danych.

Zalety przywracania pliku lub strony

Przywracanie i odzyskiwanie plików lub stron zamiast całej bazy danych zapewnia następujące korzyści:

  • Przywracanie mniejszej ilości danych skraca czas wymagany do skopiowania i odzyskania danych.

  • W programie SQL Server przywracanie plików lub stron może zezwalać innym danym w bazie danych na pozostanie w trybie online podczas operacji przywracania.

Odzyskiwanie i dziennik transakcji

W przypadku większości scenariuszy przywracania należy zastosować kopię zapasową dziennika transakcji i zezwolić aparatowi bazy danych programu SQL Server na uruchomienie procesu odzyskiwania , aby baza danych była w trybie online. Odzyskiwanie to proces wykorzystywany przez SQL Server do uruchomienia każdej bazy danych w stanie spójnym transakcyjnie — lub czystym.

W przypadku przełączenia awaryjnego lub innego niepoprawnego zamknięcia bazy danych mogą pozostawać w stanie, w którym niektóre modyfikacje nigdy nie zostały zapisane z pamięci podręcznej buforu do plików danych, a w plikach danych mogą znajdować się modyfikacje pochodzące z niekompletnych transakcji. Po uruchomieniu wystąpienia programu SQL Server uruchamia odzyskiwanie każdej bazy danych, która składa się z trzech faz na podstawie ostatniego punktu kontrolnego bazy danych :

  • Faza 1 to Faza Analizy, która analizuje dziennik transakcji w celu określenia, jaki jest ostatni punkt kontrolny, i tworzy tabelę brudnych stron (DPT) oraz tabelę aktywnych transakcji (ATT). DPT zawiera rekordy stron, które były zanieczyszczone w momencie zamknięcia bazy danych. Usługa ATT zawiera rekordy transakcji, które były aktywne w czasie, gdy baza danych nie została całkowicie zamknięta.

  • faza 2 to faza ponownej operacji, która przetwarza wszelkie modyfikacje zapisane w dzienniku, które mogły nie zostać zapisane w plikach danych w chwili zamknięcia bazy danych. Minimalny numer sekwencji dziennika (minLSN), wymagany do pomyślnego odzyskania całej bazy danych, znajduje się w DPT i oznacza początek operacji ponownego wykonania wymaganych na wszystkich brudnych stronach. W tej fazie aparat bazy danych programu SQL Server zapisuje na dysku wszystkie zanieczyszczone strony należące do zatwierdzonych transakcji.

  • Faza 3 to Faza Cofania, która wycofuje niekompletne transakcje znalezione w ATT, aby upewnić się, że integralność bazy danych jest zachowana. Po cofnięciu baza danych jest dostępna online i nie można zastosować więcej backupów dziennika transakcji do bazy danych.

Informacje o postępie każdego etapu odzyskiwania bazy danych są rejestrowane w dzienniku błędów programu SQL Server . Postęp odzyskiwania bazy danych można również śledzić przy użyciu zdarzeń rozszerzonych. Aby uzyskać więcej informacji, zobacz wpis w blogu Nowe zdarzenia rozszerzone dotyczące postępu odzyskiwania bazy danych.

Notatka

W scenariuszu częściowego przywracania, jeśli grupa plików tylko do odczytu jest w trybie tylko do odczytu od czasu przed utworzeniem kopii zapasowej pliku, zastosowanie kopii zapasowych dziennika do grupy plików jest pomijane, ponieważ jest niepotrzebne.

Notatka

Aby zmaksymalizować dostępność baz danych w środowisku przedsiębiorstwa po uruchomieniu usługi SQL Server, na przykład po przejściu w tryb failover wystąpienia klastra trybu failover zawsze włączone lub ponownego uruchomienia w miejscu, program SQL Server Enterprise Edition może przenieść bazę danych w tryb online po fazie ponownego wykonania, podczas gdy faza cofania jest nadal uruchamiana. Jest to nazywane szybkim odzyskiwaniem. Jednak szybkie odzyskiwanie nie jest dostępne, gdy baza danych przechodzi do stanu online, ale usługa SQL Server nie została ponownie uruchomiona. Na przykład wykonanie polecenia ALTER DATABASE AdventureWorks SET ONLINE; nie umożliwi bazie danych przejścia w stan zapisu i odczytu aż do ukończenia wszystkich trzech faz odzyskiwania.

Modele odzyskiwania i obsługiwane operacje przywracania

Operacje przywracania dostępne dla bazy danych zależą od modelu odzyskiwania. W poniższej tabeli podsumowano, czy i w jakim zakresie każdy z modeli odzyskiwania obsługuje dany scenariusz przywracania.

Operacja przywracania Model pełnego odzyskiwania Model odzyskiwania rejestrowany zbiorczo Prosty model odzyskiwania
Odzyskiwanie danych Ukończ odzyskiwanie (jeśli dziennik jest dostępny). Pewne ryzyko utraty danych. Wszystkie dane od czasu ostatniej pełnej lub różnicowej kopii zapasowej zostaną utracone.
Przywracanie do punktu w czasie Każdy czas objęty kopiami zapasowymi dziennika. Niedozwolone, jeśli kopia zapasowa dziennika zawiera jakiekolwiek zmiany zarejestrowane zbiorczo. Nie obsługiwane.
Przywracanie plików 1 Pełna obsługa. Niekiedy. 2 Dostępne tylko dla plików pomocniczych do odczytu.
Przywracanie strony 1 Pełna obsługa. Niekiedy. 2 Żaden.
Przywracanie elementu (na poziomie grupy plików) 1 Pełna obsługa. Niekiedy. 2 Dostępne tylko dla plików pomocniczych w trybie tylko do odczytu.

1 dostępne tylko w wersji Enterprise programu SQL Server

2 Aby uzyskać wymagane warunki, zobacz Ograniczenia przywracania w obszarze prostego modelu odzyskiwaniaw dalszej części tego artykułu.

Ważny

Niezależnie od modelu odzyskiwania bazy danych nie można przywrócić kopii zapasowej programu SQL Server do wersji aparatu bazy danych programu SQL Server starszej niż wersja, która utworzyła kopię zapasową.

Przywracanie scenariuszy w ramach prostego modelu odzyskiwania

Prosty model odzyskiwania nakłada następujące ograniczenia dotyczące operacji przywracania:

Jeśli którekolwiek z tych ograniczeń jest nieodpowiednie dla potrzeb związanych z odzyskiwaniem, zalecamy rozważenie użycia pełnego modelu odzyskiwania. Aby uzyskać więcej informacji, zobacz Backup overview (SQL Server).

Ważny

Niezależnie od modelu odzyskiwania bazy danych nie można przywrócić kopii zapasowej programu SQL Server w wersji programu SQL Server starszej niż wersja, która utworzyła kopię zapasową.

Przywracanie w ramach modelu odzyskiwania rejestrowanego zbiorczo

W tej sekcji omówiono zagadnienia dotyczące przywracania, które są unikatowe dla modelu odzyskiwania rejestrowanego zbiorczo, który jest przeznaczony wyłącznie jako uzupełnienie pełnego modelu odzyskiwania.

Notatka

Aby zapoznać się z wprowadzeniem do modelu odzyskiwania rejestrowanego zbiorczo, zobacz dziennik transakcji.

Ogólnie rzecz biorąc, model odzyskiwania rejestrowanego zbiorczo jest podobny do pełnego modelu odzyskiwania, a informacje opisane dla pełnego modelu odzyskiwania dotyczą również obu tych modeli. Jednak odzyskiwanie do punktu w czasie i przywracanie w trybie online mają wpływ na model odzyskiwania rejestrowany zbiorczo.

Ograniczenia dotyczące odzyskiwania do punktu w czasie

Jeśli kopia zapasowa dziennika wykonywana w ramach modelu odzyskiwania z rejestrowaniem zbiorczym zawiera zmiany rejestrowane zbiorczo, odzyskiwanie do punktu w czasie nie jest możliwe. Próba przywrócenia stanu z określonego punktu w czasie na kopii zapasowej dziennika zawierającej zmiany masowe powoduje niepowodzenie operacji przywracania.

Ograniczenia dotyczące przywracania w trybie online

Sekwencja przywracania w trybie online działa tylko wtedy, gdy spełnione są następujące warunki:

  • Wszystkie wymagane kopie zapasowe dzienników muszą zostać wykonane przed rozpoczęciem sekwencji przywracania.

  • Przed rozpoczęciem sekwencji przywracania w trybie online należy wykonać kopie zapasowe zmian zbiorczych.

  • Jeśli w bazie danych istnieją zmiany zbiorcze, wszystkie pliki muszą być online lub niefunkcjonujące (czyli nie są już częścią bazy danych).

Jeśli te warunki nie zostaną spełnione, sekwencja przywracania online zakończy się niepowodzeniem.

Notatka

Zalecamy przejście do pełnego modelu odzyskiwania przed rozpoczęciem przywracania w trybie online. Aby uzyskać więcej informacji, zobacz Recovery models (SQL Server).

Aby uzyskać informacje o sposobie wykonywania przywracania w trybie online, zobacz Przywracanie w trybie online (SQL Server).

Database Recovery Advisor (SQL Server Management Studio)

Doradca odzyskiwania bazy danych ułatwia konstruowanie planów przywracania, które implementują optymalne poprawne sekwencje przywracania. Rozwiązano wiele znanych problemów z przywracaniem bazy danych i ulepszeń żądanych przez klientów. Główne ulepszenia wprowadzone przez doradcę odzyskiwania bazy danych obejmują:

  • algorytm tworzenia planów przywracania: Algorytm używany do konstruowania planów przywracania znacznie się poprawił, zwłaszcza w przypadku złożonych scenariuszy przywracania. Wiele przypadków brzegowych, w tym scenariuszy rozwidlania w przywracaniach do punktu w czasie, jest obsługiwanych wydajniej niż w poprzednich wersjach programu SQL Server.

  • Przywracanie do punktu w czasie: Doradca odzyskiwania bazy danych znacznie upraszcza przywracanie bazy danych do danego punktu w czasie. Oś czasu kopii zapasowych w formie wizualnej znacznie zwiększa obsługę przywracania do określonego punktu w czasie. Ta oś czasu wizualizacji umożliwia zidentyfikowanie możliwego punktu w czasie jako docelowego punktu odzyskiwania na potrzeby przywracania bazy danych. Oś czasu ułatwia przemierzanie rozwidlonej ścieżki odzyskiwania (ścieżki obejmującej rozwidlenia). Dany plan przywracania punktowego automatycznie zawiera kopie zapasowe, które są istotne dla przywracania do docelowego momentu w czasie (data i godzina). Aby uzyskać więcej informacji, zobacz Przywracanie bazy danych SQL Server do określonego punktu w czasie (pełny model odzyskiwania).

Aby uzyskać więcej informacji, zobacz informacje na temat doradcy odzyskiwania bazy danych, zobacz następujące blogi dotyczące możliwości zarządzania programem SQL Server:

Przyspieszone odzyskiwanie bazy danych

przyspieszone odzyskiwanie bazy danych (ADR) jest dostępne począwszy od programu SQL Server 2019 (15.x). ADR jest również dostępne w Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics (tylko dedykowana pula SQL) oraz w bazie danych SQL Microsoft Fabric. Przyspieszone odzyskiwanie bazy danych znacznie poprawia dostępność bazy danych, zwłaszcza w przypadku obecności długotrwałych transakcji, przeprojektując aparat bazy danych programu SQL Server proces odzyskiwania. Baza danych z włączonym trybem ADR znacznie szybciej kończy proces odzyskiwania po awarii lub innym nieoczekiwanym wyłączeniu systemu. Po włączeniu reguły ADR wycofywanie anulowanych długotrwałych transakcji kończy się natychmiast.

Reguły ADR dla bazy danych można włączyć w programie SQL Server 2019 (15.x) i nowszych wersjach przy użyciu następującej składni:

ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;

Notatka

Reguła ADR jest zawsze włączona w usłudze Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics (tylko dedykowana pula SQL) i w bazie danych SQL w usłudze Microsoft Fabric.