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).

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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'] 
   } 

Argumenty

Aby zapoznać się z opisami argumentów, zobacz Przywracanie argumenty (Transact-SQL).

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 :

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ń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]