Udostępnij za pomocą


Instrukcje RESTORE (Transact-SQL)

Przywraca kopie zapasowe bazy danych SQL wykonane za pomocą polecenia BACKUP .

Wybieranie produktu

W poniższym wierszu wybierz nazwę produktu, którą cię interesuje, i zostanie wyświetlona tylko informacja o tym produkcie.

Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.

* SQL Server *  

 

SQL Server

To polecenie umożliwia wykonanie następujących scenariuszy przywracania:

  • Przywracanie całej bazy danych z pełnej kopii zapasowej bazy danych (pełne przywracanie).
  • Przywracanie części bazy danych (częściowe przywracanie).
  • Przywracanie określonych plików lub grup plików do bazy danych (przywracanie plików).
  • Przywracanie określonych stron do bazy danych (przywracanie strony).
  • Przywracanie dziennika transakcji do bazy danych (przywracanie dziennika transakcji).
  • Przywróć bazę danych do punktu w czasie przechwyconego przez migawkę bazy danych.

Inne zasoby

Składnia

  • Aby uzyskać więcej informacji na temat opisów argumentów, zobacz RESTORE Argumenty.
--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
    [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
   | ,  <general_WITH_options> [ ,...n ]
   | , <replication_WITH_option>
   | , <change_data_capture_WITH_option>
   | , <FILESTREAM_WITH_option>
   | , <service_broker_WITH options>
   | , <point_in_time_WITH_options-RESTORE_DATABASE>
   } [ ,...n ]
 ]
[;]

--To perform the first step of the initial restore sequence of a piecemeal restore:
RESTORE DATABASE { database_name | @database_name_var }
   <files_or_filegroups> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
      PARTIAL, NORECOVERY
      [  , <general_WITH_options> [ ,...n ]
       | , <point_in_time_WITH_options-RESTORE_DATABASE>
      ] [ ,...n ]
[;]

--To Restore Specific Files or Filegroups:
RESTORE DATABASE { database_name | @database_name_var }
   <file_or_filegroup> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
   {
      [ RECOVERY | NORECOVERY ]
      [ , <general_WITH_options> [ ,...n ] ]
   } [ ,...n ]
[;]

--To Restore Specific Pages:
RESTORE DATABASE { database_name | @database_name_var }
   PAGE = 'file:page [ ,...n ]'
 [ , <file_or_filegroups> ] [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
       NORECOVERY
      [ , <general_WITH_options> [ ,...n ] ]
[;]

--To Restore a Transaction Log:
RESTORE LOG { database_name | @database_name_var }
 [ <file_or_filegroup_or_pages> [ ,...n ] ]
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
     [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
    | , <general_WITH_options> [ ,...n ]
    | , <replication_WITH_option>
    | , <point_in_time_WITH_options-RESTORE_LOG>
   } [ ,...n ]
 ]
[;]

--To Revert a Database to a Database Snapshot:
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name

<backup_device>::=
{
   { logical_backup_device_name |
      @logical_backup_device_name_var }
 | { DISK
     | TAPE
     | URL
   } = { 'physical_backup_device_name' |
      @physical_backup_device_name_var }
}

<files_or_filegroups>::=
{
   FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 | READ_WRITE_FILEGROUPS
}

<general_WITH_options> [ ,...n ]::=
--Restore Operation Options
   MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
          [ ,...n ]
 | REPLACE
 | RESTART
 | RESTRICTED_USER | CREDENTIAL

--Backup Set Options
 | FILE = { backup_set_file_number | @backup_set_file_number }
 | PASSWORD = { password | @password_variable }
 | [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]

--Media Set Options
 | MEDIANAME = { media_name | @media_name_variable }
 | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
 | BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
 | { CHECKSUM | NO_CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Monitoring Options
 | STATS [ = percentage ]

--Tape Options.
 | { REWIND | NOREWIND }
 | { UNLOAD | NOUNLOAD }

<replication_WITH_option>::=
 | KEEP_REPLICATION

<change_data_capture_WITH_option>::=
 | KEEP_CDC

<FILESTREAM_WITH_option>::=
 | FILESTREAM ( DIRECTORY_NAME = directory_name )

<service_broker_WITH_options>::=
 | ENABLE_BROKER
 | ERROR_BROKER_CONVERSATIONS
 | NEW_BROKER

<point_in_time_WITH_options-RESTORE_DATABASE>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
   }

<point_in_time_WITH_options-RESTORE_LOG>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
   }

Arguments

Opisy argumentów można znaleźć w temacie RESTORE Arguments (Argumenty PRZYWRACANIA).

Informacje o scenariuszach przywracania

Program SQL Server obsługuje różne scenariusze przywracania:

Jeśli przywracanie w trybie online jest obsługiwane, jeśli baza danych jest w trybie online, przywracanie plików i przywracanie stron są automatycznie przywracane w trybie online, a także przywracania pomocniczej grupy plików po początkowym etapie przywracania częściowego.

Uwaga / Notatka

Przywracanie w trybie online może obejmować odroczone transakcje.

Aby uzyskać więcej informacji, zobacz Przywracanie w trybie online.

Dodatkowe zagadnienia dotyczące opcji PRZYWRACANIA

Nieobsługiwane słowa kluczowe RESTORE

Następujące słowa kluczowe zostały wycofane w programie SQL Server 2008 (10.0.x):

Przerwane słowo kluczowe Zastępuje... Przykład słowa kluczowego zastępczego
ŁADUNEK RESTORE RESTORE DATABASE
TRANSAKCJA DZIENNIK RESTORE LOG
DBO_ONLY RESTRICTED_USER RESTORE DATABASE ... WITH RESTRICTED_USER

PRZYWRACANIE DZIENNIKA

DZIENNIK PRZYWRACANIA może zawierać listę plików, aby umożliwić tworzenie plików podczas wycofywania. Jest to używane, gdy kopia zapasowa dziennika zawiera rekordy dziennika zapisane podczas dodawania pliku do bazy danych.

Uwaga / Notatka

W przypadku bazy danych korzystającej z pełnego lub zarejestrowanego zbiorczo modelu odzyskiwania należy utworzyć kopię zapasową końca dziennika przed przywróceniem bazy danych. Przywrócenie bazy danych bez uprzedniego utworzenia kopii zapasowej w dzienniku powoduje wystąpienie błędu, chyba że instrukcja RESTORE DATABASE zawiera klauzulę WITH REPLACE lub WITH STOPAT, która musi określać czas lub transakcję, która wystąpiła po zakończeniu tworzenia kopii zapasowej danych. Aby uzyskać więcej informacji na temat kopii zapasowych dziennika końcowego, zobacz Tail-Log Backups (Kopie zapasowe).

Porównanie ODZYSKIWANIA i NORECOVERY

