Sdílet prostřednictvím


Příkazy RESTORE (Transact-SQL)

Obnoví zálohy databáze SQL pořízené pomocí příkazu BACKUP .

Výběr produktu

V následujícím řádku vyberte název produktu, který vás zajímá, a zobrazí se jenom informace o daném produktu.

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

* SQL Server *  

 

SQL Server

Tento příkaz umožňuje provádět následující scénáře obnovení:

  • Obnovení celé databáze z úplné zálohy databáze (úplné obnovení)
  • Obnovení části databáze (částečné obnovení)
  • Obnovení konkrétních souborů nebo skupin souborů do databáze (obnovení souboru)
  • Obnovení konkrétních stránek do databáze (obnovení stránky)
  • Obnovení transakčního protokolu do databáze (obnovení transakčního protokolu)
  • Vraťte databázi k bodu v čase zachyceného snímkem databáze.

Další zdroje informací

Syntaxe

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

Popisy argumentů naleznete v tématu OBNOVIT argumenty.

Scénáře obnovení

SQL Server podporuje různé scénáře obnovení:

Pokud je online obnovení podporováno, pokud je databáze online, obnovení souborů a obnovení stránek se automaticky obnoví online, a také obnovení sekundární skupiny souborů po počáteční fázi kusmeálního obnovení.

Poznámka:

Online obnovení může zahrnovat odložené transakce.

Další informace najdete v tématu Online obnovení.

Další důležité informace o možnostech OBNOVENÍ

Ukončená klíčová slova RESTORE

V SYSTÉMU SQL Server 2008 (10.0.x) byly ukončena následující klíčová slova:

Ukončené klíčové slovo Nahrazuje... Příklad náhradního klíčového slova
NÁKLAD RESTORE RESTORE DATABASE
TRANSAKCE LOG RESTORE LOG
DBO_ONLY RESTRICTED_USER RESTORE DATABASE ... WITH RESTRICTED_USER

OBNOVIT PROTOKOL

PROTOKOL RESTORE může obsahovat seznam souborů, který umožňuje vytváření souborů během zavádění. Používá se, když záloha protokolu obsahuje záznamy protokolu zapsané při přidání souboru do databáze.

Poznámka:

Pro databázi používající úplný nebo hromadně protokolovaný model obnovení musíte ve většině případů zálohovat konec protokolu před obnovením databáze. Obnovení databáze bez prvního zálohování koncového bodu protokolu způsobí chybu, pokud příkaz RESTORE DATABASE neobsahuje klauzuli WITH REPLACE nebo WITH STOPAT, která musí zadat čas nebo transakci, ke které došlo po ukončení zálohy dat. Další informace o zálohování tail-log naleznete v tématu Tail-Log zálohování.

Porovnání OBNOVENÍ a NORECOVERY

Vrácení zpět je řízeno příkazem RESTORE prostřednictvím [ RECOVERY | NORECOVERY ] možnosti:

  • FUNKCE NORECOVERY určuje, že k vrácení zpět nedojde. To umožňuje pokračovat dalším příkazem v sekvenci.

    V tomto případě může sekvence obnovení obnovit další zálohy a vrátit je dál.

  • OBNOVENÍ (výchozí) značí, že vrácení zpět by se mělo provést po dokončení vrácení zpět pro aktuální zálohu. Není možné obnovit žádné další zálohy. Tuto možnost vyberte, jakmile obnovíte všechny potřebné zálohy.

    Obnovení databáze vyžaduje, aby byla obnovena celá sada dat ( vrácená sada) konzistentní s databází. Pokud se sada rollforward nepředstavila dostatečně daleko, aby byla konzistentní s databází a je zadána funkce RECOVERY, databázový stroj vydá chybu. Další informace o procesu obnovení naleznete v tématu Přehled obnovení a obnovení (SQL Server).

Podpora kompatibility

Zálohy a mastermodelmsdb které byly vytvořeny pomocí starší verze SQL Serveru nelze obnovit SQL Serverem.

Poznámka:

Do starší verze SQL Serveru nelze obnovit žádnou zálohu SQL Serveru, než je verze, na které byla záloha vytvořena.

Každá verze SQL Serveru používá jinou výchozí cestu než dřívější verze. Chcete-li proto obnovit databázi vytvořenou ve výchozím umístění pro zálohování starších verzí, musíte použít možnost MOVE. Informace o nové výchozí cestě naleznete v tématu Umístění souborů pro výchozí a pojmenované instance SYSTÉMU SQL Server.

