RESTORE Výroky - Argumenty (Transact-SQL)

platí pro:SQL Server

Tento článek dokumentuje argumenty popsané v sekcích Syntaxe v {RESTOREDATABASE|LOG} a příslušné sady pomocných tvrzení: RESTORE, , RESTORERESTORERESTORE LABELONLYRESTORE HEADERONLY, RESTORERESTORE REWINDONLY, a .RESTORERESTORE VERIFYONLYRESTORE FILELISTONLY Většina argumentů je podporována pouze podmnožinou těchto šesti příkazů. Podpora každého argumentu je uvedena v popisu argumentu.

Transact-SQL konvence syntaxe

Syntax

Syntaxi najdete v následujících článcích:

Argumenty

DATABASE

Podporováno:RESTORE

Určuje cílovou databázi. Pokud je zadán seznam souborů a skupin souborů, obnoví se pouze tyto soubory a skupiny souborů.

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. Obnovení databáze bez předchozího zálohování konce logu vede k chybě, pokud RESTOREDATABASE příkaz neobsahuje buď klauzuli WITH REPLACE nebo WITH STOPAT, která musí specifikovat čas nebo transakci nastalou po skončení zálohy dat. Další informace o zálohování tail-log naleznete v tématu Tail-Log zálohování (SQL Server).

LOG

Podporováno:RESTORE

Určuje, že pro tuto databázi se má použít záloha transakčního protokolu. Transakční protokoly musí být použity v sekvenčním pořadí. SQL Server zkontroluje zálohovaný transakční protokol, aby se zajistilo, že se transakce načítají do správné databáze a ve správném pořadí. Pokud chcete použít více transakčních protokolů, použijte možnost NORECOVERY pro všechny operace obnovení s výjimkou poslední.

Note

Poslední obnovený protokol je obvykle záloha koncového protokolu. Záloha protokolu tail-log je záloha protokolu pořízená přímo před obnovením databáze, obvykle po selhání databáze. Pořízení zálohy protokolu tail-log z pravděpodobně poškozené databáze zabraňuje ztrátě práce zachycením protokolu, který ještě nebyl zálohován (konec protokolu). Další informace naleznete v tématu Tail-Log zálohování (SQL Server).

Další informace najdete v tématu Použití záloh transakčních protokolů (SQL Server).

{ database_name | @database_name_var }

Podporováno:RESTORE

Je databáze, do které se obnoví protokol nebo úplná databáze. Pokud je zadaný jako proměnná (@database_name_var), může být tento název zadán buď jako řetězcová konstanta (@database_name_var = název_databáze), nebo jako proměnná datového typu řetězce znaků s výjimkou datových typů typu ntext nebo text.

< > file_or_filegroup_or_page [ ,... n ]

Podporováno:RESTORE

Specifikuje název logického souboru, skupiny souborů nebo stránky, která má být zahrnuta do příkazu RESTOREDATABASE LOG RESTORE . Můžete zadat seznam souborů nebo skupin souborů.

U databáze, která používá jednoduchý model obnovení, jsou možnosti FILE a FILEGROUP povoleny pouze v případě, že cílové soubory nebo skupiny souborů jsou jen pro čtení, nebo pokud se jedná o částečné obnovení (což vede k vyřazení skupiny souborů).

U databáze, která používá kompletní nebo hromadně logovaný model obnovy, po obnovení RESTOREDATABASE jednoho nebo více souborů, skupin souborů a/nebo stránek obvykle musíte aplikovat transakční log na soubory obsahující obnovená data; použití logu činí tyto soubory konzistentními se zbytkem databáze. Výjimky z tohoto postupu jsou následující:

  • Pokud byly obnovované soubory pouze pro čtení před posledním zálohováním, pak není nutné aplikovat transakční záznam a RESTORE příkaz vás o této situaci informuje.

  • Pokud záloha obsahuje primární skupinu souborů a provádí se částečné obnovení. V takovém případě není protokol obnovení potřeba, protože protokol se automaticky obnoví ze zálohovací sady.

FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }

Pojmenuje soubor, který se má zahrnout do obnovení databáze.

FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

Pojmenuje skupinu souborů, která se má zahrnout do obnovení databáze.

Skupina FILEGROUP je povolena v jednoduchém modelu obnovení pouze v případě, že zadaná skupina souborů je určená jen pro čtení a jedná se o částečné obnovení (to znamená, že pokud se použije funkce WITH PARTIAL). Všechny nerestorované skupiny souborů pro čtení a zápis jsou označené jako zastaralé a nelze je následně obnovit do výsledné databáze.

READ_WRITE_FILEGROUPS

Vybere všechny skupiny souborů pro čtení i zápis. Tato možnost je obzvláště užitečná, pokud máte skupiny souborů jen pro čtení, které chcete obnovit po skupinách souborů jen pro čtení a zápis před skupinami souborů jen pro čtení.

PAGE = 'file:page [ ,... n ]'

Určuje seznam jedné nebo více stránek pro obnovení stránky (což je podporováno pouze pro databáze používající úplné nebo hromadně protokolované modely obnovení). Hodnoty jsou následující:

STRANA
Označuje seznam jednoho nebo více souborů a stránek.

soubor
Je ID souboru souboru obsahujícího konkrétní stránku, která se má obnovit.

Stránka
Je ID stránky stránky, která se má v souboru obnovit.

n
Je zástupný symbol označující, že lze zadat více stránek.

Maximální počet stránek, které lze obnovit do libovolného souboru v sekvenci obnovení, je 1 000. Pokud ale v souboru máte více než malý počet poškozených stránek, zvažte obnovení celého souboru místo stránek.

Note

Obnovení stránky se nikdy neobnoví.

Další informace o obnovení stránky najdete v tématu Restore Pages (SQL Server).

[ ,... n ]
Je zástupný symbol označující, že v seznamu oddělených čárkami je možné zadat více souborů a skupin souborů a stránek. Číslo je neomezené.

