Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í
- Další informace o scénářích obnovení SQL Serveru najdete v tématu Přehled obnovení a obnovení.
- Při obnovování databáze z jiné instance zvažte informace ze správy metadat při zpřístupnění databáze na jiné instanci serveru (SQL Server).
- Další informace o obnovení ze služby Microsoft Azure Blob Storage najdete v tématu Zálohování a obnovení SQL Serveru pomocí služby Microsoft Azure Blob Storage.
- V SQL Serveru 2022 (16.x) bylo zavedeno zálohování a obnovení do úložiště objektů kompatibilních s S3. Další informace o obnovení z úložiště objektů kompatibilního s S3 najdete v tématu Zálohování a obnovení SQL Serveru s úložištěm objektů kompatibilním s S3. Zkontrolujte také možnost zálohování SQL Serveru na adresu URL pro úložiště objektů kompatibilní s S3.
Syntaxe
- Další informace o popisech argumentů naleznete v tématu RESTORE Argumenty.
--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{
[ RECOVERY | NORECOVERY | STANDBY =
{standby_file_name | @standby_file_name_var }
]
| , <general_WITH_options> [ ,...n ]
| , <replication_WITH_option>
| , <change_data_capture_WITH_option>
| , <FILESTREAM_WITH_option>
| , <service_broker_WITH options>
| , <point_in_time_WITH_options-RESTORE_DATABASE>
} [ ,...n ]
]
[;]
--To perform the first step of the initial restore sequence of a piecemeal restore:
RESTORE DATABASE { database_name | @database_name_var }
<files_or_filegroups> [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
PARTIAL, NORECOVERY
[ , <general_WITH_options> [ ,...n ]
| , <point_in_time_WITH_options-RESTORE_DATABASE>
] [ ,...n ]
[;]
--To Restore Specific Files or Filegroups:
RESTORE DATABASE { database_name | @database_name_var }
<file_or_filegroup> [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
{
[ RECOVERY | NORECOVERY ]
[ , <general_WITH_options> [ ,...n ] ]
} [ ,...n ]
[;]
--To Restore Specific Pages:
RESTORE DATABASE { database_name | @database_name_var }
PAGE = 'file:page [ ,...n ]'
[ , <file_or_filegroups> ] [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
NORECOVERY
[ , <general_WITH_options> [ ,...n ] ]
[;]
--To Restore a Transaction Log:
RESTORE LOG { database_name | @database_name_var }
[ <file_or_filegroup_or_pages> [ ,...n ] ]
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{
[ RECOVERY | NORECOVERY | STANDBY =
{standby_file_name | @standby_file_name_var }
]
| , <general_WITH_options> [ ,...n ]
| , <replication_WITH_option>
| , <point_in_time_WITH_options-RESTORE_LOG>
} [ ,...n ]
]
[;]
--To Revert a Database to a Database Snapshot:
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name
<backup_device>::=
{
{ logical_backup_device_name |
@logical_backup_device_name_var }
| { DISK
| TAPE
| URL
} = { 'physical_backup_device_name' |
@physical_backup_device_name_var }
}
<files_or_filegroups>::=
{
FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
| FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
| READ_WRITE_FILEGROUPS
}
<general_WITH_options> [ ,...n ]::=
--Restore Operation Options
MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
[ ,...n ]
| REPLACE
| RESTART
| RESTRICTED_USER | CREDENTIAL
--Backup Set Options
| FILE = { backup_set_file_number | @backup_set_file_number }
| PASSWORD = { password | @password_variable }
| [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]
--Media Set Options
| MEDIANAME = { media_name | @media_name_variable }
| MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
| BLOCKSIZE = { blocksize | @blocksize_variable }
--Data Transfer Options
| BUFFERCOUNT = { buffercount | @buffercount_variable }
| MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }
--Error Management Options
| { CHECKSUM | NO_CHECKSUM }
| { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }
--Monitoring Options
| STATS [ = percentage ]
--Tape Options.
| { REWIND | NOREWIND }
| { UNLOAD | NOUNLOAD }
<replication_WITH_option>::=
| KEEP_REPLICATION
<change_data_capture_WITH_option>::=
| KEEP_CDC
<FILESTREAM_WITH_option>::=
| FILESTREAM ( DIRECTORY_NAME = directory_name )
<service_broker_WITH_options>::=
| ENABLE_BROKER
| ERROR_BROKER_CONVERSATIONS
| NEW_BROKER
<point_in_time_WITH_options-RESTORE_DATABASE>::=
| {
STOPAT = { 'datetime'| @datetime_var }
| STOPATMARK = 'lsn:lsn_number'
[ AFTER 'datetime']
| STOPBEFOREMARK = 'lsn:lsn_number'
[ AFTER 'datetime']
}
<point_in_time_WITH_options-RESTORE_LOG>::=
| {
STOPAT = { 'datetime'| @datetime_var }
| STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
[ AFTER 'datetime']
| STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
[ AFTER 'datetime']
}
Arguments
Popisy argumentů naleznete v tématu OBNOVIT argumenty.
Scénáře obnovení
SQL Server podporuje různé scénáře obnovení:
Dokončení obnovení databáze
Obnoví celou databázi, počínaje úplnou zálohou databáze, za kterou může následovat obnovení rozdílové zálohy databáze (a zálohování protokolů). Další informace najdete v tématu Úplné obnovení databáze – Jednoduchý model obnovení nebo úplné obnovení databáze – Úplný model obnovení.
Obnovení souboru
Obnoví soubor nebo skupinu souborů v databázi s více skupinami souborů. V rámci jednoduchého modelu obnovení musí soubor patřit do skupiny souborů jen pro čtení. Po úplném obnovení souboru je možné obnovit rozdílové zálohování souborů. Další informace najdete v tématu Obnovení souborů – Úplný model obnovení a obnovení souborů – Jednoduchý model obnovení.
Obnovení stránky
Obnoví jednotlivé stránky. Obnovení stránky je k dispozici pouze v úplných a hromadně protokolovaných modelech obnovení. Další informace naleznete v tématu Obnovení stránek – SQL Server.
Obnovení kusmeálu
Obnoví databázi ve fázích počínaje primární skupinou souborů a jednou nebo více sekundárními skupinami souborů. Kusmeální obnovení začíná obnovením databáze pomocí možnosti PARTIAL a určením jedné nebo více sekundárních skupin souborů, které se mají obnovit. Další informace naleznete v tématu Kusmeal Restores – SQL Server.
Pouze obnovení
Obnoví data, která jsou již konzistentní s databází, a je třeba je zpřístupnit pouze. Další informace naleznete v tématu Obnovení databáze bez obnovení dat.
Obnovení transakčního protokolu
V rámci úplného nebo hromadně protokolovaného modelu obnovení se k dosažení požadovaného bodu obnovení vyžaduje obnovení záloh protokolů. Další informace o obnovení záloh protokolů naleznete v tématu Použití záloh transakčních protokolů – SQL Server.
Příprava databáze dostupnosti pro skupinu dostupnosti AlwaysOn
Další informace naleznete v tématu Ruční příprava sekundární databáze pro skupinu dostupnosti – SQL Server.
Příprava zrcadlové databáze pro zrcadlení databáze
Další informace naleznete v tématu Příprava zrcadlové databáze pro zrcadlení – SQL Server.
Online obnovení
Poznámka:
Online obnovení je povolené jenom v edici Enterprise SQL Serveru.
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í.
Další informace o obnovení ze služby Microsoft Azure Blob Storage najdete v tématu Zálohování a obnovení SQL Serveru pomocí služby Microsoft Azure Blob Storage.
V SQL Serveru 2022 (16.x) bylo zavedeno zálohování a obnovení do úložiště objektů kompatibilních s S3. Další informace o obnovení z úložiště objektů kompatibilního s S3 najdete v tématu Zálohování a obnovení SQL Serveru s úložištěm objektů kompatibilním s S3. Zkontrolujte také možnost zálohování SQL Serveru na adresu URL pro úložiště objektů kompatibilní s S3.
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
STOPATzá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.
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.
V SQL Serveru 2022 (16.x) bylo zavedeno zálohování a obnovení do úložiště objektů kompatibilních s S3. Další informace o obnovení z úložiště objektů kompatibilního s S3 najdete v tématu Zálohování a obnovení SQL Serveru s úložištěm objektů kompatibilním s S3. Zkontrolujte také možnost zálohování SQL Serveru na adresu URL pro úložiště objektů kompatibilní s S3.
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í:
- A. Obnovení úplné databáze
- B. Obnovení úplných a rozdílových záloh databáze
- C. Obnovení databáze pomocí syntaxe RESTART
- D. Obnovení databáze a přesunutí souborů
- E. Kopírování databáze pomocí funkce BACKUP a RESTORE
- F. Obnovení k určitému bodu v čase pomocí funkce STOPAT
- G. Obnovení transakčního protokolu na značku
- H. Obnovení pomocí syntaxe TAPE
- I. Obnovení pomocí syntaxe FILE a FILEGROUP
- J. Vrácení ze snímku databáze
- K. Obnovení ze služby Microsoft Azure Blob Storage
- L. Obnovení ze zálohy snímku
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í.
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;
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;
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;
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
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;
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';
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';
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
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.
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';
Další kroky
- Přehled obnovení a obnovení (SQL Server)
- zálohování a obnovení databází SQL Serveru
- Zálohování a obnovení systémových databází (SQL Server)
- Obnovení zálohy databáze pomocí SSMS
- Zálohování a obnovení katalogů a indexů Full-Text
- Zálohování a obnovení replikovaných databází
- ZÁLOHOVÁNÍ
- Sady médií, rodiny médií a sady záloh
- OBNOVENÍ REWINDONLY
- RESTORE VERIFYONLY
- OBNOVIT FILELISTONLY (Transact-SQL)
- OBNOVIT HLAVIČKU (Transact-SQL)
- Historie zálohování a informace hlavičky
* 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:
- OBNOVIT FILELISTONLY (Transact-SQL)
- OBNOVIT HLAVIČKU (Transact-SQL)
- OBNOVIT POUZE POPISEK (Transact-SQL)
- OBNOVIT VERIFYONLY (Transact-SQL)
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).
- Pokud chcete ověřit, že přihlašovací údaje už existují, použijte sys.dm_pdw_network_credentials.
- Pokud chcete přidat nebo aktualizovat přihlašovací údaje, použijte sp_pdw_add_network_credentials – Azure Synapse Analytics.
- Pokud chcete odebrat přihlašovací údaje ze systému PDW (Analytics Platform System), použijte sp_pdw_remove_network_credentials – Azure Synapse Analytics.
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.