Po obnovení starší verze databáze na SQL Server se databáze automaticky upgraduje. Databáze se obvykle zpřístupní okamžitě. Pokud má však databáze SYSTÉMU SQL Server 2005 (9.x) fulltextové indexy, proces upgradu buď importuje, resetuje nebo znovu sestaví v závislosti na nastavení vlastnosti serveru upgrade_option . Pokud je možnost upgradu nastavená na import (upgrade_option = 2) nebo opětovné sestavení (upgrade_option = 0), nebudou během upgradu k dispozici fulltextové indexy. V závislosti na množství indexovaných dat může import trvat několik hodin a opětovné sestavení může trvat až desetkrát déle. Všimněte si také, že pokud je možnost upgradu nastavena na import, přidružené fulltextové indexy se znovu sestaví, pokud není k dispozici fulltextový katalog. Chcete-li změnit nastavení vlastnosti serveru upgrade_option , použijte sp_fulltext_service.

Při prvním připojení nebo obnovení databáze k nové instanci SQL Serveru se kopie hlavního klíče databáze (zašifrovaná hlavním klíčem služby) ještě na serveru neuloží. K dešifrování hlavního klíče databáze (DMK) musíte použít příkaz OPEN MASTER KEY . Po dešifrování DMK máte možnost povolit automatické dešifrování v budoucnu pomocí příkazu ALTER MASTER KEY REGENERATE pro zřízení serveru s kopií DMK zašifrovanou pomocí hlavního klíče služby (SMK). Při upgradu databáze ze starší verze by se sada DMK měla znovu vygenerovat, aby používala novější algoritmus AES. Další informace o opětovném vygenerování sady DMK naleznete v tématu ALTER MASTER KEY. Doba potřebná k opětovnému vygenerování klíče DMK pro upgrade na AES závisí na počtu objektů chráněných dmK. Opětovné vygenerování klíče DMK pro upgrade na AES je nezbytné pouze jednou a nemá žádný vliv na budoucí regeneraci v rámci strategie obměny klíčů.

Poznámky

Pokud se zadaná databáze používá, funkce RESTORE během offline obnovení vynutí uživatele po krátké prodlevě. Pro online obnovení jiné než primární skupiny souborů může databáze zůstat používána, s výjimkou případů, kdy je obnovená skupina souborů přecházaná do offline režimu. Všechna data v zadané databázi se nahradí obnovenými daty.

Operace obnovení mezi platformami, a to i mezi různými typy procesorů, je možné provádět, pokud operační systém podporuje kolaci databáze.

Obnovení je možné restartovat po chybě. Kromě toho můžete instruovat funkci RESTORE, aby pokračovala i přes chyby, a obnoví co nejvíce dat (viz možnost CONTINUE_AFTER_ERROR ).

FUNKCE RESTORE není povolena v explicitní nebo implicitní transakci.

Obnovení poškozené master databáze se provádí pomocí speciálního postupu. Další informace naleznete v tématu Zálohování a obnovení systémových databází.

Obnovení databáze vymaže mezipaměť plánu pro obnovenou databázi. Vymazání mezipaměti plánu způsobí rekompilace všech následných plánů spuštění a může způsobit náhlé dočasné snížení výkonu dotazů.

Chcete-li obnovit databázi dostupnosti, nejprve obnovte databázi do instance SQL Serveru a pak přidejte databázi do skupiny dostupnosti.

Integrovaná akcelerace a snižování zátěže pro kompresi a dekompresi zálohování

SQL Server 2022 (16.x) zavádí ALGORITHM, který identifikuje algoritmus komprese pro operaci. Další informace naleznete v tématu Komprese zálohování.

Další informace najdete v tématu Operace obnovení.

Obnovení z adresy URL

Adresa URL je formát používaný k určení umístění a názvu souboru pro úložiště objektů kompatibilních s Microsoft Azure Blob Storage nebo S3. I když je Azure Blob Storage služba, implementace se podobá disku a pásce, což umožňuje konzistentní a bezproblémové obnovení pro všechna zařízení.

Interoperability

Nastavení databáze a obnovení

Během obnovení se většina možností databáze, které jsou nastaveny pomocí alter DATABASE, resetují na hodnoty platné v době ukončení zálohování.

Pomocí možnosti WITH RESTRICTED_USER však toto chování přepíše nastavení možnosti přístupu uživatele. Toto nastavení je vždy nastavené podle příkazu RESTORE, který obsahuje možnost WITH RESTRICTED_USER.

Obnovení šifrované databáze

Pokud chcete obnovit databázi, která je zašifrovaná, musíte mít přístup k certifikátu nebo asymetrického klíče, který se použil k šifrování databáze. Bez certifikátu nebo asymetrického klíče nelze databázi obnovit. V důsledku toho musí být certifikát, který se používá k šifrování šifrovacího klíče databáze, zachován, pokud je potřeba zálohování. Další informace najdete v tématu Certifikáty SQL Serveru a asymetrické klíče.

Obnovení databáze povolené pro vardecimal Storage

Zálohování a obnovení funguje správně s formátem úložiště vardecimal . Další informace o formátu vardecimal storage naleznete v tématu sp_db_vardecimal_storage_format.