FROM { <backup_device> [ ,... n ] | <> database_snapshot }

Obvykle určuje zálohovací zařízení, ze kterých se má záloha obnovit. Alternativně může v příkazu RESTOREDATABASE klauzule FROM specifikovat název snímku databáze, na který databázi vracíte, v takovém případě není povolena žádná klauzule WITH.

Pokud klauzule FROM vynecháte, neprobíhá obnovení zálohy. Místo toho se databáze obnoví. To vám umožní obnovit databázi obnovenou pomocí možnosti NORECOVERY nebo přepnout na pohotovostní server. Pokud je klauzule FROM vynechána, musí být v klauzuli WITH zadána klauzule NORECOVERY, RECOVERY nebo STANDBY.

< > backup_device [ ,... n ]

Určuje logická nebo fyzická zálohovací zařízení, která se mají použít pro operaci obnovení.

Podpořeno :RESTORERESTORE FILELISTONLY , , RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY, a .RESTORE VERIFYONLY

< >backup_device:=Určuje logické nebo fyzické zálohovací zařízení, které se má použít pro operaci zálohování, následujícím způsobem:

{ logical_backup_device_name | @logical_backup_device_name_var }
Je logický název, který musí dodržovat pravidla pro identifikátory, zálohovacích zařízení vytvořených sp_addumpdevice , ze kterých je databáze obnovena. Pokud je zadána jako proměnná (@logical_backup_device_name_var), může být název zálohovaného zařízení zadán jako řetězcová konstanta (@logical_backup_device_name_var logical_backup_device_name = ) nebo jako proměnná datového typu řetězce znaků s výjimkou datových typů typu ntext nebo text.

{DISK | TAPE} = { 'physical_backup_device_name'physical_backup_device_name_var | @}
Umožňuje obnovení záloh z pojmenovaného disku nebo páskového zařízení. Typy disků a pásky by měly být zadány se skutečným názvem (například úplnou cestou a názvem souboru) zařízení: DISK ='Z:\SQLServerBackups\AdventureWorks.bak' nebo TAPE ='\\\\.\TAPE0'. Pokud je zadána jako proměnná (@physical_backup_device_name_var), může být název zařízení zadán jako řetězcová konstanta (@physical_backup_device_name_var = "physical_backup_device_name") nebo jako proměnná datového typu řetězce znaků s výjimkou datových typů ntext nebo textu.

Pokud používáte síťový server s názvem UNC (který musí obsahovat název počítače), zadejte typ zařízení disku. Další informace o používání názvů UNC najdete v tématu Backup Devices (SQL Server).

Účet, pod kterým provozujete SQL Server, musí mít přístup k READ přístupu k vzdálenému počítači nebo síťovému serveru, aby mohl provést RESTORE operaci.

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

Jestli sekvence obnovení vyžaduje tolik zálohovaných zařízení, kolik bylo použito k vytvoření sady médií, do které zálohy patří, závisí na tom, jestli je obnovení offline nebo online, následujícím způsobem:

  • Offline obnovení umožňuje obnovení zálohy pomocí menšího počtu zařízení, než bylo použito k vytvoření zálohy.

  • Online obnovení vyžaduje všechna zálohovaná zařízení zálohy. Pokus o obnovení s menším počtem zařízení selže.

Představte si například případ, kdy byla databáze zálohovaná až čtyřmi páskovými jednotkami připojenými k serveru. Online obnovení vyžaduje, abyste měli čtyři jednotky připojené k serveru; Offline obnovení umožňuje obnovit zálohu, pokud je na počítači méně než čtyři jednotky.

Note

Při obnovování zálohy ze zrcadlené sady médií můžete pro každou řadu médií zadat pouze jeden zrcadlo. V případě chyb ale ostatní zrcadla umožňují rychle vyřešit některé problémy s obnovením. Poškozený multimediální svazek můžete nahradit odpovídajícím svazkem z jiného zrcadla. Mějte na paměti, že pro offline obnovení můžete provést obnovení z méně zařízení než z řad médií, ale každá rodina se zpracuje pouze jednou.

< >database_snapshot::=

Podporováno:RESTORE DATABASE

= DATABASE_SNAPSHOT database_snapshot_name
Vrátí databázi na snímek databáze určený database_snapshot_name. Možnost DATABASE_SNAPSHOT je k dispozici pouze pro úplné obnovení databáze. V operaci vrácení se snímek databáze pořídí jako úplné zálohování databáze.

Operace vrácení zpět vyžaduje, aby zadaný snímek databáze byl jediným snímkem databáze. Během operace vrácení se snímek databáze a cílová databáze označí jako In restore. Další informace naleznete v části Poznámky v RESTORE DATABASEčásti .

MOŽNOSTI WITH

Určuje možnosti, které má operace obnovení použít. Souhrn toho, které příkazy používají jednotlivé možnosti, najdete dále v tomto článku v části Souhrn podpory možností WITH.

Note

Možnosti WITH jsou zde uspořádány ve stejném pořadí jako v sekci "Syntax" v RESTORE {DATABASE|LOG}.

ČÁSTEČNÝ

Podporováno:RESTORE DATABASE

Určuje částečnou operaci obnovení, která obnoví primární skupinu souborů a všechny zadané sekundární skupiny souborů. Možnost PARTIAL implicitně vybere primární skupinu souborů; zadání FILEGROUP = 'PRIMARY' není nutné. Chcete-li obnovit sekundární skupinu souborů, je nutné explicitně zadat skupinu souborů pomocí možnosti FILE nebo FILEGROUP možnost.

Možnost PARTIAL není povolena u RESTORE příkazů LOG.

Možnost PARTIAL spustí počáteční fázi kusmeálního obnovení, která umožňuje obnovení zbývajících skupin souborů později. Pro více informací viz Dílčí obnovení (SQL Server).

[ OBNOVENÍ | NORECOVERY | POHOTOVOSTNÍ REŽIM ]