Wycofywanie jest kontrolowane przez instrukcję RESTORE za pomocą polecenia [ RECOVERY | NORECOVERY ] opcje:

  • NORECOVERY określa, że wycofywanie nie występuje. Dzięki temu pakiet rollforward może kontynuować kolejną instrukcję w sekwencji.

    W takim przypadku sekwencja przywracania może przywrócić inne kopie zapasowe i przekazać je do przodu.

  • ODZYSKIWANIE (ustawienie domyślne) wskazuje, że wycofanie powinno być wykonywane po zakończeniu wycofywania dla bieżącej kopii zapasowej. Nie można przywrócić żadnych dalszych kopii zapasowych. Wybierz tę opcję po przywróceniu wszystkich niezbędnych kopii zapasowych.

    Odzyskanie bazy danych wymaga, aby cały zestaw przywracanych danych ( zestaw rollforward) był spójny z bazą danych. Jeśli zestaw rollforward nie został wycofany wystarczająco daleko, aby zapewnić spójność z bazą danych i określono odzyskiwanie, aparat bazy danych zgłasza błąd. Aby uzyskać więcej informacji na temat procesu odzyskiwania, zobacz Przywracanie i odzyskiwanie — omówienie (SQL Server).

Obsługa zgodności

Nie można przywrócić kopii zapasowych masterprogramu i modelmsdb utworzonych przy użyciu starszej wersji programu SQL Server przez program SQL Server.

Uwaga / Notatka

Nie można przywrócić kopii zapasowej programu SQL Server do starszej wersji programu SQL Server niż wersja, na której utworzono kopię zapasową.

Każda wersja programu SQL Server używa innej ścieżki domyślnej niż wcześniejsze wersje. W związku z tym, aby przywrócić bazę danych utworzoną w domyślnej lokalizacji dla kopii zapasowych wcześniejszych wersji, należy użyć opcji MOVE. Aby uzyskać informacje o nowej ścieżce domyślnej, zobacz Lokalizacje plików dla domyślnych i nazwanych wystąpień programu SQL Server.

Po przywróceniu wcześniejszej wersji bazy danych do programu SQL Server baza danych zostanie automatycznie uaktualniona. Zazwyczaj baza danych staje się dostępna natychmiast. Jeśli jednak baza danych programu SQL Server 2005 (9.x) zawiera indeksy pełnotekstowe, proces uaktualniania importuje, resetuje lub ponownie kompiluje je, w zależności od ustawienia właściwości serwera upgrade_option . Jeśli opcja uaktualnienia zostanie ustawiona na import (upgrade_option = 2) lub skompiluj (upgrade_option = 0), indeksy pełnotekstowe będą niedostępne podczas uaktualniania. W zależności od ilości indeksowanych danych importowanie może potrwać kilka godzin, a ponowne kompilowanie może potrwać do dziesięciu razy dłużej. Należy również pamiętać, że po ustawieniu opcji uaktualnienia na import skojarzone indeksy pełnotekstowe zostaną ponownie skompilowane, jeśli wykaz pełnotekstowy jest niedostępny. Aby zmienić ustawienie właściwości serwera upgrade_option , użyj sp_fulltext_service.

Gdy baza danych jest najpierw dołączona lub przywrócona do nowego wystąpienia programu SQL Server, kopia klucza głównego bazy danych (zaszyfrowana za pomocą klucza głównego usługi) nie jest jeszcze przechowywana na serwerze. Należy użyć instrukcji OPEN MASTER KEY , aby odszyfrować klucz główny bazy danych (DMK). Po odszyfrowaniu klucza DMK można włączyć automatyczne odszyfrowywanie w przyszłości przy użyciu instrukcji ALTER MASTER KEY REGENERATE w celu aprowizacji serwera z kopią klucza DMK zaszyfrowanego przy użyciu klucza głównego usługi (SMK). Gdy baza danych została uaktualniona z wcześniejszej wersji, klucz DMK powinien zostać wygenerowany ponownie, aby użyć nowszego algorytmu AES. Aby uzyskać więcej informacji na temat ponownego generowania zestawu DMK, zobacz ALTER MASTER KEY (ALTER MASTER KEY). Czas wymagany do ponownego wygenerowania klucza DMK do uaktualnienia do usługi AES zależy od liczby obiektów chronionych przez klucz DMK. Ponowne generowanie klucza DMK w celu uaktualnienia do AES jest konieczne tylko raz i nie ma wpływu na przyszłe ponowne generowanie w ramach strategii rotacji kluczy.

Uwagi

Jeśli określona baza danych jest używana podczas przywracania w trybie offline, funkcja RESTORE wymusza wyłączenie użytkowników po krótkim opóźnieniu. W przypadku przywracania w trybie online grupy plików innej niż podstawowa baza danych może pozostać w użyciu, z wyjątkiem sytuacji, gdy przywracana grupa plików jest wykonywana w trybie offline. Wszystkie dane w określonej bazie danych są zastępowane przez przywrócone dane.

Operacje przywracania międzyplatformowe, nawet między różnymi typami procesorów, można wykonać tak długo, jak sortowanie bazy danych jest obsługiwane przez system operacyjny.

Przywracanie można uruchomić ponownie po wystąpieniu błędu. Ponadto możesz poinstruować przywracanie, aby kontynuować pomimo błędów i przywraca jak najwięcej danych (zobacz CONTINUE_AFTER_ERROR opcję).

Funkcja RESTORE nie jest dozwolona w jawnej lub niejawnej transakcji.

Przywracanie uszkodzonej master bazy danych jest wykonywane przy użyciu specjalnej procedury. Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowych i przywracanie systemowych baz danych.

Przywracanie bazy danych usuwa pamięć podręczną planu dla przywracanej bazy danych. Wyczyszczenie pamięci podręcznej planu powoduje ponowne skompilowanie wszystkich kolejnych planów wykonywania i może spowodować nagłe, tymczasowe obniżenie wydajności zapytań.

Aby przywrócić bazę danych dostępności, najpierw przywróć bazę danych do wystąpienia programu SQL Server, a następnie dodaj bazę danych do grupy dostępności.

Zintegrowane przyspieszanie i odciążanie na potrzeby kompresji i dekompresji kopii zapasowych

Program SQL Server 2022 (16.x) wprowadza ALGORITHMmetodę , która identyfikuje algorytm kompresji dla operacji. Aby uzyskać więcej informacji, zobacz Kompresja kopii zapasowej.

Aby uzyskać więcej informacji, zobacz Operacje przywracania

Przywracanie z adresu URL

Adres URL jest formatem używanym do określania lokalizacji i nazwy pliku dla magazynu obiektów zgodnego z usługą Microsoft Azure Blob Storage lub S3. Chociaż usługa Azure Blob Storage jest usługą, implementacja jest podobna do dysków i taśm, aby zapewnić spójne i bezproblemowe środowisko przywracania dla wszystkich urządzeń.

Współdziałanie