Obnovení fulltextových dat

Fulltextová data se během úplného obnovení obnoví společně s dalšími databázovými daty. Pomocí běžné RESTORE DATABASE database_name FROM backup_device syntaxe se v rámci obnovení databázového souboru obnoví fulltextové soubory.

Příkaz RESTORE lze také použít k provádění obnovení do alternativních umístění, rozdílových obnovení, obnovení souborů a skupin souborů a rozdílové obnovení souborů a skupiny souborů obnovení fulltextových dat. Funkce RESTORE navíc může obnovit pouze fulltextové soubory a také data databáze.

Poznámka:

Fulltextové katalogy importované z SQL Serveru 2005 (9.x) jsou stále považovány za databázové soubory. Pro tyto účely zůstává k dispozici procedura SQL Serveru 2005 (9.x) pro zálohování fulltextových katalogů, s tím rozdílem, že pozastavení a obnovení během operace zálohování už není nutné. Další informace naleznete v tématu Zálohování a obnovení katalogů Full-Text.

Obnovení na SQL Server 2022 a funkce automatického odstranění

Při obnovování databáze na SQL Server 2022 (16.x) z předchozí verze se doporučuje provést sp_updatestats v databázi a nastavit správná metadata pro funkci automatického odstraňování statistik. Další informace najdete v tématu možnost automatického odstranění statistiky.

Clustery SQL Serveru pro velké objemy dat

Některé operace, včetně konfigurace nastavení serveru (úrovně instance) nebo ručního přidání databáze do skupiny dostupnosti, vyžadují připojení k instanci SQL Serveru. Operace jako sp_configure, nebo RESTORE DATABASEjakýkoli příkaz DDL v databázi patřící do skupiny dostupnosti vyžadují připojení k instanci SQL Serveru. Ve výchozím nastavení cluster s velkými objemy dat neobsahuje koncový bod, který umožňuje připojení k instanci. Tento koncový bod musíte zveřejnit ručně.

Pokyny najdete v tématu Připojení k databázím na primární replice.

Metadatové informace

SQL Server obsahuje tabulky historie zálohování a obnovení, které sledují aktivitu zálohování a obnovení pro každou instanci serveru. Při provedení obnovení se také upraví tabulky historie záloh. Informace o těchto tabulkách najdete v tématu Historie zálohování a Informace o hlavičce.

Vliv možnosti NAHRADIT

FUNKCE NAHRADIT by se měla používat zřídka a pouze po pečlivém zvážení. Obnovení obvykle zabraňuje náhodnému přepsání databáze s jinou databází. Pokud databáze zadaná v příkazu RESTORE již na aktuálním serveru existuje a zadaný identifikátor GUID řady databází se liší od identifikátoru GUID řady databází zaznamenaných v sadě záloh, databáze se neobnoví. Jedná se o důležitou ochranu.

Možnost NAHRADIT přepíše několik důležitých bezpečnostních kontrol, které obnovení obvykle provádí. Přepsané kontroly jsou následující:

  • Obnovení existující databáze se zálohou z jiné databáze.

    Pomocí možnosti NAHRADIT umožňuje obnovení přepsat existující databázi jakoukoli databází, která je v sadě záloh, i když se zadaný název databáze liší od názvu databáze zaznamenaného v sadě záloh. To může vést k náhodnému přepsání databáze jinou databází.

  • Obnovení databáze pomocí úplného nebo hromadně protokolovaného modelu obnovení, ve kterém se neproběhlo STOPAT zálohování protokolu a možnost se nepoužívá.

    S možností NAHRADIT můžete ztratit potvrzenou práci, protože protokol zapsaný naposledy nebyl zálohován.

  • Přepsání existujících souborů

    Chyba může například umožnit přepsání souborů nesprávného typu, například .xls souborů nebo které používá jiná databáze, která není online. Pokud jsou existující soubory přepsány, je možné libovolnou ztrátu dat, i když je obnovená databáze dokončena.

Znovu provést obnovení

Vrácení účinků obnovení zpět není možné; Můžete však negovat účinky kopírování dat a vrátit se zpět tak, že začnete na základě jednotlivých souborů. Pokud chcete začít znovu, obnovte požadovaný soubor a znovu proveďte vrácení zpět. Pokud jste například omylem obnovili příliš mnoho záloh protokolu a přetáhla zamýšlený zastavovací bod, budete muset restartovat sekvenci.

Posloupnost obnovení je možné přerušit a restartovat obnovením celého obsahu ovlivněných souborů.

Vrácení databáze k snímku databáze

Operace vrácení databáze (zadaná pomocí možnosti DATABASE_SNAPSHOT) vezme úplnou zdrojovou databázi zpět v čase tím, že se vrátí k času snímku databáze, tj. přepíše zdrojovou databázi daty z bodu v čase udržovaném v zadaném snímku databáze. V současné době může existovat pouze snímek, ke kterému se vracíte. Operace vrácení pak znovu sestaví protokol (proto později nelze vrátit zpět vrácenou databázi do bodu chyby uživatele).