Podporováno:RESTORE

OBNOVENÍ
Dává operaci obnovení pokyn, aby vrátil zpět všechny nepotvrzené transakce. Po procesu obnovení je databáze připravená k použití. Pokud není zadána funkce NORECOVERY, RECOVERY ani POHOTOVOSTNÍ REŽIM, je funkce RECOVERY výchozí.

Pokud jsou plánovány další RESTORE operace (LOG neboRESTORERESTOREDATABASE z diferenciálního režimu), měly by být místo toho specifikovány NORECOVERY nebo STANDBY.

Při obnovování sad záloh ze starší verze SQL Server se může vyžadovat upgrade databáze. Tento upgrade se provede automaticky při zadání FUNKCE RECOVERY. Další informace najdete v tématu Použití záloh transakčních protokolů (SQL Server).

Note

Pokud je klauzule FROM vynechána, musí být v klauzuli WITH zadána klauzule NORECOVERY, RECOVERY nebo STANDBY.

NORECOVERY

Dává operaci obnovení pokyn, aby se nevrátily žádné nepotvrzené transakce. Pokud je nutné později použít jiný transakční protokol, zadejte možnost NORECOVERY nebo POHOTOVOSTNÍ. Pokud není zadána funkce NORECOVERY, RECOVERY ani POHOTOVOSTNÍ REŽIM, je funkce RECOVERY výchozí. Během offline operace obnovení pomocí možnosti NORECOVERY není databáze použitelná.

Pro obnovení zálohy databáze a jednoho nebo více transakčních logů, nebo kdykoli je potřeba více RESTORE příkazů (například při obnově plné databázové zálohy následované diferenciální zálohou databáze), RESTORE je potřeba volba WITH NORECOVERY u všech příkazů kromě posledního RESTORE . Nejlepší praxí je používat WITH NORECOVERY na VŠECHNY příkazy v vícestupňové sekvenci obnovy, dokud není dosaženo požadovaného bodu obnovy, a poté použít samostatný RESTORE příkaz WITH RECOVERY pouze pro obnovu.

Při použití se souborem nebo operací obnovení skupiny souborů vynutí NORECOVERY, aby databáze zůstala ve stavu obnovení po operaci obnovení. To je užitečné v některé z těchto situací:

  • Spouští se skript obnovení a protokol se vždy používá.

  • Používá se posloupnost obnovení souborů a databáze není použitelná mezi dvěma operacemi obnovení.

V některých případech RESTORE S NORECOVERY hody posunou dopředu dostatečně dopředu, aby byly v souladu s databází. V takových případech nedojde k vrácení zpět a data zůstanou offline podle očekávání s touto možností. Database Engine však vydává informační zprávu, která uvádí, že metodu roll-forward set je nyní možné obnovit pomocí možnosti OBNOVENÍ.

POHOTOVOSTNÍ REŽIM = standby_file_name

Určuje pohotovostní soubor, který umožňuje vrátit zpět účinky obnovení. Možnost POHOTOVOSTNÍ REŽIM je povolená pro offline obnovení (včetně částečného obnovení). Možnost je pro online obnovení zakázaná. Pokus o zadání možnosti POHOTOVOSTNÍ REŽIM pro operaci online obnovení způsobí selhání operace obnovení. Pohotovostní režim také není povolen, pokud je potřeba upgrade databáze.

Záložní soubor slouží k uchování předobrazu "copy-on-write" pro stránky upravené během zpětného přechodu WITH RESTORE STANDBY. Pohotovostní soubor umožňuje, aby databáze byla přenesena pro přístup jen pro čtení mezi obnovením transakčního protokolu a je možné ji použít s situacemi teplého pohotovostního serveru nebo zvláštními situacemi obnovení, ve kterých je vhodné zkontrolovat databázi mezi obnovením protokolu. Po RESTORE operaci WITH STANDBY je soubor zpět automaticky smazán další RESTORE operací. Pokud je tento záložní soubor ručně smazán před další RESTORE operací, musí být celá databáze znovu obnovena. I když je databáze ve stavu POHOTOVOSTNÍ REŽIM, měli byste s tímto pohotovostním souborem zacházet se stejnou opatrností jako s jakýmkoli jiným souborem databáze. Na rozdíl od jiných databázových souborů je tento soubor otevřen pouze Database Engine během aktivních operací obnovení.

Standby_file_name určuje pohotovostní soubor, jehož umístění je uloženo v protokolu databáze. Pokud existující soubor používá zadaný název, soubor se přepíše; v opačném případě Database Engine vytvoří soubor.

Požadavek na velikost daného pohotovostního souboru závisí na objemu akcí vrácení zpět vyplývajících z nepotvrzených transakcí během operace obnovení.

Important

Pokud je na jednotce s zadaným názvem pohotovostního souboru vyčerpáno volné místo na disku, operace obnovení se zastaví.

Pro srovnání RECOVERY a NORECOVERY viz sekci "Poznámky" v .RESTORE

LOADHISTORY

Podporováno:RESTORE VERIFYONLY

Určuje, že operace obnovení načte informace do msdb tabulek historie. Možnost LOADHISTORY načte informace o SQL Server záloh uložených na médiu na tabulky historie zálohování a obnovení v databázi msdb. Další informace o tabulkách historie najdete v tématu System Tables (Transact-SQL).

