Udostępnij za pośrednictwem


Przywracanie plików (model pełnego odzyskiwania)

Dotyczy:programu SQL Server

Ten temat dotyczy tylko baz danych, które zawierają wiele plików lub grup plików w ramach pełnego lub zbiorczego modelu odzyskiwania.

W przypadku przywracania pliku celem jest przywrócenie co najmniej jednego uszkodzonego pliku bez przywracania całej bazy danych. Scenariusz przywracania plików składa się z pojedynczej sekwencji przywracania, która kopiuje, przesuwa do przodu i przywraca odpowiednie dane

Jeśli przywracana grupa plików jest odczytywana/zapisywana, po przywróceniu ostatniej kopii zapasowej lub różnicowej kopii zapasowej należy zastosować niezwiązany łańcuch kopii zapasowych dziennika. Przesuwa grupę plików do przodu w stronę bieżących aktywnych rekordów w pliku dziennika. Punkt odzyskiwania jest zazwyczaj zbliżony do końca dziennika, ale niekoniecznie.

Jeśli przywracana grupa plików jest tylko do odczytu, zwykle stosowanie kopii zapasowych dziennika jest niepotrzebne i pomijane. Jeśli kopia zapasowa została wykonana po utworzeniu pliku tylko do odczytu, jest to ostatnia kopia zapasowa do przywrócenia. Przesuwanie naprzód zatrzymuje się w punkcie docelowym.

Scenariusze przywracania plików są następujące:

  • Przywracanie pliku w trybie offline

    W przywracania plików w trybie offlinebaza danych jest w trybie offline podczas przywracania uszkodzonych plików lub grup plików. Na końcu sekwencji przywracania baza danych jest w trybie online.

    Wszystkie wersje programu SQL Server obsługują przywracanie plików w trybie offline.

  • Przywracanie plików w trybie online

    Podczas przywracania plików online , jeśli baza danych jest online w czasie przywracania, pozostaje online w trakcie przywracania plików. Jednak każda grupa plików, w której jest przywracany plik, jest w trybie offline podczas operacji przywracania. Po odzyskaniu wszystkich plików w grupie plików w trybie offline grupa plików zostanie automatycznie przełączona w tryb online.

    Aby uzyskać informacje o obsłudze przywracania stron online i plików, zobacz Editions i obsługiwane funkcje programu SQL Server 2022. Aby uzyskać więcej informacji na temat przywracania w trybie online, zobacz Przywracanie w trybie online (SQL Server).

    Napiwek

    Jeśli baza danych ma być w trybie offline dla przywracania plików, przed rozpoczęciem sekwencji przywracania przejmij bazę danych w tryb offline, wykonując następującą instrukcję ALTER DATABASE: ALTER DATABASE database_name SET OFFLINE.

Przywracanie uszkodzonych plików z kopii zapasowych plików

  1. Przed przywróceniem jednego lub więcej uszkodzonych plików spróbuj utworzyć kopię zapasową dziennika końcowego.

    Jeśli dziennik został uszkodzony, nie można utworzyć kopii zapasowej dziennika końcowego i należy przywrócić całą bazę danych.

    Aby uzyskać informacje na temat tworzenia kopii zapasowej dziennika transakcji, patrz Kopie Zapasowe Dziennika Transakcji (SQL Server).

    Ważny

    W przypadku przywracania pliku w trybie offline należy zawsze wykonać kopię zapasową dziennika końcowego przed przywróceniem pliku. W przypadku przywracania plików online należy zawsze wykonać kopię zapasową dziennika po przywróceniu pliku. Ta kopia zapasowa dziennika jest niezbędna, aby umożliwić odzyskanie pliku do stanu zgodnego z pozostałą częścią bazy danych.

  2. Przywróć każdy uszkodzony plik z najnowszej kopii zapasowej tego pliku.

  3. Przywróć najnowszą kopię zapasową różnicową każdego przywróconego pliku, jeśli taka istnieje.

  4. Przywracanie kopii zapasowych dziennika transakcji w sekwencji, począwszy od kopii zapasowej, która obejmuje najstarsze z przywróconych plików, a kończąc na kopii zapasowej tail-log utworzonej w kroku 1.

    Należy przywrócić kopie zapasowe dziennika transakcji, które zostały utworzone po utworzeniu kopii zapasowych plików, aby przywrócić bazę danych do spójnego stanu. Kopie zapasowe dziennika transakcji można szybko przekazywać, ponieważ są stosowane tylko zmiany, które mają zastosowanie do przywróconych plików. Przywracanie pojedynczych plików może być lepsze niż przywracanie całej bazy danych, ponieważ nieuszkodzone pliki nie są kopiowane, a następnie przekazywane do przodu. Jednak cały łańcuch kopii zapasowych dzienników nadal musi być odczytywany.

  5. Odzyskaj bazę danych.