Ztráta dat se omezuje na aktualizace databáze od vytvoření snímku. Metadata vrácené databáze jsou stejná jako metadata při vytváření snímku. Návrat k snímku ale zahodí všechny fulltextové katalogy.

Návrat ze snímku databáze není určený k obnovení médií. Na rozdíl od běžné sady záloh je snímek databáze neúplnou kopií databázových souborů. Pokud je databáze nebo snímek databáze poškozen, bude pravděpodobně možné vrátit se ze snímku. I když je to možné, vrácení se v případě poškození pravděpodobně problém nevyřeší.

Omezení při vrácení zpět

Vrácení zpět není podporováno za následujících podmínek:

  • Zdrojová databáze obsahuje všechny skupiny souborů jen pro čtení nebo komprimované.
  • Všechny soubory jsou offline, které byly při vytváření snímku online.
  • Aktuálně existuje více snímků databáze.

Další informace najdete v tématu Vrácení databáze k snímku databáze.

Zabezpečení

Operace zálohování může volitelně zadat hesla pro sadu médií, zálohovací sadu nebo obojí. Pokud je heslo definováno v sadě médií nebo sadě záloh, je nutné zadat správné heslo nebo hesla v příkazu RESTORE. Tato hesla brání neoprávněným operacím obnovení a neautorizovaným připojením sad záloh k médiím pomocí nástrojů SQL Serveru. Médium chráněné heslem ale může přepsat možnost FORMAT příkazu BACKUP.

Důležité

Ochrana poskytovaná tímto heslem je slabá. Účelem je zabránit nesprávnému obnovení pomocí nástrojů SQL Serveru autorizovanými nebo neoprávněnými uživateli. Nezabrání čtení zálohovaných dat jinými prostředky ani nahrazení hesla. Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Osvědčeným postupem pro ochranu záloh je ukládání záložních pásek do zabezpečeného umístění nebo zálohování na diskové soubory, které jsou chráněné odpovídajícími seznamy řízení přístupu (ACL). Seznamy ACL by měly být nastavené v kořenovém adresáři, pod kterým se vytvářejí zálohy.

Povolení

Pokud obnovená databáze neexistuje, musí mít CREATE DATABASE uživatel oprávnění ke spuštění příkazu RESTORE. Pokud databáze existuje, oprávnění RESTORE výchozí pro členy sysadmin a dbcreator pevné role serveru a vlastník (dbo) databáze (pro možnost FROM DATABASE_SNAPSHOT vždy existuje).

Oprávnění RESTORE jsou udělena rolím, ve kterých jsou informace o členství vždy snadno dostupné pro server. Vzhledem k tomu, že pevné členství v rolích databáze je možné zkontrolovat pouze v případě, že je databáze přístupná a nepoškozená, což není vždy případ spuštění funkce RESTORE, nemají členové db_owner pevné databázové role oprávnění RESTORE.

Examples

Všechny příklady předpokládají, že se provedlo úplné zálohování databáze.

Příklady OBNOVENÍ zahrnují následující:

Poznámka:

Další příklady najdete v tématech s postupy obnovení, která jsou uvedená v části Přehled obnovení a obnovení.

A. Obnovení úplné databáze

Následující příklad obnoví úplnou zálohu databáze z logického zálohovacího AdventureWorksBackups zařízení. Příklad vytvoření tohoto zařízení najdete v tématu Zálohovací zařízení.

RESTORE DATABASE AdventureWorks2022
  FROM AdventureWorks2022Backups;

Poznámka:

Pro databázi používající úplný nebo hromadně protokolovaný model obnovení vyžaduje SQL Server ve většině případů zálohování konce protokolu před obnovením databáze. Další informace najdete v tématu Tail-Log zálohování.

[Nejlepší příklady]

B. Obnovení úplných a rozdílových záloh databáze

Následující příklad obnoví úplnou zálohu databáze následovanou rozdílovým zálohováním ze zálohovacího Z:\SQLServerBackups\AdventureWorks2022.bak zařízení, které obsahuje obě zálohy. Úplná záloha databáze, která se má obnovit, je šestá sada záloh na zařízení (FILE = 6) a rozdílová záloha databáze je devátá zálohovaná sada na zařízení (FILE = 9). Jakmile se rozdílové zálohování obnoví, databáze se obnoví.

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;

[Nejlepší příklady]

C. Obnovení databáze pomocí syntaxe RESTART

Následující příklad používá RESTART možnost restartovat RESTORE operaci přerušenou selháním napájení serveru.

-- 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;

[Nejlepší příklady]

D. Obnovení databáze a přesunutí souborů

Následující příklad obnoví úplnou databázi a transakční protokol a přesune obnovenou databázi do C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data adresáře.

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;

