Notatka
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.
Przywraca kopie zapasowe SQL wykonane za pomocą BACKUP tego polecenia.
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
- Aby uzyskać więcej informacji na temat scenariuszy przywracania programu SQL Server, zobacz Przywracanie i odzyskiwanie — omówienie.
- Podczas przywracania bazy danych z innego wystąpienia należy wziąć pod uwagę informacje z sekcji Zarządzanie metadanymi podczas udostępniania bazy danych w innym wystąpieniu serwera (SQL Server).
- Aby uzyskać więcej informacji na temat przywracania z usługi Microsoft Azure Blob Storage, zobacz Sql Server Backup and Restore with Microsoft Azure Blob Storage (Tworzenie kopii zapasowej i przywracanie programu SQL Server za pomocą usługi Microsoft Azure Blob Storage).
- Tworzenie kopii zapasowej i przywracanie do magazynu obiektów zgodnego z programem S3 zostało wprowadzone w programie SQL Server 2022 (16.x). Aby uzyskać więcej informacji na temat przywracania z magazynu obiektów zgodnego z programem S3, zobacz Tworzenie kopii zapasowej i przywracanie programu SQL Server przy użyciu magazynu obiektów zgodnego z programem S3. Zapoznaj się również z opcją tworzenia kopii zapasowej programu SQL Server pod adresem URL magazynu obiektów zgodnego z programem S3.
Składnia
- Więcej informacji o opisach argumentów można znaleźć w RESTORE sekcji 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 RESTORE sekcji Argumenty.
Informacje o scenariuszach przywracania
Program SQL Server obsługuje różne scenariusze przywracania:
Ukończone przywracanie bazy danych
Przywraca całą bazę danych, począwszy od pełnej kopii zapasowej bazy danych, po której można przywrócić różnicową kopię zapasową bazy danych (i kopie zapasowe dzienników). Aby uzyskać więcej informacji, zobacz Pełne przywracanie bazy danych — prosty model odzyskiwania lub Pełne przywracanie bazy danych — model pełnego odzyskiwania.
Przywracanie plików
Przywraca plik lub grupę plików w bazie danych z wieloma grupami plików. W ramach prostego modelu odzyskiwania plik musi należeć do grupy plików tylko do odczytu. Po pełnym przywróceniu pliku można przywrócić różnicową kopię zapasową pliku. Aby uzyskać więcej informacji, zobacz Przywracanie plików — model pełnego odzyskiwania i przywracanie plików — prosty model odzyskiwania.
Przywracanie strony
Przywraca poszczególne strony. Przywracanie strony jest dostępne tylko w ramach pełnych i rejestrowanych zbiorczo modeli odzyskiwania. Aby uzyskać więcej informacji, zobacz Przywracanie stron — SQL Server.
Przywracanie fragmentów
Przywraca bazę danych na etapach, począwszy od podstawowej grupy plików i co najmniej jednej pomocniczej grupy plików. Przywracanie fragmentalne zaczyna się od RESTOREDATABASE użycia opcji PARTIAL i określenia jednej lub więcej grup plików pomocniczych do przywrócenia. Aby uzyskać więcej informacji, zobacz Przywracanie częściowe — SQL Server.
Tylko odzyskiwanie
Odzyskuje dane, które są już zgodne z bazą danych i muszą być udostępniane tylko. Aby uzyskać więcej informacji, zobacz Odzyskiwanie bazy danych bez przywracania danych.
Przywracanie dziennika transakcji.
W ramach pełnego lub zarejestrowanego zbiorczo modelu odzyskiwania przywracanie kopii zapasowych dziennika jest wymagane do osiągnięcia żądanego punktu odzyskiwania. Aby uzyskać więcej informacji na temat przywracania kopii zapasowych dziennika, zobacz Stosowanie kopii zapasowych dziennika transakcji — SQL Server.
Przygotowywanie bazy danych dostępności dla zawsze włączonej grupy dostępności
Aby uzyskać więcej informacji, zobacz Ręczne przygotowywanie pomocniczej bazy danych dla grupy dostępności — SQL Server.
Przygotowywanie dublowania bazy danych na potrzeby dublowania bazy danych
Aby uzyskać więcej informacji, zobacz Przygotowywanie dublowania bazy danych do dublowania — SQL Server.
Przywracanie w trybie online
Uwaga / Notatka
Przywracanie w trybie online jest dozwolone tylko w wersji Enterprise programu SQL Server.
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 kwestie dotyczące RESTORE opcji
Wycofane RESTORE słowa kluczowe
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 |
RESTORE DZIENNIKA
RESTORE LOG może zawierać listę plików umożliwiającą tworzenie plików podczas rollforward. 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 wcześniejszego wykonania kopii zapasowej ogonu logu skutkuje błędem, chyba że RESTOREDATABASE instrukcja zawiera klauzulę WITH REPLACE lub WITH STOPAT, która musi określić czas lub transakcję po zakończeniu 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
Rollback jest kontrolowany przez RESTORE wyrażenie za pośrednictwem [ 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 DMK masz możliwość włączenia automatycznego odszyfrowania w przyszłości, używając ALTER MASTER KEY instrukcji REGENERE, aby udostępnić serwerowi kopię DMK, zaszyfrowaną kluczem serwisowym (SMK). Gdy baza danych została uaktualniona z wcześniejszej wersji, klucz DMK powinien zostać wygenerowany ponownie, aby użyć nowszego algorytmu AES. Więcej informacji o regeneracji DMK można znaleźć w .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
Podczas przywracania offline, jeśli dana baza danych jest używana, użytkownicy RESTORE muszą po krótkim czasie odejść. 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.
RESTORE można go uruchomić ponownie po błędzie. Dodatkowo możesz wydać instrukcje RESTORE , by kontynuować mimo błędów, a system przywraca jak najwięcej danych (zobacz opcję CONTINUE_AFTER_ERROR ).
RESTORE jest niedozwolone 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ń.
Aby uzyskać więcej informacji na temat przywracania z usługi Microsoft Azure Blob Storage, zobacz Sql Server Backup and Restore with Microsoft Azure Blob Storage (Tworzenie kopii zapasowej i przywracanie programu SQL Server za pomocą usługi Microsoft Azure Blob Storage).
Tworzenie kopii zapasowej i przywracanie do magazynu obiektów zgodnego z programem S3 zostało wprowadzone w programie SQL Server 2022 (16.x). Aby uzyskać więcej informacji na temat przywracania z magazynu obiektów zgodnego z programem S3, zobacz Tworzenie kopii zapasowej i przywracanie programu SQL Server przy użyciu magazynu obiektów zgodnego z programem S3. Zapoznaj się również z opcją tworzenia kopii zapasowej programu SQL Server pod adresem URL magazynu obiektów zgodnego z programem S3.
Współdziałanie
Ustawienia bazy danych i przywracanie
Podczas przywracania większość opcji bazy danych, które można użyć ALTER DATABASE , jest resetowana do wartości obowiązujących w momencie zakończenia 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 po wypowiedzi 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.
Instrukcja może RESTORE być również używana do przywracania do alternatywnych lokalizacji, różnicowania, przywracania plików i grup plików oraz różnicowania plików i grup plików danych pełnotekstowych. Dodatkowo może RESTORE przywracać wyłącznie pliki pełne tekstu, 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 RESTORE instrukcji 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
STOPATopcja 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. Gdy hasło zostało zdefiniowane na zestawie multimediów lub kopii zapasowych, musisz podać poprawne hasło lub hasła w RESTORE instrukcji. 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. Jednak media chronione hasłem mogą zostać nadpisane przez opcję FORMAT w danym wykazie 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.
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.
Tworzenie kopii zapasowej i przywracanie do magazynu obiektów zgodnego z programem S3 zostało wprowadzone w programie SQL Server 2022 (16.x). Aby uzyskać więcej informacji na temat przywracania z magazynu obiektów zgodnego z programem S3, zobacz Tworzenie kopii zapasowej i przywracanie programu SQL Server przy użyciu magazynu obiektów zgodnego z programem S3. Zapoznaj się również z opcją tworzenia kopii zapasowej programu SQL Server pod adresem URL magazynu obiektów zgodnego z programem S3.
Permissions
Jeśli przywracana baza danych nie istnieje, użytkownik musi mieć CREATE DATABASE uprawnienia, aby móc wykonać polecenie RESTORE. Jeśli baza danych istnieje, RESTORE uprawnienia domyślnie przypadają członkom sysadmindbcreator i stałym rolom serwera oraz właścicielowi (dbo) bazy danych (dla FROM DATABASE_SNAPSHOT opcji baza danych zawsze istnieje).
RESTORE uprawnienia są przekazywane do ról, w których informacje o członkostwie są zawsze łatwo dostępne dla serwera. Ponieważ stałe przynależność do roli bazy danych można sprawdzać tylko wtedy, gdy baza jest dostępna i nieuszkodzona, co nie zawsze ma miejsce podczas RESTORE jej wykonywania, członkowie stałej roli bazy db_owner danych nie mają RESTORE uprawnień.
Przykłady
We wszystkich przykładach przyjęto założenie, że została wykonana pełna kopia zapasowa bazy danych.
Przykłady RESTORE obejmują następujące:
- A. Przywracanie pełnej bazy danych
- B. Przywracanie pełnych i różnicowych kopii zapasowych bazy danych
- C. Przywracanie bazy danych przy użyciu składni RESTART
- D. Przywracanie bazy danych i przenoszenie plików
- E. Kopiowanie bazy danych za pomocą BACKUP i RESTORE
- F. Przywracanie do punktu w czasie przy użyciu funkcji STOPAT
- G. Przywracanie dziennika transakcji do znaku
- H. Przywracanie przy użyciu składni TAPE
- I. Przywracanie przy użyciu składni FILE i FILEGROUP
- J. Przywracanie z migawki bazy danych
- K. Przywracanie z usługi Microsoft Azure Blob Storage
- L. Przywracanie z kopii zapasowej migawki
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).
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;
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;
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;
E. Skopiuj bazę danych za pomocą 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 RESTORE FILELISTONLY.
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
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;
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';
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';
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
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.
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';
Dalsze kroki
- Omówienie przywracania i odzyskiwania (SQL Server)
- tworzenie kopii zapasowych i przywracanie baz danych programu SQL Server
- Tworzenie kopii zapasowych i przywracanie systemowych baz danych (SQL Server)
- Przywracanie kopii zapasowej bazy danych przy użyciu programu SSMS
- Tworzenie kopii zapasowych i przywracanie katalogów i indeksów Full-Text
- Tworzenie kopii zapasowych i przywracanie replikowanych baz danych
- BACKUP
- Zestawy multimediów, rodziny multimediów i zestawy kopii zapasowych
- RESTORE REWINDONLY
- RESTORE VERIFYONLY
- RESTORE FILELISTONLY (Transact-SQL)
- RESTORE HEADERONLY (Transact-SQL)
- Historia kopii zapasowych i informacje nagłówka
* 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.
Inne obsługiwane RESTORE komendy można znaleźć w odpowiedzi:
- RESTORE FILELISTONLY (Transact-SQL)
- RESTORE HEADERONLY (Transact-SQL)
- RESTORE LABELONLY TYLKO (Transact-SQL)
- RESTORE VERIFYONLY (Transact-SQL)
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. RESTORE Command wyszuka dane uwierzytelniające za pomocą adresu pamięci BLOB, aby znaleźć informacje potrzebne do odczytu urządzenia zapasowego.
RESTORE Działanie jest asynchroniczne – przywracanie trwa nawet po zerwaniu 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ć RESTORE.
CREATE LOGIN mylogin WITH PASSWORD = 'Very Strong Pwd123!';
GRANT CREATE ANY DATABASE TO [mylogin];
RESTORE uprawnienia są przekazywane do ról, w których informacje o członkostwie są zawsze łatwo dostępne dla serwera. Ponieważ stałe przynależność do roli bazy danych można sprawdzać tylko wtedy, gdy baza jest dostępna i nieuszkodzona, co nie zawsze ma miejsce podczas RESTORE jej wykonywania, członkowie stałej roli bazy db_owner danych nie mają RESTORE uprawnień.
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. Jedno to oryginalne RESTORE wyrażenie wysłane przez klienta, a drugie to zdanie tła RESTORE , które jest wykonywane nawet w przypadku awarii połączenia z klientem.
* 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 wcześniej została utworzona przez polecenie Analytics Platform System (PDW) BACKUPDATABASE - 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
RESTORE DATABASE Nazwa_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żesz 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.
RESTORE HEADERONLY
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.
RESTORE RESTORE HEADERONLYwyniki wzorowane są na wynikach z SQL ServerRESTORERESTORE HEADERONLY. Wynik zawiera ponad 50 kolumn, które nie są używane przez system platformy analizy (PDW). Opis kolumn w wynikach SQL Server RESTORE HEADERONLY można znaleźć w RESTORE HEADERONLY.
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).
- Aby sprawdzić, czy poświadczenia są już dostępne, użyj sys.dm_pdw_network_credentials.
- Aby dodać lub zaktualizować poświadczenia, użyj sp_pdw_add_network_credentials — Azure Synapse Analytics.
- Aby usunąć poświadczenia z systemu platformy analizy (PDW), użyj sp_pdw_remove_network_credentials — Azure Synapse Analytics.
Obsługa błędów
Polecenie powoduje RESTOREDATABASE 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. Dlatego możliwe jest wygenerowanie błędu braku miejsca na dysku podczas wykonywania RESTOREDATABASE instrukcji. 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ż potrzebujesz, możesz użyć ALTER DATABASE - PDW do zmniejszenia rozmiarów 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.
- Na urządzeniu może działać tylko jedno RESTOREDATABASE lub oświadczenie w BACKUPDATABASE 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
Zajmuje wyłączny zamek na obiekcie DATABASE .
Przykłady
A. Proste przykłady RESTORE
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.