Ustawienia bazy danych i przywracanie

Podczas przywracania większość opcji bazy danych, które można ustawić przy użyciu alter DATABASE, są resetowane do wartości w życie w momencie zakończenia tworzenia kopii zapasowej.

Jednak użycie opcji WITH RESTRICTED_USER zastępuje to zachowanie dla ustawienia opcji dostępu użytkownika. To ustawienie jest zawsze ustawiane zgodnie z instrukcją RESTORE, która zawiera opcję WITH RESTRICTED_USER.

Przywracanie zaszyfrowanej bazy danych

Aby przywrócić zaszyfrowaną bazę danych, musisz mieć dostęp do certyfikatu lub klucza asymetrycznego, który został użyty do szyfrowania bazy danych. Bez certyfikatu lub klucza asymetrycznego nie można przywrócić bazy danych. W związku z tym certyfikat używany do szyfrowania klucza szyfrowania bazy danych musi być zachowywany tak długo, jak jest to konieczne. Aby uzyskać więcej informacji, zobacz Certyfikaty programu SQL Server i klucze asymetryczne.

Przywracanie bazy danych włączonej dla magazynu vardecimal

Tworzenie kopii zapasowej i przywracanie działa poprawnie w formacie magazynu vardecimal . Aby uzyskać więcej informacji na temat formatu magazynu vardecimal , zobacz sp_db_vardecimal_storage_format.

Przywracanie danych pełnotekstowych

Dane pełnotekstowe są przywracane wraz z innymi danymi bazy danych podczas pełnego przywracania. Korzystając ze standardowej RESTORE DATABASE database_name FROM backup_device składni, pliki pełnotekstowe są przywracane w ramach przywracania pliku bazy danych.

Instrukcję RESTORE można również użyć do wykonywania przywracania do alternatywnych lokalizacji, przywracania różnicowego, przywracania plików i grup plików oraz przywracania plików różnicowych plików i plików oraz przywracania grup plików i danych pełnotekstowych. Ponadto funkcja RESTORE może przywracać tylko pliki pełnotekstowe, a także dane bazy danych.

Uwaga / Notatka

Wykazy pełnotekstowe importowane z programu SQL Server 2005 (9.x) są nadal traktowane jako pliki bazy danych. W tym przypadku procedura programu SQL Server 2005 (9.x) tworzenia kopii zapasowych wykazów pełnotekstowych pozostaje odpowiednia, z wyjątkiem tego, że wstrzymanie i wznawianie operacji tworzenia kopii zapasowej nie jest już konieczne. Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowych i przywracanie katalogów Full-Text.

Przywracanie do programu SQL Server 2022 i funkcji automatycznego upuszczania

Podczas przywracania bazy danych do programu SQL Server 2022 (16.x) z poprzedniej wersji zaleca się wykonanie sp_updatestats w bazie danych odpowiednich metadanych dla funkcji automatycznego upuszczania statystyk. Aby uzyskać więcej informacji, zobacz opcję automatycznego upuszczania statystyk.

Klastry danych big data programu SQL Server

Niektóre operacje, w tym konfigurowanie ustawień serwera (poziom wystąpienia) lub ręczne dodawanie bazy danych do grupy dostępności, wymagają połączenia z wystąpieniem programu SQL Server. Operacje takie jak sp_configure, RESTORE DATABASElub dowolne polecenie DDL w bazie danych należącej do grupy dostępności wymagają połączenia z wystąpieniem programu SQL Server. Domyślnie klaster danych big data nie zawiera punktu końcowego, który umożliwia połączenie z wystąpieniem. Ten punkt końcowy należy uwidocznić ręcznie.

Aby uzyskać instrukcje, zobacz Nawiązywanie połączenia z bazami danych w repliki podstawowej.

Metadane

Program SQL Server zawiera tabele historii tworzenia kopii zapasowych i przywracania, które śledzą aktywność tworzenia kopii zapasowych i przywracania dla każdego wystąpienia serwera. Po wykonaniu przywracania tabele historii kopii zapasowych również są modyfikowane. Aby uzyskać informacje na temat tych tabel, zobacz Historia kopii zapasowych i Informacje o nagłówku.

Wpływ opcji REPLACE

Zastąp należy używać rzadko i dopiero po starannym rozważeniu. Przywracanie zwykle uniemożliwia przypadkowe zastąpienie bazy danych inną bazą danych. Jeśli baza danych określona w instrukcji RESTORE już istnieje na bieżącym serwerze, a określony identyfikator GUID rodziny baz danych różni się od identyfikatora GUID rodziny baz danych zarejestrowanego w zestawie kopii zapasowych, baza danych nie zostanie przywrócona. Jest to ważne zabezpieczenie.

Opcja REPLACE zastępuje kilka ważnych kontroli bezpieczeństwa, które przywracają normalnie. Przesłonięte kontrole są następujące:

  • Przywracanie istniejącej bazy danych przy użyciu kopii zapasowej innej bazy danych.

    Opcja REPLACE umożliwia zastąpienie istniejącej bazy danych dowolną bazą danych w zestawie kopii zapasowych, nawet jeśli określona nazwa bazy danych różni się od nazwy bazy danych zarejestrowanej w zestawie kopii zapasowych. Może to spowodować przypadkowe zastąpienie bazy danych przez inną bazę danych.

  • Przywracanie bazy danych przy użyciu pełnego lub zarejestrowanego zbiorczo modelu odzyskiwania, w którym nie wykonano kopii zapasowej dziennika końcowego i STOPAT opcja nie jest używana.

    Za pomocą opcji REPLACE możesz utracić zatwierdzoną pracę, ponieważ ostatnio zapisany dziennik nie został utworzony.

  • Zastępowanie istniejących plików.

    Na przykład błąd może zezwalać na zastępowanie plików niewłaściwego typu, takich jak pliki .xls lub które są używane przez inną bazę danych, która nie jest w trybie online. Dowolna utrata danych jest możliwa, jeśli istniejące pliki są zastępowane, chociaż przywrócona baza danych została ukończona.

Wykonaj ponownie przywracanie

Cofanie efektów przywracania nie jest możliwe; można jednak negować skutki kopiowania i przerzucania danych, zaczynając od poszczególnych plików. Aby rozpocząć od nowa, przywróć żądany plik i ponownie wykonaj przerzucanie. Jeśli na przykład przypadkowo przywrócono zbyt wiele kopii zapasowych dziennika i przesuniesz zamierzony punkt zatrzymania, konieczne będzie ponowne uruchomienie sekwencji.

Sekwencja przywracania może zostać przerwana i ponownie uruchomiona przez przywrócenie całej zawartości plików, których dotyczy problem.

Przywracanie bazy danych do migawki bazy danych