[Nejlepší příklady]

E. Kopírování databáze pomocí funkce BACKUP a RESTORE

Následující příklad používá příkazy BACKUP i RESTORE k vytvoření kopie AdventureWorks2025 databáze. Příkaz MOVE způsobí obnovení dat a souboru protokolu do zadaných umístění. Tento RESTORE FILELISTONLY příkaz slouží k určení počtu a názvů souborů v obnovené databázi. Nová kopie databáze má název TestDB. Další informace naleznete v tématu 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

[Nejlepší příklady]

F. Obnovení k určitému bodu v čase pomocí funkce STOPAT

Následující příklad obnoví databázi do jejího stavu jako zapnuto 12:00 AMApril 15, 2020 a ukazuje operaci obnovení, která zahrnuje více záloh protokolů. Na zálohovacím zařízení je úplná záloha databáze, která se má obnovit, AdventureWorksBackupstřetí zálohovací sada v zařízení (FILE = 3), první záloha protokolu je čtvrtá sada zálohování (FILE = 4) a druhá záloha protokolu je pátá zálohovací sada (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;

[Nejlepší příklady]

G. Obnovení transakčního protokolu na značku

Následující příklad obnoví transakční protokol na značku v označené transakci s názvem 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';

[Nejlepší příklady]

H. Obnovení pomocí syntaxe PÁSKY

Následující příklad obnoví úplnou zálohu databáze ze záložního TAPE zařízení.

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

[Nejlepší příklady]

I. Obnovení pomocí syntaxe FILE a FILEGROUP

Následující příklad obnoví databázi s názvem MyDatabase dva soubory, jednu sekundární skupinu souborů a jeden transakční protokol. Databáze používá úplný model obnovení.

Zálohování databáze je devátá zálohovací sada v sadě médií na logickém zálohovacím zařízení s názvem MyDatabaseBackups. V dalším kroku se obnoví tři zálohy protokolů, které jsou v dalších třech sadách zálohování (1011, a 12) na MyDatabaseBackups zařízení, pomocí WITH NORECOVERY. Po obnovení poslední zálohy NORECOVERYprotokolu se databáze obnoví.

Poznámka:

Obnovení se provádí jako samostatný krok, aby se snížila možnost obnovení příliš brzy před obnovením všech záloh protokolů. Další informace o procesu obnovení naleznete v tématu Přehled obnovení a obnovení (SQL Server).

RESTORE DATABASEVšimněte si, že existují dva typy FILE možností. Možnosti FILE předcházející názvu zálohovacího zařízení určují názvy logických souborů databáze, které se mají obnovit ze zálohovací sady, FILE = 'MyDatabase_data_1'například . Tato sada záloh není první zálohou databáze v sadě médií; proto je jeho pozice v množině médií označena pomocí FILE možnosti v WITH klauzuli , 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

[Nejlepší příklady]

J. Vrácení ze snímku databáze

Následující příklad vrátí databázi na snímek databáze. V příkladu se předpokládá, že v databázi aktuálně existuje pouze jeden snímek. Příklad vytvoření tohoto snímku databáze najdete v tématu Vytvoření snímku databáze.

Poznámka:

Návrat k snímku zahodí všechny fulltextové katalogy.

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

Další informace najdete v tématu Vrácení databáze k snímku databáze.

[Nejlepší příklady]

K. Obnovení ze služby Microsoft Azure Blob Storage

Následující tři příklady zahrnují použití služby Microsoft Azure Storage. Název účtu úložiště je mystorageaccount. Kontejner pro datové soubory se nazývá myfirstcontainer. Kontejner pro záložní soubory se nazývá mysecondcontainer. Pro každý kontejner se vytvořila uložená zásada přístupu s právy ke čtení, zápisu, odstranění a výpisu. Přihlašovací údaje SQL Serveru byly vytvořeny pomocí sdílených přístupových podpisů přidružených k uloženým zásadám přístupu. Informace týkající se zálohování a obnovení SQL Serveru pomocí služby Microsoft Azure Blob Storage najdete v tématu Zálohování a obnovení SQL Serveru pomocí služby Microsoft Azure Blob Storage.

K1. Obnovení úplné zálohy databáze ze služby Microsoft Azure Storage
Úplná záloha databáze, která se nachází na mysecondcontaineradrese , Sales bude obnovena do myfirstcontainer. Sales na serveru aktuálně neexistuje.

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. Obnovení úplné zálohy databáze ze služby Microsoft Azure Storage do místního úložiště Úplná záloha databáze, která se nachází na mysecondcontaineradrese , Sales bude obnovena do místního úložiště. Sales na serveru aktuálně neexistuje.

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. Obnovení úplné zálohy databáze z místního úložiště do služby Úložiště Microsoft Azure

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. Obnovení ze zálohy snímku

Představeno v SYSTÉMU SQL Server 2022 (16.x). Další informace najdete v tématu Vytvoření zálohy snímku Transact-SQL.

L1. Obnovení úplné zálohy

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

L2. Obnovení zálohy a použití transakčního protokolu

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. Obnovení ze zálohy snímku a umístění souborů databáze a protokolů do nového umístění

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';

[Nejlepší příklady]

Další kroky

* SQL spravovaná instance *

 

Azure SQL Managed Instance

Tento příkaz umožňuje obnovit celou databázi z úplného zálohování databáze (úplné obnovení) z účtu služby Azure Blob Storage.

Další podporované příkazy RESTORE najdete tady:

Důležité

Pokud chcete provést obnovení z automatického zálohování služby SQL Managed Instance, přečtěte si téma Obnovení služby SQL Database.

Syntaxe

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

Určuje cílovou databázi.

Z ADRESY URL

Určuje jedno nebo více zálohovaných zařízení umístěných na adresách URL, která se použijí pro operaci obnovení. Formát adresy URL slouží k obnovení záloh ze služby Úložiště Microsoft Azure.

Důležité

Pokud chcete provést obnovení z více zařízení při obnovování z adresy URL, musíte použít tokeny sdíleného přístupového podpisu (SAS). Příklady vytvoření sdíleného přístupového podpisu najdete v tématu Zálohování SQL Serveru na adresu URL a zjednodušení vytváření přihlašovacích údajů SQL s tokeny sdíleného přístupového podpisu (SAS) ve službě Azure Storage pomocí PowerShellu.

n Je zástupný symbol, který označuje, že v seznamu oddělených čárkami může být zadáno až 64 zálohovacích zařízení.

Poznámky

Jako předpoklad je nutné vytvořit přihlašovací údaje s názvem, který odpovídá adrese URL účtu úložiště objektů blob a sdílený přístupový podpis umístěný jako tajný klíč. Příkaz RESTORE vyhledá přihlašovací údaje pomocí adresy URL úložiště objektů blob a vyhledá informace potřebné ke čtení zálohovacího zařízení.

Operace RESTORE je asynchronní – obnovení pokračuje i v případě, že se připojení klienta přeruší. Pokud dojde k ukončení připojení, můžete zkontrolovat , sys.dm_operation_status zobrazení stavu operace obnovení (stejně jako u databáze CREATE a DROP).

Následující možnosti databáze jsou nastavené nebo přepsány a nelze je později změnit:

  • NEW_BROKER (pokud v souboru .bak není povolený zprostředkovatel)
  • ENABLE_BROKER (pokud v souboru .bak není povolený zprostředkovatel)
  • AUTO_CLOSE=VYPNUTO (pokud má databáze v souboru .bak AUTO_CLOSE=ZAPNUTO)
  • OBNOVENÍ FULL (pokud má databáze v souboru .bak jednoduchý nebo BULK_LOGGED model obnovení)
  • Skupina souborů optimalizovaná pro paměť se přidá a nazývá se XTP, pokud nebyla ve zdrojovém .bak souboru. Jakákoli existující skupina souborů optimalizovaná pro paměť se přejmenuje na XTP.
  • možnosti SINGLE_USER a RESTRICTED_USER se převedou na MULTI_USER

Omezení – spravovaná instance SQL

Platí tato omezení:

  • . Soubory BAK obsahující více sad záloh nelze obnovit.
  • . Soubory BAK obsahující více souborů protokolu nelze obnovit.
  • Obnovení selže, pokud .bak obsahuje data FILESTREAM.
  • Zálohy obsahující databáze, které mají aktivní objekty v paměti, nelze obnovit na úroveň výkonu pro obecné účely.
  • Zálohy obsahující databáze v režimu jen pro čtení se momentálně nedají obnovit.

Další informace najdete v tématu Azure SQL Managed Instance

Obnovení šifrované databáze

Pokud chcete obnovit databázi, která je zašifrovaná, musíte mít přístup k certifikátu nebo asymetrického klíče, který se použil k šifrování databáze. Bez certifikátu nebo asymetrického klíče nelze databázi obnovit. V důsledku toho musí být certifikát, který se používá k šifrování šifrovacího klíče databáze, zachován, pokud je potřeba zálohování. Další informace najdete v tématu Certifikáty SQL Serveru a asymetrické klíče.

Povolení

Aby uživatel mohl provést restore, musí mít CREATE DATABASE oprávnění.

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

Oprávnění RESTORE jsou udělena rolím, ve kterých jsou informace o členství vždy snadno dostupné pro server. Vzhledem k tomu, že pevné členství v rolích databáze je možné zkontrolovat pouze v případě, že je databáze přístupná a nepoškozená, což není vždy případ spuštění funkce RESTORE, nemají členové db_owner pevné databázové role oprávnění RESTORE.

Examples

Následující příklady obnoví kopii pouze zálohy databáze z adresy URL, včetně vytvoření přihlašovacích údajů.

A. Obnovení databáze ze čtyř zálohovacích zařízení

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

Pokud databáze již existuje, zobrazí se následující chyba: Msg 1801, Level 16, State 1, Line 9 Database 'WideWorldImportersStandard' already exists. Choose a different database name.

B. Obnovení databáze zadané prostřednictvím proměnné

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. Sledování průběhu příkazu restore

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'

Poznámka:

V tomto zobrazení se pravděpodobně zobrazí dvě žádosti o obnovení. Jeden je původní příkaz RESTORE odeslaný klientem a druhý je příkaz RESTORE na pozadí, který se spouští i v případě, že připojení klienta selže.

*Analytika
Systém platformy (PDW) *

 

Systém analytických platforem

Obnoví uživatelskou databázi systému Analytics Platform System (PDW) ze zálohy databáze do zařízení PDW (Analytics Platform System). Databáze se obnoví ze zálohy, kterou dříve vytvořil příkaz BACKUP DATABASE - Analytics Platform System (PDW) BACKUP DATABASE - Analytics Platform System . Operace zálohování a obnovení použijte k vytvoření plánu zotavení po havárii nebo k přesunu databází z jednoho zařízení do druhého.

Poznámka:

Obnovení master systémové databáze zahrnuje obnovení přihlašovacích údajů zařízení. K obnovení master databáze použijte stránku Obnovit hlavní databázi v nástroji Configuration Manager . Tuto operaci může provést správce s přístupem k řídicímu uzlu. Další informace o zálohách databáze PDW (Analytics Platform System) najdete v dokumentaci k produktu Analytics Platform System (PDW).

Syntaxe

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

OBNOVIT DATABASE_NAME DATABÁZE

Určuje obnovení uživatelské databáze do databáze s názvem database_name. Obnovená databáze může mít jiný název než zdrojová databáze, která byla zálohována. database_name již nemůže existovat jako databáze v cílovém zařízení. Další informace o povolených názvech databází najdete v části Pravidla pojmenování objektů v dokumentaci k produktu PdW (Analytics Platform System).

Obnovením uživatelské databáze se obnoví úplná záloha databáze a volitelně se do zařízení obnoví rozdílová záloha. Obnovení uživatelské databáze zahrnuje obnovení uživatelů databáze a databázových rolí.

Z DISKU = '\\UNC_path\backup_directory'

Cesta k síti a adresář, ze kterého bude systém PDW (Analytics Platform System) obnovovat záložní soubory. Například FROM DISK = '\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'.

backup_directory Určuje název adresáře, který obsahuje úplné nebo rozdílové zálohování. Můžete například provést operaci RESTORE HEADERONLY s úplným nebo rozdílovým zálohováním.

full_backup_directory Určuje název adresáře, který obsahuje úplné zálohování.

differential_backup_directory Určuje název adresáře, který obsahuje rozdílové zálohování.

  • Cesta a záložní adresář již musí existovat a musí být zadán jako plně kvalifikovaná cesta UNC (Universal Naming Convention).
  • Cesta k záložnímu adresáři nemůže být místní cesta a nemůže se jednat o umístění na žádném uzlu zařízení PDW (Analytics Platform System).
  • Maximální délka cesty UNC a názvu záložního adresáře je 200 znaků.
  • Server nebo hostitel musí být zadán jako IP adresa.

OBNOVIT HEADERONLY

Určuje, že se mají vrátit pouze informace o hlavičce pro jednu zálohu uživatelské databáze. Kromě jiných polí záhlaví obsahuje textový popis zálohy a název zálohy. Název zálohy nemusí být stejný jako název adresáře, který ukládá záložní soubory.

Výsledky RESTORE HEADERONLY se vzorují po výsledcích FUNKCE HEADERONLY PRO OBNOVENÍ SYSTÉMU SQL Server. Výsledek má více než 50 sloupců, které nejsou všechny používány systémem PDW (Analytics Platform System). Popissloupcůch

Povolení

CREATE ANY DATABASE Vyžaduje oprávnění.

Vyžaduje účet Systému Windows, který má oprávnění pro přístup a čtení ze záložního adresáře. Musíte také uložit název a heslo účtu Windows v systému Analytics Platform System (PDW).

Zpracování chyb

Příkaz RESTORE DATABASE vede k chybám za následujících podmínek:

  • Název databáze, která se má obnovit, již na cílovém zařízení existuje. Chcete-li tomu zabránit, zvolte jedinečný název databáze nebo před spuštěním obnovení odstraňte existující databázi.
  • V adresáři zálohování je neplatná sada záložních souborů.
  • Pro obnovení databáze nestačí přihlašovací oprávnění.
  • Systém PDW (Analytics Platform System) nemá správná oprávnění k síťovému umístění, kde jsou umístěné záložní soubory.
  • Síťové umístění záložního adresáře neexistuje nebo není k dispozici.
  • Na výpočetních uzlech nebo řídicím uzlu není dostatek místa na disku. Systém PDW (Analytics Platform System) před zahájením obnovení nepotvrzuje, že na zařízení existuje dostatek místa na disku. Proto je možné při spuštění příkazu RESTORE DATABASE vygenerovat chybu nedostatek místa na disku. Pokud dojde k nedostatku místa na disku, nástroj Analytics Platform System (PDW) vrátí obnovení zpět.
  • Cílové zařízení, do kterého se databáze obnovuje, má méně výpočetních uzlů než zdrojové zařízení, ze kterého byla databáze zálohována.
  • Obnovení databáze se pokusí provést z transakce.

Poznámky

Systém PDW (Analytics Platform System) sleduje úspěch obnovení databáze. Před obnovením rozdílové zálohy databáze ověří systém PDW (Analytics Platform System) úspěšné obnovení úplné databáze.

Po obnovení bude mít uživatelská databáze úroveň kompatibility databáze 120. To platí pro všechny databáze bez ohledu na původní úroveň kompatibility.

Obnovení zařízení s větším počtem výpočetních uzlů

Po obnovení databáze z menšího na větší zařízení spusťte DBCC SHRINKLOG (Azure Synapse Analytics ), protože redistribuce zvýší transakční protokol.

Obnovení zálohy na zařízení s větším počtem výpočetních uzlů roste přidělená velikost databáze v poměru k počtu výpočetních uzlů.

Například při obnovování 60GB databáze ze zařízení s 2 uzly (30 GB na uzel) na zařízení s 6 uzly vytvoří systém PDW (Analytics Platform System) databázi 180 GB (6 uzlů s 30 GB na uzel) na zařízení se 6 uzly. Systém PDW (Analytics Platform System) nejprve obnoví databázi na 2 uzly, aby odpovídala zdrojové konfiguraci, a pak redistribuuje data do všech 6 uzlů.

Po redistribuci bude každý výpočetní uzel obsahovat méně skutečných dat a více volného místa než každý výpočetní uzel na menším zdrojovém zařízení. Další místo použijte k přidání dalších dat do databáze. Pokud je obnovená velikost databáze větší, než potřebujete, můžete velikost souborů databáze zmenšit pomocí příkazu ALTER DATABASE – PDW .

Limity a omezení

Pro tato omezení a omezení je zdrojové zařízení zařízení, ze kterého se vytvořila záloha databáze, a cílovým zařízením je zařízení, do kterého se databáze obnoví.

  • Při obnovování databáze nedojde k automatickému opětovnému sestavení statistiky.
  • Na zařízení může být v daném okamžiku spuštěn pouze jeden příkaz RESTORE DATABASE nebo BACKUP DATABASE. Pokud se současně odešle více příkazů zálohování a obnovení, zařízení je umístí do fronty a zpracuje je postupně.
  • Zálohu databáze můžete obnovit pouze do cílového zařízení PDW (Analytics Platform System), které má stejný počet nebo více výpočetních uzlů než zdrojové zařízení. Cílové zařízení nemůže mít méně výpočetních uzlů než zdrojové zařízení.
  • Zálohu vytvořenou na zařízení s hardwarem SQL Server 2012 PDW nelze obnovit na zařízení s hardwarem SQL Serveru 2008 R2. To platí i v případě, že bylo zařízení původně zakoupeno s hardwarem SQL Server 2008 R2 PDW a nyní používá software SQL Server 2012 PDW.

Uzamčení

Vezme výhradní zámek objektu DATABASE.

Examples

A. Jednoduché příklady OBNOVENÍ

Následující příklad obnoví úplnou zálohu databáze SalesInvoices2013 . Záložní soubory jsou uloženy v adresáři \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full . Databáze SalesInvoices2013 již na cílovém zařízení neexistuje nebo tento příkaz selže s chybou.

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

B. Obnovení úplného a rozdílového zálohování

Následující příklad obnoví úplné a pak rozdílové zálohování databáze SalesInvoices2013 .

Úplná záloha databáze se obnoví z úplné zálohy, která je uložená \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full v adresáři. Pokud se obnovení úspěšně dokončí, rozdílové zálohování se obnoví do SalesInvoices2013 databáze. Rozdílové zálohování je uloženo v \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff adresáři.

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

C. Obnovení hlavičky zálohy

Tento příklad obnoví informace hlavičky pro zálohování \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Fulldatabáze . Výsledkem příkazu je jeden řádek informací pro Invoices2013Full zálohování.

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

Informace hlavičky můžete použít ke kontrole obsahu zálohy nebo k ověření, že cílové zařízení pro obnovení je kompatibilní se zdrojovým zálohovacím zařízením před pokusem o obnovení zálohy.

Další kroky