Notatka

Kopie zapasowe plików mogą służyć do przywracania bazy danych do wcześniejszego punktu w czasie. W tym celu należy przywrócić pełny zestaw kopii zapasowych plików, a następnie przywrócić kopie zapasowe dziennika transakcji w sekwencji, aby uzyskać punkt docelowy, który znajduje się po końcu najnowszej przywróconej kopii zapasowej pliku. Aby uzyskać więcej informacji na temat odzyskiwania punktowego, zobacz Przywracanie bazy danych programu SQL Server do wybranego momentu (pełny model odzyskiwania).

Transact-SQL Sekwencja przywracania pliku w trybie offline (pełny model odzyskiwania danych)

Scenariusz przywracania plików składa się z pojedynczej sekwencji przywracania, która kopiuje, przekazuje do przodu i odzyskuje odpowiednie dane.

W tej sekcji przedstawiono podstawowe opcje RESTORE dla sekwencji przywracania plików. Pominięto składnię i szczegóły, które nie są istotne w tym celu.

Poniższa przykładowa sekwencja przywracania przedstawia przywracanie w trybie offline dwóch plików pomocniczych, A i Bprzy użyciu funkcji WITH NORECOVERY. Następnie zostaną zastosowane dwie kopie zapasowe dziennika przy opcji NORECOVERY, a następnie kopia zapasowa dziennika ogona, i zostanie ona przywrócona przy opcji WITH RECOVERY.

Notatka

Następująca przykładowa sekwencja przywracania rozpoczyna się od przełączeniu pliku w tryb offline, a następnie utworzeniu kopii zapasowej dziennika końcowego.

--Take the file offline.  
ALTER DATABASE database_name MODIFY FILE SET OFFLINE;  
-- Back up the currently active transaction log.  
BACKUP LOG database_name  
   TO <tail_log_backup>  
   WITH NORECOVERY;  
GO   
-- Restore the files.  
RESTORE DATABASE database_name FILE=name   
   FROM <file_backup_of_file_A>   
   WITH NORECOVERY;  
RESTORE DATABASE database_name FILE=<name> ......  
   FROM <file_backup_of_file_B>   
   WITH NORECOVERY;  
-- Restore the log backups.  
RESTORE LOG database_name FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG database_name FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG database_name FROM <tail_log_backup>   
   WITH RECOVERY;  

Przykłady

Powiązane zadania

Aby przywrócić pliki i grupy plików

Zobacz też

tworzenie kopii zapasowych i przywracanie: współdziałanie i współistnienie (SQL Server)
Różnicowe kopie zapasowe (SQL Server)
Pełne kopie zapasowe plików (SQL Server)
Przegląd kopii zapasowych (SQL Server)
Przywracanie i odzyskiwanie (SQL Server) — omówienie
RESTORE (Transact-SQL)
pełne przywracanie bazy danych (prosty model odzyskiwania)
przywracanie częściowe (SQL Server)