Operacja przywracania bazy danych (określona przy użyciu opcji DATABASE_SNAPSHOT) pobiera pełną źródłową bazę danych z powrotem w czasie, przywracając ją do czasu migawki bazy danych, czyli zastępowania źródłowej bazy danych danymi z punktu w czasie przechowywanego w określonej migawki bazy danych. Obecnie może istnieć tylko migawka, do której jest przywracana. Operacja przywracania następnie ponownie kompiluje dziennik (w związku z tym nie można później przekazać przywróconej bazy danych do punktu błędu użytkownika).

Utrata danych jest ograniczona do aktualizacji bazy danych od momentu utworzenia migawki. Metadane przywróconej bazy danych są takie same jak metadane podczas tworzenia migawki. Jednak przywrócenie migawki usuwa wszystkie katalogi pełnotekstowe.

Przywracanie z migawki bazy danych nie jest przeznaczone do odzyskiwania multimediów. W przeciwieństwie do zwykłego zestawu kopii zapasowych migawka bazy danych jest niekompletną kopią plików bazy danych. Jeśli baza danych lub migawka bazy danych jest uszkodzona, przywrócenie migawki może być niemożliwe. Ponadto, nawet jeśli to możliwe, przywrócenie w przypadku uszkodzenia jest mało prawdopodobne, aby rozwiązać problem.

Ograniczenia dotyczące przywracania

Przywracanie jest nieobsługiwane w następujących warunkach:

  • Źródłowa baza danych zawiera wszystkie grupy plików tylko do odczytu lub skompresowane.
  • Wszystkie pliki są w trybie offline, które były w trybie online podczas tworzenia migawki.
  • Obecnie istnieje więcej niż jedna migawka bazy danych.

Aby uzyskać więcej informacji, zobacz Przywracanie bazy danych do migawki bazy danych.

Zabezpieczenia

Operacja tworzenia kopii zapasowej może opcjonalnie określać hasła dla zestawu multimediów, zestawu kopii zapasowych lub obu tych elementów. Jeśli hasło zostało zdefiniowane w zestawie nośników lub zestawie kopii zapasowych, należy określić poprawne hasło lub hasła w instrukcji RESTORE. Te hasła uniemożliwiają nieautoryzowane operacje przywracania i nieautoryzowane dołączanie zestawów kopii zapasowych do nośnika przy użyciu narzędzi programu SQL Server. Nośnik chroniony hasłem można jednak zastąpić opcją FORMAT instrukcji BACKUP.

Ważne

Ochrona zapewniana przez to hasło jest słaba. Ma to na celu zapobieganie nieprawidłowemu przywracaniu przy użyciu narzędzi programu SQL Server przez autoryzowanych lub nieautoryzowanych użytkowników. Nie uniemożliwia odczytywania danych kopii zapasowej za pomocą innych środków ani zastępowania hasła. Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Najlepszym rozwiązaniem w zakresie ochrony kopii zapasowych jest przechowywanie taśm kopii zapasowych w bezpiecznej lokalizacji lub tworzenie kopii zapasowych plików dysków chronionych przez odpowiednie listy kontroli dostępu (ACL). Listy ACL powinny być ustawione w katalogu głównym, w którym są tworzone kopie zapasowe.

Permissions

Jeśli przywracana baza danych nie istnieje, użytkownik musi mieć CREATE DATABASE uprawnienia, aby móc wykonać funkcję RESTORE. Jeśli baza danych istnieje, uprawnienia RESTORE domyślnie do członków sysadmin i stałych ról serwera oraz dbcreator właściciela () bazy danych (dbodla FROM DATABASE_SNAPSHOT opcji baza danych zawsze istnieje).

Uprawnienia RESTORE są przekazywane do ról, w których informacje o członkostwie są zawsze łatwo dostępne dla serwera. Ponieważ stałe członkostwo w roli bazy danych można sprawdzić tylko wtedy, gdy baza danych jest dostępna i nieuszkodzony, co nie zawsze ma przypadek wykonywania przywracania, członkowie db_owner stałej roli bazy danych nie mają uprawnień RESTORE.

Przykłady

We wszystkich przykładach przyjęto założenie, że została wykonana pełna kopia zapasowa bazy danych.

Przykłady przywracania obejmują następujące elementy:

Uwaga / Notatka

Aby zapoznać się z dodatkowymi przykładami, zobacz tematy z instrukcjami dotyczącymi przywracania, które są wymienione w temacie Przywracanie i odzyskiwanie — omówienie.

A. Przywracanie pełnej bazy danych

Poniższy przykład przywraca pełną kopię zapasową bazy danych z logicznego AdventureWorksBackups urządzenia kopii zapasowej. Aby zapoznać się z przykładem tworzenia tego urządzenia, zobacz Tworzenie kopii zapasowych urządzeń.

RESTORE DATABASE AdventureWorks2022
  FROM AdventureWorks2022Backups;

Uwaga / Notatka

W przypadku bazy danych korzystającej z pełnego lub zarejestrowanego zbiorczo modelu odzyskiwania program SQL Server wymaga w większości przypadków utworzenia kopii zapasowej końca dziennika przed przywróceniem bazy danych. Aby uzyskać więcej informacji, zobacz Tail-Log Backups (Kopie zapasowe).

[Najważniejsze przykłady]

B. Przywracanie pełnych i różnicowych kopii zapasowych bazy danych

Poniższy przykład przywraca pełną kopię zapasową bazy danych, a następnie różnicową kopię zapasową z Z:\SQLServerBackups\AdventureWorks2022.bak urządzenia kopii zapasowej, która zawiera obie kopie zapasowe. Pełna kopia zapasowa bazy danych do przywrócenia to szósty zestaw kopii zapasowych na urządzeniu (FILE = 6), a różnicowa kopia zapasowa bazy danych to dziewiąty zestaw kopii zapasowych na urządzeniu (FILE = 9). Po odzyskaniu różnicowej kopii zapasowej baza danych zostanie odzyskana.

RESTORE DATABASE AdventureWorks2022
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
    WITH FILE = 6,
      NORECOVERY;
RESTORE DATABASE AdventureWorks2022
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
    WITH FILE = 9,
      RECOVERY;

[Najważniejsze przykłady]

C. Przywracanie bazy danych przy użyciu składni RESTART

W poniższym przykładzie użyto RESTART opcji ponownego RESTORE uruchomienia operacji przerwanej przez awarię zasilania serwera.

-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups;
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups WITH RESTART;

[Najważniejsze przykłady]

D. Przywracanie bazy danych i przenoszenie plików

Poniższy przykład przywraca pełną bazę danych i dziennik transakcji i przenosi przywróconą bazę danych do C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data katalogu.

RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups
    WITH NORECOVERY,
      MOVE 'AdventureWorks2022_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
      MOVE 'AdventureWorks2022_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH RECOVERY;

[Najważniejsze przykłady]

E. Kopiowanie bazy danych przy użyciu funkcji BACKUP i RESTORE

