RESTORE (Transact-SQL)
Przywraca kopie zapasowe wykonane przy użyciu polecenia Kopia zapasowa.To polecenie umożliwia wykonywanie następujących scenariuszy przywracanie :
Przywróć całą bazę danych z pełnej kopia zapasowa (zakończenie przywracanie).
Przywróć część bazy danych (częściowe przywracanie).
Przywracanie bazy danych ( przywracanie pliku) określonych plików lub aplikacjami.
Przywrócić określone strony bazy danych ( strona przywracanie).
Przywróć dziennik transakcji do bazy danych (dziennik transakcji przywracanie).
Przywrócenie bazy danych do punktu w czas przechwycone przez migawka bazy danych.
Aby uzyskać więcej informacji o SQL Serverzobaczprzywracanie scenariuszy Przywracanie i odzyskiwanie omówienie (SQL Server) i Implementowanie scenariuszy przywracania baz danych programu SQL Server.
Ostrzeżenie
Aby uzyskać więcej informacji na temat opisów argumenty, zobacz Przywracanie argumenty (Transact-SQL).
Składnia
--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>
| , <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 } = { '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
--Backup Set Options
| FILE = { backup_set_file_number | @backup_set_file_number }
| PASSWORD = { password | @password_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
<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']
}
Uwagi
Nie można przywracanie kopia zapasowa skompresowanych bazy danych do bazy danych bez kompresji.
Podczas przywracanie w trybie offlineJeśli określona baza danych jest używany, PRZYWRACANIA wymusza użytkowników poza po krótkiej przerwie.Dla przywracanie w trybie online inne niż podstawowa grupa plikówbazy danych może pozostać w użytku, z wyjątkiem przypadków, gdy grupa plików przywracana jest przechodzenia do trybu offline.Wszystkie dane w określonej bazie danych zastępuje przywracane dane.
Aby uzyskać więcej informacji na temat odzyskiwaniebazy danych, zobacz Opis jak przywracanie i odzyskiwanie kopii zapasowych działa w programie SQL Server i Implementowanie scenariuszy przywracania baz danych programu SQL Server.
Tak długo, jak długo sortowanie bazy danych jest obsługiwane przez system operacyjny, można wykonać operacji między platformami, przywracanie , nawet między procesorami różnych typów.
Przywracanie może zostać uruchomiony ponownie po błędzie.Ponadto, poinstruuj PRZYWRACANIA, aby kontynuować pomimo błędów i przywraca jak najwięcej danych (zobacz opcja CONTINUE_AFTER_ERROR).Aby uzyskać więcej informacji, zobacz Reagowanie na SQL Server przywracania błędy spowodowane przez uszkodzone kopie zapasowe.
Przywracanie nie jest dozwolona w jawnej lub transakcja niejawna.
Przywracanie uszkodzonego wzorca bazy danych jest wykonywane przy użyciu specjalnej procedury.Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące przywracania bazy danych master.
Kopie zapasowe utworzone za pomocą Microsoft SQL Server nie można przywrócić do starszej wersja programu SQL Server.
Przywracanie bazy danych Czyści bufor plan dla wystąpienie SQL Server.Czyszczenie pamięci podręcznej plan powoduje ponowną kompilację wszystkich kolejnych wykonanie planów i może spowodować nagłe, tymczasowe spadek wydajności kwerendy.Jako SQL Server 2005 Service Pack 2 dla każdego cachestore wyczyszczone w pamięci podręcznej planu SQL Server dziennik błędów zawiera następujący komunikat informacyjny: "SQL ServerNapotkano %d zamieniono opróżniania dla '% s' cachestore cachestore (część planu w pamięci podręcznej) ze względu na niektórych operacji konserwacji lub ponownej konfiguracji bazy danych".Ten komunikat jest rejestrowany co pięć minut, tak długo, jak jest opróżniany z pamięci podręcznej w tym przedziale czas .
Trwa przywracanie bazy danych musi wynosić co najmniej wersja 80 (SQL Server 2000) aby przywracanie SQL Server 2008 R2.SQL Server 2000lub SQL Server 2005 bazy danych, które mają zgodności poziom mniej niż 80 będzie zestaw na zgodność 80 po przywróceniu.
Ostrzeżenie
Po przywracanie SQL Server 2005 lub SQL Server 2000 bazy danych do SQL Server 2008 R2, bazy danych staje się natychmiast dostępne, a następnie zostanie automatycznie uaktualniony.Jeśli baza danych ma indeksy pełnotekstowe, proces uaktualniania przywozu, resetuje albo odtwarza je, w zależności od ustawienia upgrade_option właściwośćserwera.Jeśli opcja uaktualniania jest zestaw do zaimportowania (upgrade_option = 2) lub odbudować (upgrade_option = 0), indeksy pełnotekstowe będą niedostępne podczas uaktualniania systemu.Zależnie od ilości danych indeksowany, importowanie może potrwać kilka godzin, a odbudowywania może potrwać do dziesięciu razy dłużej.Gdy opcja uaktualniania jest zestaw do zaimportowania, indeksy pełnotekstowe skojarzone odbudowa Jeśli nie ma wykaz pełnotekstowy jest dostępny.Aby zmienić ustawienie z upgrade_option serwera właściwość, należy zastosować sp_fulltext_service.
Przywracanie scenariuszy
SQL Serverobsługuje wiele różnych scenariuszy przywracanie :
Pełną kopię bazy danych, przywracanie
Przywraca całą bazę danych, począwszy od pełnej kopia zapasowa, które mogą być uzupełniane przez Przywracanie bazy danych różnicowych kopia zapasowa (i dziennika).Aby uzyskać więcej informacji, zobacz Wykonywanie pełne przywracanie bazy danych (prostego modelu odzyskiwania) lub Wykonywanie pełne przywracanie bazy danych (modelu odzyskiwania pełny).
Plik, przywracanie
Przywraca plik lub grupa plików w bazie danychgrupa plików multi.Należy zauważyć, że w obszarze modelu odzyskiwanie prosty plik musi należeć do tylko do odczytu grupa plików.Po pełnym przywracanie plikuplik różnicowy kopia zapasowa mogą być przywracane.Aby uzyskać więcej informacji, zobacz Wykonywanie pliku przywraca (modelu odzyskiwania pełny) i Wykonywanie pliku przywraca (prostego modelu odzyskiwania).
Strony, przywracanie
Przywraca poszczególnych stron.Strona przywracanie jest dostępna tylko w modelach pełnego i bulk-logged odzyskiwanie .Aby uzyskać więcej informacji, zobacz Przywraca wykonywania strony.
Stopniową, przywracanie
Przywraca bazę danych w etapach, począwszy od jednego lub kilku pomocniczy aplikacjami i podstawowa grupa plików .przywracanie fragmentaryczne rozpoczyna się od PRZYWRÓĆ bazę danych za pomocą opcji CZĘŚCIOWEGO i określając jeden lub więcej pomocniczy aplikacjami do przywrócenia.Aby uzyskać więcej informacji, zobacz Wykonywanie przywracania stopniową.
Tylko odzyskiwania
Odzyskuje dane, które jest już zgodny z bazą danych i musi jedynie być dostępne.Aby uzyskać więcej informacji, zobacz Odzyskiwanie bazy danych bez przywracania danych.
przywracaniedziennik transakcji.
W obszarze pełnego lub model odzyskiwania z niepełnym dziennikiem, przywracanie kopii zapasowych dziennika jest wymagany do osiągnięcia punktu żądane odzyskiwanie .Aby uzyskać więcej informacji na temat przywracania kopii zapasowych dziennika, zobacz Stosowanie kopie zapasowe dziennika transakcji.
Tworzenie duplikat bazy danych.
Aby uzyskać więcej informacji, zobacz Jak Przygotowywanie bazy danych dublowania do dublowania (Transact-SQL).
Tworzenie i obsługę serwer rezerwowy.Aby uzyskać więcej informacji na temat serwerów nieaktywnych zobacz Korzystanie z serwerów ciepłej wstrzymania.
Zaniechanej PRZYWRACANIA słowa kluczowe
Poniższe słowa kluczowe wycofano w SQL Server 2008:
Słowo kluczowe zaniechanej |
Zamieniono by… |
Przykład zastąpienie słowa kluczowego |
---|---|---|
OBCIĄŻENIA |
PRZYWRACANIE |
RESTORE DATABASE |
TRANSAKCJA |
DZIENNIK |
RESTORE LOG |
DBO_ONLY |
RESTRICTED_USER |
RESTORE DATABASE ... WITH RESTRICTED_USER |
Wymóg przywrócenia zaszyfrowaną bazę danych
Aby przywracanie bazy danych, która jest zaszyfrowany musi mieć dostęp do certyfikat lub asymetrycznego klucz , który został użyty do zaszyfrowania bazy danych.Nie można przywrócić bazy danych bez certyfikat i kluczasymetrycznego.W efekcie certyfikat , który jest używany do szyfrowaniebazy danychklucz szyfrowania muszą być przechowywane tak długo, jak kopia zapasowa jest potrzebny. Aby uzyskać więcej informacji, zobacz SQL Server certyfikaty i klucze asymetryczne.
Włączone baz danych dla vardecimal Format przechowywania
Kopia zapasowa i przywracanie pracować poprawnie vardecimal format magazynu.Aby uzyskać więcej informacji o vardecimal format przechowywania, zobacz Przechowywanie danych dziesiętne jako o zmiennej długości.
Porównanie odzyskiwania i NORECOVERY
Wycofanie jest kontrolowana przez PRZYWRACANIA instrukcja za pośrednictwem [odzyskiwania | NORECOVERY] opcje:
NORECOVERY Określa, że wycofać występuje.Dzięki temu przenieść do przodu w czasie kontynuować z następną instrukcja w sekwencji.
W tym przypadeksekwencji przywracanie można przywracanie pozostałe kopie zapasowe i przywracać je do przodu.
ODZYSKIWANIE (domyślne) wskazuje, że tej wycofać powinny być wykonywane po zakończeniu przenieść do przodu w czasie dla bieżącej kopia zapasowa.
Odzyskiwanie bazy danych wymaga cały zestaw danych może być przywrócony ( przenieść do przodu w czasie,zestaw ) jest zgodny z bazą danych.Jeśli przenieść do przodu w czasie zestaw ma nie zostały walcowane do przodu zaczął być zgodne z bazy danych i odzyskiwania jest określony, Aparat baz danych problemy błąd.
Ponawianie operacji przywracania
Cofanie efektów przywracanie nie jest możliwe; można jednak zanegować skutków kopiowania danych i przenieść do przodu w czasie przez uruchomienie nad na podstawie każdego pliku.Nowa, żądane przywracanie plików i ponownie wykonać przenieść do przodu w czasie .Na przykład jeśli przypadkowo przywrócone zbyt wiele kopii zapasowych dziennika i gwarantowana przeznaczonych na punktu zatrzymania, należy ponownie uruchomić sekwencję.
przywracanie sekwencji można przerwane i ponownie przez przywrócenie całej zawartości plików podlegających usterce.
Przywracanie danych pełnego tekstu
Razem z innymi danymi bazy danych podczas pełne przywracanieprzywróceniu danych pełnego tekstu.Regularne korzystanie z RESTORE DATABASE database_name FROM backup_device składni, pliki tekstowe są przywracane jako część plik bazy danych przywracanie.
Przywracanie instrukcja można również przeprowadzić przywraca alternatywnej lokalizacji, przywraca różnicowej, przywraca plik i grupa plików i różnicowa Przywraca plik i grupa plików danych pełnego tekstu.Ponadto PRZYWRACANIA można przywracanie pliki pełnego tekstu tylko, jak również z bazy danych.
Ostrzeżenie
Katalogi pełnotekstowe przywożonych z SQL Server 2005 lub SQL Server 2000 są nadal traktowane jako pliki bazy danych.W przypadku takich SQL Server 2005 procedury tworzenia kopii zapasowych katalogów pełnego tekstu pozostaje w mocy, chyba że wstrzymywanie i wznawianie podczas operacji kopia zapasowa są już konieczne.Aby uzyskać więcej informacji, zobacz Wykonywanie kopii zapasowych i przywracania katalogów pełnego tekstu w SQL Server 2005 Books Online.
Ustawienia bazy danych i przywracanie
Podczas przywracaniewiększość opcji bazy danych, które są do ustawienia za pomocą ALTER DATABASE są resetowane do wartości w mocy na czas zakończenia kopia zapasowa.
Ostrzeżenie
To zachowanie różni się od wersji SQL Server przed SQL Server 2000.
Jednak za pomocą opcji Z RESTRICTED_USER, zastępuje to zachowanie dla ustawienia opcji dostępu użytkownika.To ustawienie jest zawsze zestaw następującego PRZYWRACANIA instrukcja, która zawiera opcję Z RESTRICTED_USER.
Kopia zapasowa i przywracanie historii tabel
SQL Serverzawiera tabelehistoria kopia zapasowa i przywracanie, które śledzenie aktywności kopia zapasowa i przywracanie dla każdego serwera wystąpienie. Podczas przywracanie jest wykonywana kopia zapasowatabelhistoria również są modyfikowane. Aby uzyskać informacje dotyczące tych tabel, zobacz Wyświetlanie informacji o kopiach zapasowych.
PRZYWRACANIE DZIENNIKA
PRZYWRÓĆ dziennik może zawierać listy plików, aby umożliwić tworzenie plików podczas przenieść do przodu w czasie.Ta jest używana podczas dziennika kopia zapasowa zawiera rekordy dziennika zapisywane podczas dodawania pliku do bazy danych.
Ostrzeżenie
Bazy danych przy użyciu pełnego lub model odzyskiwania z niepełnym dziennikiem, w większości przypadków należy tworzyć kopię zapasową ogona dziennika przed przywróceniem bazy danych.Przywracanie bazy danych bez zapasową ogona dziennika wyniki w błąd, chyba że PRZYWRÓĆ bazę danych instrukcja zawiera STOPAT Z klauzulalub zastąpić, które należy określić czas lub transakcji, która została wprowadzona po zakończeniu danych kopia zapasowa.Aby uzyskać więcej informacji dotyczących wykonywania kopii zapasowych dziennika ogona, zobacz Kopie zapasowe dziennika ogona.
Przywracanie online
Ostrzeżenie
przywracanie online jest dozwolone tylko w SQL Server 2005 Enterprise Edition i nowsze wersje.
W przypadku gdy przywracanie w trybie online jest obsługiwany, jeśli baza danych jest w trybie online, przywraca plik i przywraca strona są automatycznie online przywraca i przywraca również, z drugiej grupa plików po wstępnego etapu przywracanie fragmentaryczne.
Ostrzeżenie
Przywraca online może pociągać za sobą odroczonych transakcji.
Aby uzyskać więcej informacji, zobacz Wykonywanie przywracania Online.
Przywracanie stopniową
Stopniową przywracanie, co było nowego w SQL Server 2005, rozszerza Microsoft SQL Server 2000 częściowego przywracanie.przywracanie stopniową umożliwia aplikacjami przywrócone po wstępnej, częściowego przywracanie podstawowego i niektóre z aplikacjami pomocniczego.Aplikacjami, które nie są przywracane są oznaczane jako offline i nie są dostępne.Aplikacjami w trybie offline, jednak można przywrócić później przez przywracanie pliku.Aby zezwolić na całą bazę danych do przywrócenia w etapach w różnym czasie, przywracanie fragmentaryczne utrzymać kontrole w celu zapewnienia bazy danych będzie spójna w końcu.
Ostrzeżenie
W SQL Server 2000, częściowe przywracanie można przeprowadzać tylko z pełnej kopia zapasowa.Ograniczenie to zostało usunięte w SQL Server 2005.
Jeśli sekwencja częściowego przywracanie nie obejmuje żadnych FILESTREAM grupa plików, punkt-w-czas przywracanie nie jest obsługiwane.Można wymusić sekwencji przywracanie , aby kontynuować.Jednak nigdy nie można przywrócić aplikacjami FILESTREAM, który pominięty PRZYWRACANIA instrukcja .Aby wymusić punktu-w-czas przywracanie, określ opcję CONTINUE_AFTER_ERROR wraz z opcją STOPAT, STOPATMARK lub STOPBEFOREMARK, które należy także określić kolejne instrukcje PRZYWRACANIA dziennika.Jeśli określisz CONTINUE_AFTER_ERROR sekwencji częściowe przywracanie kończy się powodzeniem, i FILESTREAM grupa plików staje się nieodwracalny.
Aby uzyskać więcej informacji o przywracanie fragmentaryczne, zobacz Wykonywanie przywracania stopniową.
Przywracanie bazy danych do bazy danych migawki
A bazy danych operacja przywracania (określona opcja DATABASE_SNAPSHOT) przyjmuje pełną źródło bazy danych w czas przez oznacza to, że trwa przywracanie czas migawka bazy danych, zastępując źródło bazy danych z danymi z punktu w czas utrzymywane w określonym migawka bazy danych.Obecnie może istnieć tylko migawka możesz do przywracania.Następnie operacji przywracania przebudowuje dziennika (w związku z tym, nie możesz później przenieść do przodu w czasie wycofanej bazy danych do punktu błąd użytkownika).
Utrata danych jest ograniczona do aktualizacji bazy danych od czasu utworzenia migawka.metadane wycofanej bazy danych jest taka sama jak metadane w czas tworzenia migawka .Jednakże powracanie do migawka porzuca wszystkie katalogi pełnego tekstu.
Powrót z migawka bazy danych nie jest przeznaczony do nośnika odzyskiwanie.W przeciwieństwie do regularnych kopia zapasowa zestaw, migawka bazy danych jest niekompletna kopia plików bazy danych.Uszkodzona baza danych lub migawka bazy danych powrót z migawka jest może być niemożliwe.Ponadto nawet wtedy, gdy jest to możliwe, powrót w zdarzenie uszkodzenia jest mało prawdopodobne, aby rozwiązać problem.
Ograniczenia dotyczące przywracania
Przywracanie nie jest obsługiwana w następujących warunkach:
źródło baza danych zawiera wszelkie aplikacjami tylko do odczytu lub skompresowany.
Wszystkie pliki są w trybie offline, były w trybie online podczas tworzenia migawka .
Obecnie istnieje więcej niż jedną migawka bazy danych.
Aby uzyskać więcej informacji, zobacz Powracanie do migawkę bazy danych.
Uprawnienia
Jeśli przywracana baza danych nie istnieje, użytkownik musi mieć uprawnienia Tworzenie bazy danych, aby móc wykonać PRZYWRACANIA.Jeśli istnieje baza danych PRZYWRACANIA uprawnienia domyślne, aby członkowie sysadmin i dbcreator stałe role serwera i właściciela (dbo) bazy danych (dla opcji DATABASE_SNAPSHOT Z bazy danych zawsze istnieje).
PRZYWRÓĆ uprawnienia są nadawane do ról, w których członkostwo informacji jest zawsze łatwo dostępne dla serwera.Ponieważ członkostwo w rola bazy danych stałych może zostać sprawdzona tylko wtedy, gdy baza danych jest dostępna i nieuszkodzone, które nie zawsze jest przypadek podczas wykonywania PRZYWRACANIA członków db_owner stała rola bazy danych nie masz uprawnień do PRZYWRACANIA.
Operacji kopia zapasowa może opcjonalnie określić hasła dla zestaw nośników, z kopia zapasowa zestawlub oba.Hasło zdefiniowane na zestaw nośników kopia zapasowalubzestawpoprawne hasło lub hasła, należy określić w PRZYWRACANIA instrukcja. Te hasła zapobiec nieautoryzowanym przywracanie operacji i nieautoryzowany dołącza zestawów kopia zapasowa do nośnika za pomocą SQL Server Narzędzia.Jednakże media chronionej hasłem mogą zostać zastąpione przez opcję formatu kopii zapasowej instrukcjaużytkownika.
Uwaga dotycząca zabezpieczeń |
---|
Ochrony zapewnianej przez to hasło jest słabe.Mają uniemożliwić używanie niepoprawne przywracanie SQL Server Narzędzia przez upoważnionego lub nieautoryzowanych użytkowników.Nie uniemożliwia odczyt danych kopia zapasowa przez inne środki lub zastąpienie hasła.Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.Najlepszym sposobem ochrony kopii zapasowych jest taśmy kopia zapasowa należy przechowywać w bezpiecznym miejscu lub tworzyć kopię zapasową na dysku plików, które są chronione przez listy kontroli dostępu odpowiednie (ACL).Listy ACL, należy zestaw w głównym katalogu, w którym są tworzone kopie zapasowe. |
Przykłady
Ostrzeżenie
AdventureWorks2008R2 Bazy danych jest pokazany na rysunku.AdventureWorks2008R2to przykładowe bazy danych w SQL Server.Adventure Works Cycles to fikcyjna firma produkcyjna używana do demonstrowania koncepcji i scenariuszy dotyczących baz danych.Aby uzyskać więcej informacji na temat tej bazy danych, zobacz Przykładowe bazy danych AdventureWorks2008R2.
We wszystkich przykładach założono, że pełnej kopia zapasowa przeprowadzono.
Oto przykłady PRZYWRACANIA:
A.Przywracanie pełnej bazy danych
B.Przywracanie pełnej i różnicowej kopii zapasowej bazy danych
C.Przywracanie bazy danych przy użyciu składni ponownego uruchomienia
D.Przywracanie bazy danych i przenoszenia plików
E.Kopiowanie bazy danych przy użyciu kopii zapasowej i PRZYWRACANIA
F.Przywracanie do punktu-w-czas przy użyciu STOPAT
G.Przywracanie dziennika transakcji na znak
H.Przywracanie przy użyciu składni taśmy
I.Przywracanie przy użyciu składni pliku i grupa plików
J.Powrót z migawka bazy danych
Ostrzeżenie
Dodatkowe przykłady, zobacz Przykłady przywracania sekwencji dla kilku przywrócić scenariuszy również przywracanie opisujących tematy i które są wymienione w Wykonywanie kopii zapasowych i przywracanie tematów opisujących (Transact-SQL).
A.Przywracanie pełnej bazy danych
Poniższy przykład przywraca pełnej kopia zapasowa z AdventureWorks2008R2Backups urządzenie logiczne kopia zapasowa .Zobacz przykład tworzenia tego urządzenia Urządzenia kopii zapasowej.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
Ostrzeżenie
Bazy danych przy użyciu pełnego lub model odzyskiwania z niepełnym dziennikiem, SQL Server wymaga w większości przypadków ta zostanie tworzyć kopię zapasową ogona dziennika przed przywróceniem bazy danych.Aby uzyskać więcej informacji, zobacz Kopie zapasowe dziennika ogona.
[Góry przykłady]
B.Przywracanie pełnej i różnicowej kopii zapasowej bazy danych
Poniższy przykład przywraca pełnej kopia zapasowa następuje różnicowej kopia zapasowa z Z:\SQLServerBackups\AdventureWorks2008R2.bakurządzeniekopia zapasowa , który zawiera obie kopie zapasowe. Pełnej kopia zapasowa do przywrócenia jest szóstym kopia zapasowa zestaw na urządzeniu (FILE = 6), oraz bazy danych różnicowych kopia zapasowa jest dziewiąta kopia zapasowa zestaw na urządzeniu (FILE = 9).Jak najszybciej różnicowej kopia zapasowa odzyskane, bazy danych jest odzyskiwana.
RESTORE DATABASE AdventureWorks2008R2
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak'
WITH FILE = 6
NORECOVERY;
RESTORE DATABASE AdventureWorks2008R2
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak'
WITH FILE = 9
RECOVERY;
[Góry przykłady]
C.Przywracanie bazy danych przy użyciu składni ponownego uruchomienia
W poniższym przykładzie użyto RESTART opcję Uruchom ponownie RESTORE Operacja przerwana przez awarii zasilania serwera.
-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups WITH RESTART
[Góry przykłady]
D.Przywracanie bazy danych i przenoszenia plików
W poniższym przykładzie przywraca zapełnienie dziennika transakcji i baz danych i przesuwa przywróconej bazy danych do C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data katalogu.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH NORECOVERY,
MOVE 'AdventureWorks2008R2_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWorks2008R2.mdf',
MOVE 'AdventureWorks2008R2_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWorks2008R2.ldf'
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH RECOVERY
[Góry przykłady]
E.Kopiowanie bazy danych przy użyciu kopii zapasowej i PRZYWRACANIA
W poniższym przykładzie użyto obu BACKUP i RESTORE instrukcji, aby utworzyć kopię AdventureWorks2008R2 bazy danych.MOVEinstrukcja powoduje, że plik danych i dziennika przywrócone do określonej lokalizacji. RESTORE FILELISTONLYinstrukcja jest używany do określenia liczby i nazwy plików w bazie danych może być przywrócony. Nowa kopia bazy danych o nazwie TestDB.Aby uzyskać więcej informacji, zobacz Przywracanie FILELISTONLY (Transact-SQL).
BACKUP DATABASE AdventureWorks2008R2
TO AdventureWorks2008R2Backups ;
RESTORE FILELISTONLY
FROM AdventureWorks2008R2Backups ;
RESTORE DATABASE TestDB
FROM AdventureWorks2008R2Backups
WITH MOVE 'AdventureWorks2008R2_Data' TO 'C:\MySQLServer\testdb.mdf',
MOVE 'AdventureWorks2008R2_Log' TO 'C:\MySQLServer\testdb.ldf';
GO
[Góry przykłady]
F.Przywracanie do punktu-w-czas przy użyciu STOPAT
Poniższy przykład przywraca stan w bazie danych 12:00 AM na April 15, 2020 i przedstawiono operację przywracanie , obejmujące wiele kopii zapasowych dziennika.Na urządzenie kopia zapasowa AdventureWorks2008R2Backups, pełnej kopia zapasowa do przywrócenia jest trzecim kopia zapasowa zestaw na urządzeniu (FILE = 3), pierwszego dziennika kopia zapasowa jest czwartym kopia zapasowa zestaw (FILE = 4), a drugi dziennika kopia zapasowa jest piątym kopia zapasowa zestaw (FILE = 5).
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE=3, NORECOVERY;
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2008R2 WITH RECOVERY;
[Góry przykłady]
G.Przywracanie dziennika transakcji na znak
Poniższy przykład przywraca dziennik transakcji do oznaczenia na podstawie oznaczonej transakcji o nazwie ListPriceUpdate.
USE AdventureWorks2008R2;
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 AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE = 3, NORECOVERY;
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE = 4,
RECOVERY,
STOPATMARK = 'ListPriceUpdate';
[Góry przykłady]
H.Przywracanie przy użyciu składni taśmy
Poniższy przykład przywraca pełnej kopia zapasowa z TAPEurządzeniekopia zapasowa .
RESTORE DATABASE AdventureWorks2008R2
FROM TAPE = '\\.\tape0'
[Góry przykłady]
I.Przywracanie przy użyciu składni pliku i grupa plików
Poniższy przykład przywraca bazę danych o nazwie MyDatabase ma dwa pliki, jednej drugiej grupa plikówi informacje jednej transakcjiBaza danych używa model odzyskiwania pełnego.
Bazy danych kopia zapasowa jest dziewiąta kopia zapasowa zestaw w zestaw nośników na urządzenie logiczne kopia zapasowa o nazwie MyDatabaseBackups.Następnie zaloguj trzy kopie zapasowe, które są w trzech kolejnych zestawów kopia zapasowa (10, 11, i 12) na MyDatabaseBackups urządzenia, zostaną przywrócone za pomocą WITH NORECOVERY.Po przywróceniu ostatniej dziennika kopia zapasowa, baza danych jest odzyskiwana.
Ostrzeżenie
Odzyskiwanie jest wykonywane w osobnym kroku, aby zmniejszyć ryzyko jest zbyt wcześnie, odzyskiwanie przed wszystkie dziennika, których kopie zapasowe zostały przywrócone.
W RESTORE DATABASE, należy zauważyć, że istnieją dwa rodzaje FILE Opcje.FILE Opcji poprzedzającej nazwę urządzenia kopia zapasowa należy określić nazwy pliku logicznego pliki bazy danych, które są przywrócone z kopia zapasowazestaw; na przykład FILE = 'MyDatabase_data_1'.Tej kopia zapasowa zestaw nie jest pierwszym bazy danych kopia zapasowa w zestaw nośników; w związku z tym, jego położenie w zestaw nośników jest wskazywane za pomocą FILE opcji w WITH klauzula FILE=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
[Góry przykłady]
J.Powrót z migawka bazy danych
Poniższy przykład przywraca bazę danych do migawka bazy danych.W przykładzie założono, że tej tylko jedną migawka aktualnie istnieje w bazie danych.Na przykład sposobu tworzenia tej migawka bazy danych, zobacz Jak Utworzyć migawkę bazy danych (Transact-SQL).
Ostrzeżenie
Powracanie do migawka porzuca wszystkie katalogi pełnego tekstu.
USE master
RESTORE DATABASE AdventureWorks2008R2 FROM DATABASE_SNAPSHOT = 'AdventureWorks2008R2_dbss1800';
GO
Aby uzyskać więcej informacji, zobacz Powracanie do migawkę bazy danych.
[Góry przykłady]
Zobacz także