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.
platí pro:SQL Server
Tento článek popisuje, jak obnovit databázi SQL Serveru do nového umístění a volitelně přejmenovat databázi v SQL Serveru pomocí aplikace SQL Server Management Studio (SSMS) nebo Transact-SQL. Databázi můžete přesunout do nové cesty k adresáři nebo vytvořit kopii databáze na stejné instanci serveru nebo jiné instanci serveru.
Omezení
- Správce systému, který obnovuje úplnou zálohu databáze, musí být jedinou osobou, která databázi aktuálně používá k obnovení.
Požadavky
Pokud používáte úplný nebo hromadně protokolovaný model obnovení, před obnovením databáze je nutné zálohovat aktivní transakční protokol. Další informace naleznete v tématu Zálohování transakčního protokolu.
Pokud chcete obnovit šifrovanou databázi, musíte mít přístup k certifikátu nebo asymetrickému klíči použitému k šifrování databáze. Bez tohoto certifikátu nebo asymetrického klíče nemůžete databázi obnovit. Pokud potřebujete zálohu, musíte zachovat certifikát použitý k šifrování šifrovacího klíče databáze. Další informace najdete v tématu Certifikáty SQL Serveru a asymetrické klíče.
Doporučení
Další aspekty přesunu databáze najdete v tématu Kopírování databází se zálohováním a obnovením.
Pokud na SQL Server obnovíte databázi SQL Serveru 2005 (9.x) nebo vyšší, databáze se automaticky upgraduje. Databáze se obvykle zpřístupní okamžitě. Pokud ale databáze SQL Serveru 2005 (9.x) obsahuje fulltextové indexy, proces upgradu buď importuje, resetuje nebo znovu sestaví v závislosti na nastavení
upgrade_optionvlastnosti serveru. 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ž 10krát déle. Pokud je možnost upgradu nastavená na import, přidružené fulltextové indexy se znovu sestaví, pokud není k dispozici fulltextový katalog. Chcete-li změnit nastaveníupgrade_optionvlastnosti serveru, použijte sp_fulltext_service.
Zabezpečení
Pro účely zabezpečení nedoporučujeme připojovat nebo obnovovat databáze z neznámých nebo nedůvěryhodných zdrojů. Takové databáze můžou obsahovat škodlivý kód, který může spouštět nezamýšlené Transact-SQL kód nebo způsobit chyby úpravou schématu nebo struktury fyzické databáze. Před použitím databáze z neznámého nebo nedůvěryhodného zdroje spusťte DBCC CHECKDB v databázi na neprodukčním serveru a také zkontrolujte kód, jako jsou uložené procedury nebo jiný uživatelem definovaný kód v databázi.
Dovolení
Pokud obnovená databáze neexistuje, musí mít CREATE DATABASE uživatel oprávnění ke spuštění RESTORE. Pokud databáze existuje, RESTORE oprávnění jsou výchozí pro členy pevných rolí serveru sysadmin a dbcreator a vlastník (dbo) databáze.
RESTORE oprávnění 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 RESTORE spuštění, nemají členové RESTORE pevné databázové role oprávnění.
Obnovení databáze do nového umístění a volitelně přejmenování databáze pomocí aplikace SSMS
Připojte se k příslušné instanci databázového stroje SQL Serveru a pak v Průzkumníku objektů vyberte název serveru a rozbalte strom serveru.
Klikněte pravým tlačítkem myši na Databáze a pak vyberte Obnovit databázi.... Otevře se dialogové okno Obnovit databázi .
Na stránce Obecné v části Zdroj zadejte zdroj a umístění sad záloh, které se mají obnovit. Vyberte jednu z následujících možností:
Databáze
V rozevíracím seznamu vyberte databázi, která se má obnovit. Seznam obsahuje pouze databáze, které byly zálohovány podle
msdbhistorie zálohování.Poznámka
Pokud je záloha vytvořená z jiného serveru, cílový server nebude mít informace o historii zálohování pro zadanou databázi. V tomto případě vyberte Zařízení a ručně zadejte soubor nebo zařízení, které chcete obnovit.
zařízení
Výběrem tlačítka procházet (...) otevřete dialogové okno Vybrat zálohovací zařízení . V poli Typ záložního média vyberte jeden z uvedených typů zařízení. Chcete-li vybrat jedno nebo více zařízení pro box záložních médií , vyberte Přidat.
Po přidání zařízení, která chcete přidat do seznamu záložních médií , vyberte OK a vraťte se na stránku Obecné .
V seznamu Zdroj: Zařízení: Databáze vyberte název databáze, kterou chcete obnovit.
Poznámka
Tento seznam je k dispozici pouze v případě, že je vybráno zařízení . K dispozici jsou pouze databáze, které mají zálohy na vybraném zařízení.
V části Cílová se pole Databáze automaticky vyplní názvem databáze, která se má obnovit. Pokud chcete změnit název databáze, zadejte nový název do pole Databáze.
V poli Obnovit do ponechte výchozí hodnotu Na poslední pořízenou zálohu nebo vyberte časovou osu pro přístup k dialogovému okně Časová osa zálohování , abyste mohli ručně vybrat bod v čase, aby se zastavila akce obnovení. Další informace o určení konkrétního bodu v čase najdete v části Časová osa zálohování .
V Backup nastavíte obnovení mřížky, vyberte zálohy, které chcete obnovit. Tato mřížka zobrazuje zálohy dostupné pro zadané umístění. Ve výchozím nastavení se navrhuje plán obnovení. Pokud chcete přepsat navrhovaný plán obnovení, můžete změnit výběry v mřížce. Zálohy, které závisí na obnovení dřívější zálohy, se automaticky zruší, když se zruší výběr dřívější zálohy.
Informace o sloupcích v sadách zálohování pro obnovení mřížky naleznete v tématu Obnovení databáze (obecné stránky).
Chcete-li zadat nové umístění databázových souborů, vyberte stránku soubory a pak vyberte Přemístit všechny soubory do složky. Zadejte nové umístění složky Datový soubor a složku souboru protokolu. Další informace o této mřížce najdete v tématu Obnovit databázi (stránku souborů).
Na stránce Možnosti upravte možnosti, pokud chcete. Další informace o těchto možnostech naleznete v tématu Obnovit databázi (stránka Možnosti).
Obnovení databáze do nového umístění a volitelně přejmenování databáze pomocí T-SQL
Volitelně můžete určit logické a fyzické názvy souborů v sadě záloh obsahující úplnou zálohu databáze, kterou chcete obnovit. Tento příkaz ukazuje základní syntaxi pro vrácení seznamu souborů databáze a protokolů obsažených v sadě záloh:
RESTORE FILELISTONLY FROM backup_device WITH FILE = *backup_set_file_numberTady backup_set_file_number označuje umístění zálohy v sadě médií. Umístění zálohovací sady můžete získat pomocí příkazu RESTORE HEADERONLY. Další informace naleznete v tématu Určení sady záloh.
Tento příkaz také podporuje několik
WITHmožností. Další informace naleznete v tématu RESTORE FILELISTONLY.K obnovení úplné zálohy databáze použijte příkaz RESTORE DATABASE. Ve výchozím nastavení se soubory dat a protokolů obnoví do původních umístění. Pokud chcete přemístit databázi, použijte
MOVEmožnost přemístit všechny soubory databáze a vyhnout se kolizím s existujícími soubory.
Základní syntaxe Transact-SQL pro obnovení databáze do nového umístění s novým názvem je:
RESTORE DATABASE <new_database_name>
FROM <backup_device> [ , ...n ]
[ WITH
{
[ RECOVERY | NORECOVERY ]
[ , ] [ FILE = { <backup_set_file_number> | @backup_set_file_number } ]
[ , ] MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ , ...n ]
} ]
[ ; ]
Poznámka
Při přípravě na přemístění databáze na jiný disk byste měli ověřit, že je k dispozici dostatek místa, a identifikovat případné kolize s existujícími soubory. Toto ověření zahrnuje použití příkazů RESTORE – PŘÍKAZ VERIFYONLY , který určuje stejné MOVE parametry, které chcete použít v RESTORE DATABASE příkazu.
Následující informace popisují argumenty tohoto RESTORE příkazu, které souvisejí s obnovením databáze do nového umístění. Další informace o těchto argumentech naleznete v tématu PŘÍKAZY RESTORE.
new_database_name
Nový název databáze.
Poznámka
Pokud databázi obnovujete do jiné instance serveru, můžete místo nového názvu použít původní název databáze.
backup_device [ , ... n ]
Určuje čárkami oddělený seznam mezi 1 a 64 záložními zařízeními, ze kterých se má obnovit záloha databáze. Můžete zadat fyzické zálohovací zařízení nebo můžete určit odpovídající logické zálohovací zařízení, pokud je definované. Pokud chcete zadat fyzické zálohovací zařízení, použijte tuto DISK možnost TAPE :
{ DISK | TAPE } = physical_backup_device_name
Další informace najdete v tématu Zálohování zařízení.
{ RECOVERY | NORECOVERY }
Pokud databáze používá úplný model obnovení, možná budete muset po obnovení databáze použít zálohy transakčních protokolů. V tomto případě zadejte NORECOVERY možnost.
V opačném případě použijte RECOVERY možnost, která je výchozí.
FILE = { backup_set_file_number | @backup_set_file_number }
Identifikuje sadu záloh, která se má obnovit. Například backup_set_file_number1 označuje první sadu zálohování na záložním médiu a backup_set_file_number2 indikuje druhou sadu zálohování.
K získání backup_set_file_number zálohovací sady můžete použít příkazy RESTORE – HEADERONLY.
Pokud tato možnost není zadaná, výchozí možností je použít první zálohovací sadu na zálohovacím zařízení.
Další informace naleznete v tématu ARGUMENTY RESTORE (Transact-SQL).
PŘESUNOUT 'logical_file_name_in_backup' do 'operating_system_file_name' [ , ... n ]
Určuje, že se mají obnovit data nebo soubor protokolu určený logical_file_name_in_backup pomocí umístění určeného uživatelem operating_system_file_name.
MOVE Zadejte příkaz pro každý logický soubor, který chcete obnovit ze zálohy nastavené na nové umístění.
| Možnost | Popis |
|---|---|
logical_file_name_in_backup |
Určuje logický název souboru dat nebo protokolu v sadě záloh. 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. Poznámka: Chcete-li získat seznam logických souborů ze zálohovací sady, použijte příkazy RESTORE - FILELISTONLY. |
operating_system_file_name |
Určuje nové umístění souboru určeného parametrem logical_file_name_in_backup. Soubor se obnoví do tohoto umístění.operating_system_file_name Volitelně můžete určit nový název obnoveného souboru. Pokud vytváříte kopii existující databáze ve stejné instanci serveru, je potřeba zadat nový název. |
n |
Zástupný symbol označující, že můžete zadat další MOVE příkazy. |
Příklad (Transact-SQL)
Tento příklad vytvoří novou databázi s názvem MyAdvWorks obnovením zálohy AdventureWorks2025 ukázkové databáze, která obsahuje dva soubory: AdventureWorks2025_Data a AdventureWorks2025_Log. Tato databáze používá jednoduchý model obnovení. Databáze AdventureWorks2025 již v instanci serveru existuje, takže soubory v zálohování musí být obnoveny do nového umístění. Tento RESTORE FILELISTONLY příkaz slouží k určení počtu a názvů souborů v obnovené databázi. Záloha databáze je první kopie na zálohovacím zařízení.
Poznámka
Příklady zálohování a obnovení transakčního protokolu, včetně obnovení k určitému bodu v čase, používají MyAdvWorks_FullRM databázi vytvořenou z AdventureWorks2025, stejně jako v následujícím MyAdvWorks příkladu. Výsledná MyAdvWorks_FullRM databáze však musí být změněna tak, aby používala úplný model obnovení pomocí následujícího příkazu Transact-SQL: ALTER DATABASE <database_name> SET RECOVERY FULL.
USE master;
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks2022_Backup is the name of the backup device.
RESTORE FILELISTONLY
FROM AdventureWorks2022_Backup;
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
FROM AdventureWorks2022_Backup
WITH RECOVERY,
MOVE 'AdventureWorks2022_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',
MOVE 'AdventureWorks2022_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';
GO
Příklad vytvoření úplné zálohy AdventureWorks2025 databáze naleznete v tématu Vytvoření úplné zálohy databáze.
Související úkoly
- Vytvoření úplné zálohy databáze
- Obnovení zálohy databáze pomocí SSMS
- Zálohování transakčního protokolu
- Obnovení zálohy transakčního protokolu (SQL Server)