W poniższym przykładzie użyto instrukcji BACKUP i RESTORE do utworzenia kopii AdventureWorks2025 bazy danych. Instrukcja MOVE powoduje przywrócenie danych i pliku dziennika do określonych lokalizacji. Instrukcja RESTORE FILELISTONLY służy do określania liczby i nazw plików w przywracanej bazie danych. Nowa kopia bazy danych nosi nazwę TestDB. Aby uzyskać więcej informacji, zobacz PRZYWRACANIE PLIKULISTONLY.

BACKUP DATABASE AdventureWorks2022
    TO AdventureWorksBackups ;

RESTORE FILELISTONLY
    FROM AdventureWorksBackups ;

RESTORE DATABASE TestDB
    FROM AdventureWorksBackups
    WITH MOVE 'AdventureWorks2022_Data' TO 'C:\MySQLServer\testdb.mdf',
    MOVE 'AdventureWorks2022_Log' TO 'C:\MySQLServer\testdb.ldf';
GO

[Najważniejsze przykłady]

F. Przywracanie do punktu w czasie przy użyciu opcji STOPAT

Poniższy przykład przywraca bazę danych do stanu włączonego 12:00 AMApril 15, 2020 i pokazuje operację przywracania, która obejmuje wiele kopii zapasowych dziennika. Na urządzeniu kopii zapasowej pełna kopia zapasowa bazy danych, która ma zostać przywrócona, AdventureWorksBackupsjest trzecim zestawem kopii zapasowych na urządzeniu (FILE = 3), pierwszą kopią zapasową dziennika jest czwarty zestaw kopii zapasowych (FILE = 4), a druga kopia zapasowa dziennika to piąty zestaw kopii zapasowych (FILE = 5).

RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 3, NORECOVERY;

RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';

RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2022 WITH RECOVERY;

[Najważniejsze przykłady]

G. Przywracanie dziennika transakcji do znacznika

Poniższy przykład przywraca dziennik transakcji do znacznika w oznaczonej transakcji o nazwie ListPriceUpdate.

USE AdventureWorks2022;
GO
BEGIN TRANSACTION ListPriceUpdate
    WITH MARK 'UPDATE Product list prices';
GO

UPDATE Production.Product
    SET ListPrice = ListPrice * 1.10
    WHERE ProductNumber LIKE 'BK-%';
GO

COMMIT TRANSACTION ListPriceUpdate;
GO

-- Time passes. Regular database
-- and log backups are taken.
-- An error occurs in the database.
USE master;
GO

RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
GO

RESTORE LOG AdventureWorks2022
  FROM AdventureWorksBackups
    WITH FILE = 4,
    RECOVERY,
    STOPATMARK = 'UPDATE Product list prices';

[Najważniejsze przykłady]

H. Przywracanie przy użyciu składni TAŚMy

Poniższy przykład przywraca pełną kopię zapasową bazy danych z urządzenia kopii zapasowej TAPE .

RESTORE DATABASE AdventureWorks2022
    FROM TAPE = '\\.\tape0';

[Najważniejsze przykłady]

I. Przywracanie przy użyciu składni FILE i FILEGROUP

Poniższy przykład przywraca bazę danych o nazwie MyDatabase , która zawiera dwa pliki, jedną pomocniczą grupę plików i jeden dziennik transakcji. Baza danych używa pełnego modelu odzyskiwania.

Kopia zapasowa bazy danych to dziewiąty zestaw kopii zapasowych w nośniku ustawionym na urządzeniu logicznym kopii zapasowej o nazwie MyDatabaseBackups. Następnie trzy kopie zapasowe dziennika, które znajdują się w następnych trzech zestawach kopii zapasowych (, i ) na urządzeniu10, zostaną przywrócone przy użyciu polecenia 11.12MyDatabaseBackupsWITH NORECOVERY Po przywróceniu ostatniej kopii zapasowej dziennika za pomocą NORECOVERYpolecenia baza danych zostanie odzyskana.

Uwaga / Notatka

Odzyskiwanie jest wykonywane jako oddzielny krok, aby zmniejszyć prawdopodobieństwo odzyskania zbyt wcześnie, zanim wszystkie kopie zapasowe dziennika zostaną przywrócone. Aby uzyskać więcej informacji na temat procesu odzyskiwania, zobacz Przywracanie i odzyskiwanie — omówienie (SQL Server).

W pliku RESTORE DATABASEzwróć uwagę, że istnieją dwa typy FILE opcji. Opcje FILE poprzedzające nazwę urządzenia kopii zapasowej określają nazwy plików logicznych plików bazy danych, które mają zostać przywrócone z zestawu kopii zapasowych, na przykład FILE = 'MyDatabase_data_1'. Ten zestaw kopii zapasowych nie jest pierwszą kopią zapasową bazy danych w zestawie multimediów; w związku z tym jego pozycja w zestawie multimediów jest wskazywana przy użyciu FILE opcji w klauzuli WITHFILE = 9 .

RESTORE DATABASE MyDatabase
    FILE = 'MyDatabase_data_1',
    FILE = 'MyDatabase_data_2',
    FILEGROUP = 'new_customers'
    FROM MyDatabaseBackups
    WITH
      FILE = 9,
      NORECOVERY;
GO
-- Restore the log backups
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 10,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 11,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 12,
      NORECOVERY;
GO
--Recover the database
RESTORE DATABASE MyDatabase WITH RECOVERY;
GO

[Najważniejsze przykłady]

J. Przywracanie z migawki bazy danych

Poniższy przykład przywraca bazę danych do migawki bazy danych. W przykładzie przyjęto założenie, że w bazie danych istnieje obecnie tylko jedna migawka. Aby zapoznać się z przykładem tworzenia tej migawki bazy danych, zobacz Tworzenie migawki bazy danych.

Uwaga / Notatka

Przywracanie do migawki usuwa wszystkie wykazy pełnotekstowe.

USE master;
RESTORE DATABASE AdventureWorks2022 FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';
GO

Aby uzyskać więcej informacji, zobacz Przywracanie bazy danych do migawki bazy danych.

[Najważniejsze przykłady]

K. Przywracanie z usługi Microsoft Azure Blob Storage

W trzech poniższych przykładach przedstawiono użycie usługi Microsoft Azure Storage. Nazwa konta magazynu to mystorageaccount. Kontener plików danych nosi nazwę myfirstcontainer. Kontener plików kopii zapasowych nosi nazwę mysecondcontainer. Zasady dostępu przechowywanego zostały utworzone z uprawnieniami do odczytu, zapisu, usuwania i listy dla każdego kontenera. Poświadczenia programu SQL Server zostały utworzone przy użyciu sygnatur dostępu współdzielonego skojarzonych z zapisanymi zasadami dostępu. Aby uzyskać informacje specyficzne dla tworzenia kopii zapasowych i przywracania programu SQL Server za pomocą usługi Microsoft Azure Blob Storage, zobacz Tworzenie kopii zapasowych i przywracanie programu SQL Server za pomocą usługi Microsoft Azure Blob Storage.