Mějte na paměti, že použití LOADHISTORY pro zálohy, které již existují v msdb tabulkách historie, přidá stejné informace s novým backup_set_id. Pokud navíc použijete LOADHISTORY k opětovnému vytvoření historie zálohování na msdbjiném serveru nebo po jeho odstranění z původního serveru, doporučujeme spustit příkazy pro obnovení záloh v pořadí, v jakém byly pořízeny. Tím se zajistí, že řetěz LSN zůstane nedotčený a průvodce obnovením SSMS správně přečte historii zálohování a vygeneruje správnou sekvenci obnovení. Použití LOADHISTORY s opětovným vytvořením historie zálohování mimo pořadí může způsobit chybu při pokusu o obnovení (Nejde vytvořit plán obnovení kvůli přerušení řetězu LSN. (Microsoft. SqlServer.SmoExtended)").

< > general_WITH_options [ ,... n ]

Následující obecné možnosti WITH jsou všechny podporovány v RESTOREDATABASE příkazech LOG a RESTORE LOG. Některé z těchto možností jsou podporovány také jedním nebo více pomocnými příkazy, jak je uvedeno.

Možnosti operace obnovení

Tyto možnosti ovlivňují chování operace obnovení.

PŘESUNOUT logical_file_name_in_backup do operating_system_file_name [ ,... n ]

Podporováno:RESTORE a RESTORE VERIFYONLY

Určuje, že data nebo soubor protokolu, jejichž logický název je určen logical_file_name_in_backup by se měl přesunout obnovením do umístění určeného operating_system_file_name. Název logického souboru dat nebo souboru protokolu v zálohovací sadě odpovídá jeho logickému názvu v databázi při vytvoření zálohovací sady.

n je zástupný symbol označující, že můžete zadat další příkazy MOVE. Zadejte příkaz MOVE pro každý logický soubor, který chcete obnovit ze zálohy nastavené na nové umístění. Ve výchozím nastavení se soubor logical_file_name_in_backup obnoví do původního umístění.

Note

Pro získání seznamu logických souborů ze zálohovací sady použijte RESTORE FILELISTONLY.

Pokud RESTORE je příkaz použit k přesunu databáze na stejný server nebo k jejímu zkopírování na jiný server, může být volba MOVE nutná k přesunu databázových souborů a k zabránění kolizím s existujícími soubory.

Při použití s RESTORE LOG lze možnost MOVE použít pouze k přesunu souborů, které byly přidány během intervalu pokrytého obnovením logu. Například pokud záloha logu obsahuje operaci přidání souboru pro soubor file23, může být tento soubor přesunut pomocí možnosti MOVE v RESTORE LOG.

Při použití se službou SQL Server Snapshot Backup je možné použít možnost PŘESUNOUT pouze k přemístění souborů do objektu blob Azure ve stejném účtu úložiště jako původní objekt blob. Možnost PŘESUNOUT nelze použít k obnovení zálohy snímku do místního souboru nebo do jiného účtu úložiště.

Pokud RESTORE VERIFYONLY je příkaz použit při plánování přesunu databáze na stejný server nebo její zkopírování na jiný server, může být volba MOVE nutná k ověření, že je v cíli dostatek místa a k identifikaci možných kolizí s existujícími soubory.

Další informace naleznete v tématu Kopírování databází se zálohováním a obnovením.

CREDENTIAL

Podpořeno:RESTORERESTORE FILELISTONLY , , RESTORE HEADERONLY, RESTORE LABELONLY, a .RESTORE VERIFYONLY

Applies to: SQL Server 2012 (11.x) SP1 CU2 a novější

Používá se pouze při obnovování zálohy ze služby Microsoft Azure Blob Storage.

Note

S SQL Server 2012 (11.x) SP1 CU2 až do SQL Server 2016 (13.x) můžete provést obnovení pouze z jednoho zařízení při obnovování z adresy URL. Pokud chcete provést obnovení z více zařízení při obnovování z adresy URL, musíte použít SQL Server 2016 (13.x) nebo novější a musíte použít tokeny sdíleného přístupového podpisu (SAS). Další informace najdete v tématu Enable SQL Server Managed Backup to Microsoft Azure a Simplifying creation of SQL Credentials with Shared Access Signature (SAS) tokens on Azure Storage with PowerShell.

REPLACE

Podporováno:RESTORE

Určuje, že SQL Server by měla vytvořit zadanou databázi a související soubory, i když již existuje jiná databáze se stejným názvem. V takovém případě se stávající databáze odstraní. Pokud není zadána možnost NAHRADIT, dojde k bezpečnostní kontrole. Zabráníte tak náhodnému přepsání jiné databáze. Bezpečnostní kontrola zajišťuje, že RESTOREDATABASE příkaz neobnoví databázi na aktuální server, pokud existují následující podmínky:

  • Databáze uvedená ve RESTORE výroku již existuje na aktuálním serveru, a

  • Název databáze se liší od názvu databáze zaznamenaného v sadě záloh.

REPLACE také umožňuje RESTORE přepsat existující soubor, který nelze ověřit jako součást obnovované databáze. Obvykle odmítá RESTORE přepsat již existující soubory. WITH REPLACE lze použít stejným způsobem i pro RESTORE možnost LOG.

Funkce REPLACE také přepíše požadavek, který před obnovením databáze zálohujete na konec protokolu.

Pro informace o dopadu použití možnosti REPLACE viz RESTORE (Transact-SQL).

RESTARTOVAT

Podporováno:RESTORE

Určuje, že SQL Server by měl restartovat operaci obnovení, která byla přerušena. RESTARTOVÁNÍ restartuje operaci obnovení v okamžiku, kdy došlo k přerušení.

RESTRICTED_USER

Podporováno:RESTORE.

Omezuje přístup pro nově obnovenou databázi na členy rolí db_owner, dbcreator nebo sysadmin . RESTRICTED_USER nahradí možnost DBO_ONLY. DBO_ONLY byl ukončen s SQL Server 2008 (10.0.x).

Použijte s možností OBNOVENÍ.

Možnosti sady záloh

Tyto možnosti fungují se sadou záloh obsahující zálohu, která se má obnovit.

FILE = { backup_set_file_number | @backup_set_file_number }

Podpořeno vztahy:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, a .RESTORE VERIFYONLY

Identifikuje sadu záloh, která se má obnovit. Například backup_set_file_numberz 1 označuje první sadu zálohování na záložním médiu a backup_set_file_number2 označuje druhou sadu zálohování. backup_set_file_number záložní množiny můžete získat pomocí RESTORE HEADERONLY tohoto příkazu.

Pokud není specifikováno, výchozí je 1, kromě RESTORE HEADERONLY případů, kdy jsou všechny zálohovací sady v mediální sadě zpracovány. Další informace naleznete v tématu Určení sady záloh.

Important

Tato možnost FILE nesouvisí s možností FILE pro zadání databázového souboru FILE = { logical_file_name_in_backup logical_file_name_in_backup_var | @ }.

PASSWORD = { password | @password_variable }

Podpořeno vztahy:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, a .RESTORE VERIFYONLY

Poskytuje heslo zálohovací sady. Heslo sady záloh je řetězec znaků.

Note

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

Pokud bylo při vytvoření sady záloh zadáno heslo, je toto heslo nutné k provedení jakékoli operace obnovení ze zálohovací sady. Jedná se o chybu při zadání nesprávného hesla nebo zadání hesla, pokud ho sada záloh nemá.

Important

Toto heslo poskytuje pouze slabou ochranu pro sadu médií. Další informace najdete v části Oprávnění příslušného příkazu.

[ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { <database_name> | @database_name_variable } ]

Představeno v SYSTÉMU SQL Server 2022 (16.x).

Vyžaduje se k obnovení ze zálohy snímku. BACKUP SERVER nebo BACKUP GROUP... Viz Vytvoření zálohy snímků Transact-SQL.

METADATA_ONLY je synonymem funkce SNAPSHOT. Rozhraní virtuálního zařízení (VDI) používá snapshot. Informace o VDI naleznete v rozhraní virtuálního zařízení (VDI) referenční.

Možnosti sady médií

Tyto možnosti fungují na sadě médií jako celku.

MEDIANAME = { media_name | @media_name_variable }

Podpořeno:RESTORERESTORE FILELISTONLY , , RESTORE HEADERONLY, RESTORE LABELONLY, a .RESTORE VERIFYONLY

Určuje název média. V případě potřeby se název média musí shodovat s názvem média na záložních svazcích; jinak se operace obnovení ukončí. Pokud ve výpisu RESTORE není uvedeno žádné jméno média, kontrola shodného názvu média na záložních svazcích se neprovádí.

Important

Konzistentní používání názvů médií v operacích zálohování a obnovení poskytuje dodatečnou bezpečnostní kontrolu pro média vybraná pro operaci obnovení.

MEDIAPASSWORD = { mediapassword | @mediapassword_variable }

Podpořeno:RESTORERESTORE FILELISTONLY , , RESTORE HEADERONLY, RESTORE LABELONLY, a .RESTORE VERIFYONLY

Poskytuje heslo sady médií. Heslo sady médií je řetězec znaků.

Note

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

Pokud bylo heslo zadané při formátování sady médií, je toto heslo nutné pro přístup k jakékoli zálohovací sadě na sadě médií. Jedná se o chybu při zadání nesprávného hesla nebo zadání hesla, pokud sada médií nemá žádné.

Important

Toto heslo poskytuje pouze slabou ochranu pro sadu médií. Další informace najdete v části Oprávnění pro příslušný příkaz.

BLOCKSIZE = { blocksize | @blocksize_variable }

Podporováno:RESTORE

Určuje velikost fyzického bloku v bajtech. Podporované velikosti jsou 512, 1024, 2048, 4096, 8192, 16384, 32768 a 65536 (64 kB). Výchozí hodnota je 65536 pro pásková zařízení a v opačném případě 512. Tato možnost je obvykle nepotřebná, protože RESTORE automaticky vybere velikost bloku, která je vhodná pro zařízení. Explicitní vyjádření velikosti bloku přepíše automatický výběr velikosti bloku.

Pokud obnovujete zálohu z disku CD-ROM, zadejte BLOCKSIZE=2048.

Note

Tato možnost obvykle ovlivňuje výkon pouze při čtení z páskových zařízení.

Možnosti přenosu dat

Možnosti umožňují optimalizovat přenos dat ze zálohovacího zařízení.

BUFFERCOUNT = { buffercount | @buffercount_variable }

Podporováno:RESTORE

Určuje celkový počet vstupně-výstupních vyrovnávacích pamětí, které se mají použít pro operaci obnovení. Můžete zadat libovolné kladné celé číslo; Velký počet vyrovnávacích pamětí však může způsobit chyby "nedostatek paměti" kvůli nedostatečnému virtuálnímu adresnímu prostoru v procesu Sqlservr.exe.

Celková velikost využitá vyrovnávacími pamětí je určena hodnotou : buffercount****maxtransfersize.

MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

Podporováno:RESTORE

Určuje největší jednotku přenosu v bajtech, která se má použít mezi záložním médium a SQL Server. Možné hodnoty jsou násobky 65536 bajtů (64 kB) v rozsahu až 4194304 bajtů (4 MB).

Note

Pokud databáze nakonfigurovala FILESTREAM nebo zahrnuje nebo In-Memory skupiny souborů OLTP, měla by být v době obnovení větší nebo rovna tomu, MAXTRANSFERSIZE co se použilo při vytvoření zálohy.

Možnosti správy chyb

Tyto možnosti umožňují určit, jestli jsou pro operaci obnovení povoleny kontrolní součty zálohování a jestli se operace zastaví při výskytu chyby.

{ KONTROLNÍ SOUČET | NO_CHECKSUM }

Podpořeno:RESTORERESTORE FILELISTONLY , , RESTORE HEADERONLY, RESTORE LABELONLY, a .RESTORE VERIFYONLY

Výchozí chování je ověřit kontrolní součty, pokud jsou přítomné, a pokračovat bez ověření, pokud nejsou přítomny.

CHECKSUM
Určuje, že kontrolní součty zálohování musí být ověřeny a pokud záloha neobsahuje kontrolní součty zálohování, způsobí selhání operace obnovení se zprávou, že kontrolní součty nejsou k dispozici.

Note

Kontrolní součty stránek jsou relevantní pro operace zálohování pouze v případě, že se používají kontrolní součty zálohování.

Ve výchozím nastavení, když narazí na neplatný kontrolní součet RESTORE , hlásí chybu kontrolního součtu a zastaví se. Pokud však zadáte CONTINUE_AFTER_ERROR, pokračuje RESTORE po vrácení chyby kontrolního součtu a čísla stránky obsahující neplatný kontrolní součet, pokud to poškození dovoluje.

Další informace o práci s kontrolními součty zálohování najdete v tématu Položitelné chyby médií při zálohování a obnovení (SQL Server).

NO_CHECKSUM
Explicitně zakáže ověření kontrolních součtů operací obnovení.

{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

Podpořeno:RESTORERESTORE FILELISTONLY , , RESTORE HEADERONLY, RESTORE LABELONLY, a .RESTORE VERIFYONLY

STOP_ON_ERROR
Určuje, že operace obnovení se zastaví s první zjištěnou chybou. Toto je výchozí chování pro RESTORE, kromě VERIFYONLY, které má CONTINUE_AFTER_ERROR jako výchozí.

CONTINUE_AFTER_ERROR
Určuje, že operace obnovení bude pokračovat po zjištění chyby.

Pokud záloha obsahuje poškozené stránky, je nejlepší operaci obnovení zopakovat pomocí alternativní zálohy, která neobsahuje chyby, například zálohování pořízené před poškozením stránek. Jako poslední možnost však můžete obnovit poškozenou zálohu pomocí CONTINUE_AFTER_ERROR možnosti příkazu restore a pokusit se data ospravit.

Možnosti FILESTREAM

FILESTREAM ( DIRECTORY_NAME =directory_name )

Podporováno:RESTORE a RESTORE VERIFYONLY

Platí na: SQL Server 2012 (11.x) a novější

Název adresáře kompatibilního s Windows. Tento název by měl být jedinečný mezi všemi názvy adresářů FILESTREAM na úrovni databáze v instanci SQL Server. Porovnání jedinečnosti se provádí bez ohledu na SQL Server nastavení kolace bez ohledu na malá a velká písmena.

Možnosti monitorování

Tyto možnosti umožňují monitorovat přenos dat ze zálohovaného zařízení.

STATS [ = procento ]

Podporováno:RESTORE a RESTORE VERIFYONLY

Zobrazí zprávu pokaždé, když se další procento dokončí, a použije se k měření průběhu. Pokud percentage vynecháte, SQL Server zobrazí zprávu po dokončení každého 10 % (přibližně).

Možnost STATS hlásí procento dokončení jako prahovou hodnotu pro vykazování dalšího intervalu. Jedná se o přibližně zadané procento; Například u funkce STATS=10 se Database Engine hlásí přibližně v daném intervalu, například místo zobrazení přesně 40%, může se v této možnosti zobrazit 43%. U velkých sad zálohování to není problém, protože procento dokončení se mezi dokončeným vstupně-výstupním voláním přesouvá velmi pomalu.

Možnosti pásky

Tyto možnosti se používají jenom pro zařízení TAPE. Pokud se používá jiné zařízení, budou tyto možnosti ignorovány.

{ PŘETOČTE | NOREWIND }

Tyto možnosti se používají jenom pro zařízení TAPE. Pokud se používá zařízení bez pásky, budou tyto možnosti ignorovány.

PŘETOČIT
Podpořeno:RESTORERESTORE FILELISTONLY , , RESTORE HEADERONLY, RESTORE LABELONLY, a .RESTORE VERIFYONLY

Určuje, že SQL Server uvolnit a převinout pásku zpět. Funkce REWIND je výchozí.

NOREWIND
Podporováno:RESTORE a RESTORE VERIFYONLY

Zadáním příkazu NOREWIND v jakémkoli jiném příkazu restore se vygeneruje chyba.

Určuje, že SQL Server nechá pásku otevřenou po operaci zálohování. Tuto možnost můžete použít ke zlepšení výkonu při provádění více operací zálohování na pásku.

NOREWIND znamená NOUNLOAD a tyto možnosti jsou v jednom RESTORE příkazu nekompatibilní.

Note

Pokud používáte NOREWIND, instance SQL Server si ponechává vlastnictví páskové mechaniky, dokud příkaz or RESTORE běžící ve stejném procesu nepoužije buď možnost REWIND, nebo UNLOAD, nebo dokud BACKUP není instance serveru vypnuta. Když pásku necháte otevřenou, zabráníte jiným procesům v přístupu k pásce. Informace o tom, jak zobrazit seznam otevřených pásek a zavřít otevřenou pásku, najdete v tématu Položky (SQL Server).

{ UNLOAD | NÁKLAD }

Podpořeno :RESTORERESTORE FILELISTONLY , , RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY, a .RESTORE VERIFYONLY

Tyto možnosti se používají jenom pro zařízení TAPE. Pokud se používá zařízení bez pásky, budou tyto možnosti ignorovány.

Note

UNLOAD/NOUNLOAD je nastavení relace, které trvá po dobu životnosti relace nebo dokud se neobnoví zadáním alternativní možnosti.

VYLOŽIT
Určuje, že páska se po dokončení zálohování automaticky znovu přepíná a uvolní. Funkce UNLOAD je výchozí při zahájení relace.

NOUNLOAD
Určuje, že po RESTORE operaci zůstane páska načtena na páskovou jednotku.

<replication_WITH_option>

Tato možnost je relevantní pouze v případě, že se databáze replikovala při vytvoření zálohy.

KEEP_REPLICATION
Podporováno:RESTORE

Při nastavování replikace pro práci s expedicí protokolu použijte KEEP_REPLICATION. Zabrání odebrání nastavení replikace při obnovení zálohy databáze nebo zálohování protokolů na záložním pohotovostním serveru a databáze se obnoví. Určení této možnosti při obnovování zálohy pomocí možnosti NORECOVERY není povoleno. Aby se zajistilo správné fungování replikace po obnovení:

  • Databáze msdb a master databáze na záložním pohotovostním serveru musí být synchronizované s msdbmaster databázemi na primárním serveru.

  • Záložní pohotovostní server musí být přejmenován tak, aby používal stejný název jako primární server.

<change_data_capture_WITH_option>

Tato možnost je relevantní pouze v případě, že byla databáze povolena pro zachytávání dat změn při vytvoření zálohy.

KEEP_CDC

Podporováno:RESTORE

KEEP_CDC je vhodné použít k zabránění odebrání nastavení zachytávání dat při obnovení zálohy databáze nebo zálohování protokolu na jiném serveru a obnovení databáze. Určení této možnosti při obnovování zálohy pomocí možnosti NORECOVERY není povoleno.

Obnovení databáze pomocí KEEP_CDC nevytváří úlohy zachytávání dat změn. Pokud chcete po obnovení databáze extrahovat změny z protokolu, znovu vytvořte úlohu procesu zachycení a úlohu vyčištění obnovené databáze. Informace najdete v tématu sys.sp_cdc_add_job (Transact-SQL).

Informace o použití funkce change data capture se zrcadlením databáze najdete v tématu Change Data Capture a Další funkce SQL Server.

<service_broker_WITH_options>

Zapne nebo vypne doručování zpráv Service Broker nebo nastaví nový identifikátor service brokeru. Tato možnost je relevantní pouze v případě, že služba Service Broker byla pro databázi při vytvoření zálohy povolena (aktivována).

{ ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER }

Podporováno:RESTORE DATABASE

ENABLE_BROKER
Určuje, že je na konci obnovení povoleno doručování zpráv Service Broker, aby se zprávy mohly odesílat okamžitě. Ve výchozím nastavení je doručení zpráv Service Broker během obnovení zakázané. Databáze uchovává existující identifikátor služby Service Broker.

ERROR_BROKER_CONVERSATIONS
Ukončí všechny konverzace chybou oznamující, že je databáze připojena nebo obnovena. To umožňuje aplikacím provádět pravidelné čištění stávajících konverzací. Doručování zpráv service Brokeru je zakázané, dokud se tato operace nedokončí, a pak je povolená. Databáze uchovává existující identifikátor služby Service Broker.

NEW_BROKER
Určuje, že databázi bude přiřazen nový identifikátor služby Service Broker. Vzhledem k tomu, že databáze je považována za novou službu Service Broker, stávající konverzace v databázi se okamžitě odeberou bez vytváření koncových dialogových zpráv. Všechny trasy odkazující na starý identifikátor služby Service Broker musí být znovu vytvořeny s novým identifikátorem.

<point_in_time_WITH_options>

Podporováno:RESTORE {DATABASE|LOG} a pouze pro kompletní nebo hromadně logované modely obnovy.

Databázi můžete obnovit k určitému bodu v čase nebo transakci zadáním cílového bodu obnovení v klauzuli STOPAT, STOPATMARK nebo STOPBEFOREMARK. Zadaný čas nebo transakce se vždy obnoví ze zálohy protokolu. V každém RESTORE příkazu LOG sekvence obnovy musíte zadat cílový čas nebo transakci v identické klauzuli STOPAT, STOPATMARK nebo STOPBEFOREMARK.

Jako předpoklad pro obnovení k určitému bodu v čase musíte nejprve obnovit úplnou zálohu databáze, jejíž koncový bod je dřívější než váš cílový bod obnovení. Abychom vám pomohli určit, kterou databázovou zálohu obnovit, můžete volitelně zadat klauzuli WITH STOPAT, STOPATMARK nebo STOPBEFOREMARK ve příkazu RESTOREDATABASE , která vyvolá chybu, pokud je datová záloha příliš nedávná pro daný cílový čas. Úplné zálohování dat se ale vždy obnoví, i když obsahuje cílový čas.

Note

Možnosti RESTORE_DATABASE a RESTORE_LOG bodového WITH jsou podobné, ale pouze RESTORE LOG podporuje argument mark_name .

{ STOPAT | STOPATMARK | STOPBEFOREMARK }

STOPAT = { 'datetime' | @_datetime_var* }
Určuje, že se databáze obnovila do stavu, ve které byla od data a času určená parametrem datetime nebo @datetime_var . Informace o zadání data a času najdete v tématu Date a Časové datové typy a funkce (Transact-SQL).

Pokud se proměnná používá pro FUNKCI STOPAT, musí být proměnná varchar, char, smalldatetime nebo datetime . Pro databázi se použijí pouze záznamy transakčního protokolu zapsané před zadaným datem a časem.

Note

Pokud je určený čas STOPAT po poslední záloze LOG, databáze zůstává v neobnoveném stavu, stejně jako kdyby RESTORE LOG běžel s NORECOVERY.

Další informace najdete v tématu obnovení databáze SQL Serveru k určitému bodu v čase (úplný model obnovení).

STOPATMARK = { 'mark_name' | 'lsn:lsn_number' } [ AFTER 'datetime' ]
Určuje obnovení do zadaného bodu obnovení. Zadaná transakce je zahrnuta do obnovení, ale je potvrzena pouze v případě, že byla původně potvrzena při skutečném vygenerování transakce.

Oba typy RESTOREDATABASE podporují RESTORE parametr lsn_number . Tento parametr určuje pořadové číslo protokolu.

Parametr mark_name je podporován pouze příkazem RESTORE LOG. Tento parametr identifikuje značku transakce v zálohování protokolu.

V příkazu RESTORE LOG, pokud je vynechán datum AFTER datetime , obnova se zastaví na první značce s uvedeným názvem. Pokud je zadána hodnota AFTER datetime , obnovení se zastaví u první značky, která má zadaný název přesně v nebo po datu a času.

Note

Pokud je specifikovaná značka, LSN nebo čas po poslední záloze LOG, databáze zůstává v neobnoveném stavu, stejně jako kdyby RESTORE LOG běžel s NORECOVERY.

Další informace najdete v tématu Použít označené transakce k obnovení souvisejících databází konzistentně (úplný model obnovení) a Recover na pořadové číslo protokolu (SQL Server).

STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' } [ PO 'datetime' ]
Určuje obnovení až do zadaného bodu obnovení. Zadaná transakce není zahrnuta do obnovení a je vrácena zpět při použití WITH RECOVERY.

Oba typy RESTOREDATABASE podporují RESTORE parametr lsn_number . Tento parametr určuje pořadové číslo protokolu.

Parametr mark_name je podporován pouze příkazem RESTORE LOG. Tento parametr identifikuje značku transakce v zálohování protokolu.

V příkazu RESTORE LOG, pokud je vynechán datum AFTER datetime , obnova se zastaví těsně před prvním označením s uvedeným názvem. Pokud je zadána hodnota AFTER datetime , obnovení se zastaví těsně před první značkou, která má zadaný název přesně v nebo po datu a času.

Important

Pokud částečná sekvence obnovení vylučuje jakoukoli skupinu souborů FILESTREAM, obnovení k určitému bodu v čase se nepodporuje. Můžete vynutit pokračování procesu obnovení. Souborové skupiny FILESTREAM, které jsou však ve příkazu RESTORE vynechány, však nelze nikdy obnovit. Pokud chcete vynutit obnovení k určitému bodu v čase, zadejte možnost CONTINUE_AFTER_ERROR společně s možností STOPAT, STOPATMARK nebo STOPBEFOREMARK. Pokud zadáte CONTINUE_AFTER_ERROR, částečná sekvence obnovení proběhne úspěšně a skupina souborů FILESTREAM přestane být obnovitelná.

Sady výsledků

Sady výsledků najdete v následujících článcích:

Poznámky

Další poznámky najdete v následujících článcích:

Určení zálohovací sady

Sada záloh obsahuje zálohu z jedné úspěšné operace zálohování. RESTORE, RESTORERESTORE FILELISTONLY, RESTORERESTORE HEADERONLY, a příkazy pracují RESTORERESTORE VERIFYONLY na jedné záložní sadě v rámci mediální sady na určeném záložním zařízení nebo zařízeních. Měli byste zadat zálohu, kterou potřebujete, ze sady médií. backup_set_file_number záložní množiny můžete získat pomocí RESTORE HEADERONLY tohoto příkazu.

Možnost pro zadání zálohovací sady pro obnovení je:

FILE ={ backup_set_file_number backup_set_file_number | @ }

Kde backup_set_file_number označuje pozici zálohy v sadě médií. Backup_set_file_number 1 (FILE = 1) označuje první záložní sadu na záložním médiu a backup_set_file_number 2 (FILE = 2) označuje druhou sadu zálohování atd.

Chování této možnosti se liší v závislosti na příkazu, jak je popsáno v následující tabulce:

Prohlášení Chování možnosti FILE sady záloh
RESTORE Výchozí číslo souboru sady záloh je 1. V příkazu RESTORE je povolena pouze jedna možnost zálohování souboru FILE. Je důležité určit sady záloh v pořadí.
RESTORE FILELISTONLY Výchozí číslo souboru sady záloh je 1.
RESTORE HEADERONLY Ve výchozím nastavení se zpracovávají všechny zálohovací sady v sadě médií. Výsledná RESTORE HEADERONLY sada vrací informace o každé záložní sadě, včetně její pozice v mediální sadě. Pokud chcete vrátit informace o dané sadě záloh, použijte její číslo pozice jako hodnotu backup_set_file_number v možnosti FILE.

Poznámka: Pro pásková média RESTORE HEADER zpracovává pouze zálohovací sady na načtené pásce.
RESTORE VERIFYONLY Výchozí backup_set_file_number je 1.

Note

Možnost FILE pro zadání zálohovací sady nesouvisí s možností FILE pro zadání databázového souboru FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.

Shrnutí podpory možností WITH

Následující možnosti WITH jsou podporovány pouze příkazem RESTORE : BLOCKSIZE, BUFFERCOUNT, MAXTRANSFERSIZE, PARTIAL KEEP_REPLICATION, { RECOVERY | NORECOVERY | POČTAJ }, NAHRAZ, RESTART, RESTRICTED_USER A { STOPAT | STOPATMARK | STOPBEFOREMARK }

Note

Možnost PARTIAL je podporována pouze .RESTOREDATABASE

Následující tabulka uvádí možnosti WITH, které používají jeden nebo více příkazů, a označuje, které příkazy podporují jednotlivé možnosti. Značka zaškrtnutí (√) označuje, že je podporována možnost; pomlčka (-) značí, že není podporována možnost.

MOŽNOST WITH RESTORE RESTORE FILELISTONLY RESTORE HEADERONLY RESTORE LABELONLY RESTORE REWINDONLY RESTORE VERIFYONLY
{ KONTROLNÍ SOUČET

| NO_CHECKSUM }
-
{ CONTINUE_AFTER_ERROR

| STOP_ON_ERROR }
-
SOUBOR1 - -
LOADHISTORY - - - - -
MEDIANAME -
MEDIAPASSWORD -
PŘESUŇ - - - -
PASSWORD - -
{ PŘETOČTE | NOREWIND } Pouze PŘEVINUTÍ ZPĚT Pouze PŘEVINUTÍ ZPĚT Pouze PŘEVINUTÍ ZPĚT -
STATISTIKY - - - -
{ UNLOAD | NÁKLAD }

1 SOUBOR =backup_set_file_number, který se liší od {FILE | FILEGROUP}.

Permissions

Oprávnění najdete v následujících článcích:

Příklady

Příklady najdete v následujících článcích:

Další kroky