K1. Przywracanie pełnej kopii zapasowej bazy danych z usługi Microsoft Azure Storage
Pełna kopia zapasowa bazy danych znajdująca się w mysecondcontainerlokalizacji , zostanie przywrócona Sales do myfirstcontainer. Sales obecnie nie istnieje na serwerze.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

K2. Przywracanie pełnej kopii zapasowej bazy danych z usługi Microsoft Azure Storage do magazynu lokalnego Pełna kopia zapasowa bazy danych znajdująca się w mysecondcontainerlokalizacji , zostanie przywrócona Sales do magazynu lokalnego. Sales obecnie nie istnieje na serwerze.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'H:\DATA\Sales_Data1.mdf',
  MOVE 'Sales_log' to 'O:\LOG\Sales_log.ldf',
  STATS = 10;

K3. Przywracanie pełnej kopii zapasowej bazy danych z magazynu lokalnego do usługi Microsoft Azure Storage

RESTORE DATABASE Sales
  FROM DISK = 'E:\BAK\Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

L. Przywracanie z kopii zapasowej migawki

Wprowadzono w programie SQL Server 2022 (16.x). Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowej migawki Transact-SQL.

L1. Przywracanie pełnej kopii zapasowej

RESTORE DATABASE Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
  WITH METADATA_ONLY;

L2. Przywracanie kopii zapasowej i stosowanie dziennika transakcji

RESTORE DATABASE Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
  WITH METADATA_ONLY,
  NORECOVERY;

RESTORE LOG Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesLog.trn'
  WITH RECOVERY;

L3. Przywracanie z kopii zapasowej migawki i umieść pliki bazy danych i dziennika w nowej lokalizacji

RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY,
    MOVE Sales_Data TO 'D:\MSSQL\Sales.mdf',
    MOVE Sales_Log TO 'D:\MSSQL\Sales_log.ldf';

[Najważniejsze przykłady]

Dalsze kroki

* Zarządzana instancja SQL *

 

Azure SQL Managed Instance

To polecenie umożliwia przywrócenie całej bazy danych z pełnej kopii zapasowej bazy danych (pełne przywracanie) z konta usługi Azure Blob Storage.

Aby uzyskać inne obsługiwane polecenia RESTORE, zobacz:

Ważne

Aby przywrócić z automatycznych kopii zapasowych usługi SQL Managed Instance, zobacz Przywracanie bazy danych SQL.

Składnia

--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 FROM URL = { 'physical_device_name' | @physical_device_name_var } [ ,...n ]
[;]

Arguments

DATABASE

Określa docelową bazę danych.

OD ADRESU URL

Określa co najmniej jedno urządzenie kopii zapasowej umieszczone na adresach URL, które będą używane do operacji przywracania. Format adresu URL służy do przywracania kopii zapasowych z usługi Microsoft Azure Storage.

Ważne

Aby przywrócić z wielu urządzeń podczas przywracania z adresu URL, należy użyć tokenów sygnatury dostępu współdzielonego (SAS). Przykłady tworzenia sygnatury dostępu współdzielonego można znaleźć w temacie Tworzenie kopii zapasowej programu SQL Server pod adresem URL i upraszczanie tworzenia poświadczeń SQL przy użyciu tokenów sygnatury dostępu współdzielonego (SAS) w usłudze Azure Storage przy użyciu programu PowerShell.

n Jest symbolem zastępczym wskazującym, że na liście rozdzielanej przecinkami można określić maksymalnie 64 urządzenia kopii zapasowej.

Uwagi

W ramach wymagań wstępnych należy utworzyć poświadczenie o nazwie zgodnej z adresem URL konta magazynu obiektów blob, a sygnatura dostępu współdzielonego umieszczona jako wpis tajny. Polecenie RESTORE wyszuka poświadczenia przy użyciu adresu URL magazynu obiektów blob, aby znaleźć informacje wymagane do odczytania urządzenia kopii zapasowej.

Operacja RESTORE jest asynchroniczna — przywracanie jest kontynuowane nawet w przypadku przerwania połączenia klienta. Jeśli połączenie zostanie przerwane, możesz sprawdzić widok sys.dm_operation_status pod kątem stanu operacji przywracania (a także dla bazy danych CREATE i DROP).

Następujące opcje bazy danych są ustawiane/zastępowane i nie można ich później zmienić:

  • NEW_BROKER (jeśli broker nie jest włączony w pliku .bak)
  • ENABLE_BROKER (jeśli broker nie jest włączony w pliku .bak)
  • AUTO_CLOSE=OFF (jeśli baza danych w pliku .bak ma AUTO_CLOSE=ON)
  • ODZYSKIWANIE PEŁNE (jeśli baza danych w pliku .bak ma model SIMPLE lub BULK_LOGGED recovery)
  • Grupa plików zoptymalizowana pod kątem pamięci jest dodawana i nazywana XTP, jeśli nie znajduje się w pliku źródłowym .bak. Każda istniejąca grupa plików zoptymalizowana pod kątem pamięci została zmieniona na XTP
  • Opcje SINGLE_USER i RESTRICTED_USER są konwertowane na MULTI_USER

Ograniczenia — SQL Managed Instance

Obowiązują następujące ograniczenia:

  • . Nie można przywrócić plików BAK zawierających wiele zestawów kopii zapasowych.
  • . Nie można przywrócić plików BAK zawierających wiele plików dziennika.
  • Przywracanie zakończy się niepowodzeniem, jeśli .bak zawiera dane FILESTREAM.
  • Nie można przywrócić kopii zapasowych zawierających bazy danych z aktywnymi obiektami w pamięci do warstwy wydajności Ogólnego przeznaczenia.
  • Nie można obecnie przywracać kopii zapasowych zawierających bazy danych w trybie tylko do odczytu.

Aby uzyskać więcej informacji, zobacz Azure SQL Managed Instance

Przywracanie zaszyfrowanej bazy danych

Aby przywrócić zaszyfrowaną bazę danych, musisz mieć dostęp do certyfikatu lub klucza asymetrycznego, który został użyty do szyfrowania bazy danych. Bez certyfikatu lub klucza asymetrycznego nie można przywrócić bazy danych. W związku z tym certyfikat używany do szyfrowania klucza szyfrowania bazy danych musi być zachowywany tak długo, jak jest to konieczne. Aby uzyskać więcej informacji, zobacz Certyfikaty programu SQL Server i klucze asymetryczne.

Permissions

Użytkownik musi mieć CREATE DATABASE uprawnienia, aby móc wykonać funkcję RESTORE.

CREATE LOGIN mylogin WITH PASSWORD = 'Very Strong Pwd123!';
GRANT CREATE ANY DATABASE TO [mylogin];

Uprawnienia RESTORE są przekazywane do ról, w których informacje o członkostwie są zawsze łatwo dostępne dla serwera. Ponieważ stałe członkostwo w roli bazy danych można sprawdzić tylko wtedy, gdy baza danych jest dostępna i nieuszkodzony, co nie zawsze ma przypadek wykonywania przywracania, członkowie db_owner stałej roli bazy danych nie mają uprawnień RESTORE.

Przykłady

W poniższych przykładach przywracana jest kopia zapasowa bazy danych tylko z adresu URL, w tym tworzenie poświadczeń.

A. Przywracanie bazy danych z czterech urządzeń kopii zapasowych

-- Create credential
CREATE CREDENTIAL [https://mybackups.blob.core.windows.net/wide-world-importers]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
      SECRET = 'sv=2017-11-09&ss=bq&srt=sco&sp=rl&se=2022-06-19T22:41:07Z&st=2018-06-01T14:41:07Z&spr=https&sig=s7wddcf0w%3D';
GO
-- Restore database
RESTORE DATABASE WideWorldImportersStandard
FROM URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/00-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/01-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/02-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/03-WideWorldImporters-Standard.bak'

Jeśli baza danych już istnieje, zostanie wyświetlony następujący błąd: Msg 1801, Level 16, State 1, Line 9 Database 'WideWorldImportersStandard' already exists. Choose a different database name.

B. Przywracanie bazy danych określonej za pomocą zmiennej

DECLARE @db_name sysname = 'WideWorldImportersStandard';
DECLARE @url nvarchar(400) = N'https://mybackups.blob.core.windows.net/wide-world-importers/WideWorldImporters-Standard.bak';

RESTORE DATABASE @db_name
FROM URL = @url

C. Śledzenie postępu instrukcji przywracania

SELECT query = a.text, start_time, percent_complete,
    eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command = 'RESTORE DATABASE'

Uwaga / Notatka

Ten widok prawdopodobnie wyświetli dwa żądania przywracania. Jedna z nich to oryginalna instrukcja RESTORE wysłana przez klienta, a druga to instrukcja RESTORE w tle, która jest uruchamiana, nawet jeśli połączenie klienta nie powiedzie się.

* Analiza
System platformy (PDW) *

 

Platforma analityczna

Przywraca bazę danych użytkownika systemu platformy analizy (PDW) z kopii zapasowej bazy danych do urządzenia systemu platformy analizy (PDW). Baza danych jest przywracana z kopii zapasowej, która została wcześniej utworzona przez polecenie Analytics Platform System (PDW) BACKUP DATABASE - Analytics Platform System . Użyj operacji tworzenia i przywracania kopii zapasowych, aby utworzyć plan odzyskiwania po awarii lub przenieść bazy danych z jednego urządzenia do innego.

Uwaga / Notatka

Przywracanie systemowej master bazy danych obejmuje przywracanie informacji logowania urządzenia. Aby przywrócić master bazę danych, użyj strony Przywróć bazę danych master w narzędziu Configuration Manager . Administrator z dostępem do węzła Kontrolka może wykonać tę operację. Aby uzyskać więcej informacji na temat kopii zapasowych bazy danych systemu platformy analizy (PDW), zobacz "Backup and Restore" (Tworzenie kopii zapasowych i przywracanie) w dokumentacji produktu Analytics Platform System (PDW).

Składnia

-- Restore the master database
-- Use the Configuration Manager tool.

Restore a full user database backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\full_backup_directory'
[;]

--Restore a full user database backup and then a differential backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\differential_backup_directory'
    WITH [ ( ] BASE = '\\UNC_path\full_backup_directory' [ ) ]
[;]

--Restore header information for a full or differential user database backup.
RESTORE HEADERONLY
    FROM DISK = '\\UNC_path\backup_directory'
[;]

Arguments

PRZYWRACANIE DATABASE_NAME BAZY DANYCH

Określa, aby przywrócić bazę danych użytkownika do bazy danych o nazwie database_name. Przywrócona baza danych może mieć inną nazwę niż źródłowa baza danych, która została utworzona. database_name nie może już istnieć jako baza danych na urządzeniu docelowym. Aby uzyskać więcej informacji na temat dozwolonych nazw baz danych, zobacz "Object Naming Rules" (Reguły nazewnictwa obiektów) w dokumentacji produktu Analytics Platform System (PDW).

Przywracanie bazy danych użytkownika przywraca pełną kopię zapasową bazy danych, a następnie opcjonalnie przywraca różnicową kopię zapasową na urządzeniu. Przywracanie bazy danych użytkownika obejmuje przywracanie użytkowników bazy danych i ról bazy danych.

FROM DISK = '\\UNC_path backup_directory\'

Ścieżka sieciowa i katalog, z którego program Analytics Platform System (PDW) przywróci pliki kopii zapasowej. Na przykład FROM DISK = "\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup".

backup_directory Określa nazwę katalogu, który zawiera pełną lub różnicową kopię zapasową. Na przykład można wykonać operację RESTORE HEADERONLY na pełnej lub różnicowej kopii zapasowej.

full_backup_directory Określa nazwę katalogu zawierającego pełną kopię zapasową.

differential_backup_directory Określa nazwę katalogu zawierającego różnicową kopię zapasową.

  • Katalog ścieżki i kopii zapasowej musi już istnieć i musi być określony jako w pełni kwalifikowana ścieżka konwencji nazewnictwa uniwersalnego (UNC).
  • Ścieżka do katalogu kopii zapasowej nie może być ścieżką lokalną i nie może być lokalizacją w żadnym z węzłów urządzenia Systemu platformy analitycznej (PDW).
  • Maksymalna długość ścieżki UNC i nazwy katalogu kopii zapasowej to 200 znaków.
  • Serwer lub host musi być określony jako adres IP.

PRZYWRACANIE NAGŁÓWKA

Określa, aby zwracać tylko informacje nagłówka dla jednej kopii zapasowej bazy danych użytkownika. Wśród innych pól nagłówek zawiera opis tekstu kopii zapasowej i nazwę kopii zapasowej. Nazwa kopii zapasowej nie musi być taka sama jak nazwa katalogu, w której są przechowywane pliki kopii zapasowej.

Wyniki RESTORE HEADERONLY są wzorowane po wynikach FUNKCJI RESTORE HEADERONLY programu SQL Server. Wynik zawiera ponad 50 kolumn, które nie są używane przez system platformy analizy (PDW). Aby uzyskać opis kolumn w wynikach FUNKCJI RESTORE PROGRAMU SQL Server, zobacz RESTORE HEADERONLY (PRZYWRACANIE NAGŁÓWKA).

Permissions

CREATE ANY DATABASE Wymaga uprawnienia.

Wymaga konta systemu Windows, które ma uprawnienia dostępu i odczytu z katalogu kopii zapasowej. Należy również przechowywać nazwę konta systemu Windows i hasło w systemie platformy analizy (PDW).

Obsługa błędów

Polecenie RESTORE DATABASE powoduje błędy w następujących warunkach:

  • Nazwa bazy danych do przywrócenia już istnieje na urządzeniu docelowym. Aby tego uniknąć, wybierz unikatową nazwę bazy danych lub upuść istniejącą bazę danych przed uruchomieniem przywracania.
  • W katalogu kopii zapasowej znajduje się nieprawidłowy zestaw plików kopii zapasowej.
  • Uprawnienia logowania nie są wystarczające do przywrócenia bazy danych.
  • System platformy analizy (PDW) nie ma odpowiednich uprawnień do lokalizacji sieciowej, w której znajdują się pliki kopii zapasowej.
  • Lokalizacja sieciowa katalogu kopii zapasowej nie istnieje lub jest niedostępna.
  • W węzłach obliczeniowych lub w węźle kontrolnym brakuje miejsca na dysku. System platformy analizy (PDW) nie potwierdza, że na urządzeniu istnieje wystarczająca ilość miejsca na dysku przed zainicjowaniem przywracania. W związku z tym można wygenerować błąd braku miejsca na dysku podczas uruchamiania instrukcji RESTORE DATABASE. W przypadku niewystarczającej ilości miejsca na dysku system platformy analizy (PDW) cofa przywracanie.
  • Urządzenie docelowe, do którego przywracana jest baza danych, ma mniej węzłów obliczeniowych niż urządzenie źródłowe, z którego utworzono kopię zapasową bazy danych.
  • Próba przywrócenia bazy danych jest podejmowana z poziomu transakcji.

Uwagi

System platformy analizy (PDW) śledzi powodzenie przywracania bazy danych. Przed przywróceniem różnicowej kopii zapasowej bazy danych system platformy analizy (PDW) weryfikuje pomyślne zakończenie pełnego przywracania bazy danych.

Po przywróceniu baza danych użytkownika będzie mieć poziom zgodności bazy danych 120. Dotyczy to wszystkich baz danych niezależnie od ich oryginalnego poziomu zgodności.

Przywracanie do urządzenia z większą liczbą węzłów obliczeniowych

Uruchom polecenie DBCC SHRINKLOG (Azure Synapse Analytics) po przywróceniu bazy danych z mniejszego do większego urządzenia, ponieważ ponowna dystrybucja zwiększy dziennik transakcji.

Przywracanie kopii zapasowej do urządzenia z większą liczbą węzłów obliczeniowych zwiększa rozmiar przydzielonej bazy danych proporcjonalnie do liczby węzłów obliczeniowych.

Na przykład podczas przywracania bazy danych 60 GB z urządzenia 2-węzłowego (30 GB na węzeł) do urządzenia 6-węzłowego system platformy analizy (PDW) tworzy bazę danych 180 GB (6 węzłów z 30 GB na węzeł) na urządzeniu 6-węzłowym. System platformy analizy (PDW) początkowo przywraca bazę danych do 2 węzłów w celu dopasowania do konfiguracji źródłowej, a następnie ponownie dystrybuuje dane do wszystkich 6 węzłów.

Po ponownej dystrybucji każdy węzeł obliczeniowy będzie zawierać mniej rzeczywistych danych i więcej wolnego miejsca niż każdy węzeł obliczeniowy na mniejszym urządzeniu źródłowym. Użyj dodatkowego miejsca, aby dodać więcej danych do bazy danych. Jeśli przywrócony rozmiar bazy danych jest większy niż jest potrzebny, możesz użyć polecenia ALTER DATABASE — PDW , aby zmniejszyć rozmiary plików bazy danych.

Ograniczenia i ograniczenia

Dla tych ograniczeń i ograniczeń urządzenie źródłowe jest urządzeniem, z którego utworzono kopię zapasową bazy danych, a urządzeniem docelowym, na którym zostanie przywrócona baza danych.

  • Przywracanie bazy danych nie powoduje automatycznego ponownego kompilowania statystyk.
  • Tylko jedna instrukcja RESTORE DATABASE lub BACKUP DATABASE może być uruchomiona na urządzeniu w danym momencie. Jeśli wiele instrukcji tworzenia kopii zapasowych i przywracania jest przesyłanych współbieżnie, urządzenie umieści je w kolejce i przetworzy je pojedynczo.
  • Można przywrócić kopię zapasową bazy danych tylko do docelowego urządzenia systemu platformy analizy (PDW), które ma tę samą liczbę lub więcej węzłów obliczeniowych niż urządzenie źródłowe. Urządzenie docelowe nie może mieć mniejszej liczby węzłów obliczeniowych niż urządzenie źródłowe.
  • Nie można przywrócić kopii zapasowej utworzonej na urządzeniu z sprzętem PDW programu SQL Server 2012 PDW na urządzeniu z programem SQL Server 2008 R2. Ma to wartość true, nawet jeśli urządzenie zostało pierwotnie zakupione przy użyciu sprzętu PDW programu SQL Server 2008 R2 i jest teraz uruchomione oprogramowanie PDW programu SQL Server 2012.

Blokowanie

Przyjmuje wyłączną blokadę obiektu DATABASE.

Przykłady

A. Proste przykłady przywracania

Poniższy przykład przywraca pełną kopię zapasową do SalesInvoices2013 bazy danych. Pliki kopii zapasowej są przechowywane w \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full katalogu. Baza SalesInvoices2013 danych nie może już istnieć na urządzeniu docelowym lub to polecenie zakończy się niepowodzeniem z powodu błędu.

RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';

B. Przywracanie pełnej i różnicowej kopii zapasowej

Poniższy przykład przywraca pełną kopię zapasową, a następnie różnicową kopię zapasową bazy SalesInvoices2013 danych

Pełna kopia zapasowa bazy danych jest przywracana z pełnej kopii zapasowej przechowywanej \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full w katalogu. Jeśli przywracanie zakończy się pomyślnie, różnicowa kopia zapasowa zostanie przywrócona SalesInvoices2013 do bazy danych. Różnicowa kopia zapasowa jest przechowywana w \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff katalogu.

RESTORE DATABASE SalesInvoices2013
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
    WITH BASE = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

C. Przywracanie nagłówka kopii zapasowej

W tym przykładzie przywracane są informacje nagłówka kopii zapasowej \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Fullbazy danych. Polecenie powoduje wyświetlenie jednego wiersza informacji dotyczących kopii zapasowej Invoices2013Full .

RESTORE HEADERONLY
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

Możesz użyć informacji nagłówka, aby sprawdzić zawartość kopii zapasowej lub upewnić się, że docelowe urządzenie przywracania jest zgodne z źródłowym urządzeniem kopii zapasowej przed podjęciem próby przywrócenia kopii zapasowej.

Dalsze kroki