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.
Než začnete
Omezení a restrikce
- 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
Před obnovením databáze v rámci úplného nebo hromadně protokolovaného modelu obnovení je nutné zálohovat aktivní transakční protokol. Další informace naleznete v tématu Zálohování transakčního protokolu (SQL Server).
Pokud chcete obnovit zašifrovanou databázi, musíte mít přístup k certifikátu nebo asymetrického klíče použitému k šifrování databáze. Bez tohoto certifikátu nebo asymetrického klíče nemůžete databázi obnovit. Tento certifikát, který jste použili k šifrování šifrovacího klíče databáze, musíte zachovat, pokud potřebujete zálohu. Další informace najdete v tématu certifikáty SQL Serveru a asymetrické klíče.
Doporučení
Další důležité informace o přesunu databáze najdete v tématu Kopírování databází pomocízálohování a obnovení .
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 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 znovu sestavit (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. Všimněte si také, že pokud je možnost upgradu nastavená na import, přidružené indexy celé textu se znovu sestaví, pokud není k dispozici katalog celé textu. Chcete-li změnit nastavení vlastnosti serveru upgrade_option, použijte sp_fulltext_service.
Bezpečnost
Pro účely zabezpečení doporučujeme nepř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ý by mohl spouštět nezamýšlené Transact-SQL kód nebo způsobit chyby úpravou schématu nebo fyzické struktury 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 uživatel oprávnění CREATE DATABASE, aby mohl provést příkaz RESTORE. Pokud databáze existuje, oprávnění RESTORE jsou výchozí pro členy správce systému a dbcreator pevné role serveru a vlastník (dbo) databáze.
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.
Obnovení databáze do nového umístění; volitelně přejmenovat databázi 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.
Klepněte pravým tlačítkem myši Databázea potom vyberte Obnovit databázi. Otevře se dialogové okno Obnovit databázi.
Na stránce Obecné použijte oddíl Zdroj a určete zdroj a umístění sad záloh, které chcete 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 zálohované podle historie zálohování msdb.
Poznámka
Pokud je záloha převzata 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 Vyberte 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 do seznamu zálohovat média, 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í. Budou k dispozici 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 na ponechte výchozí možnost Na poslední pořízenou zálohu nebo vyberte Časová osa, abyste získali přístup k dialogovému oknu Časová osa zálohování a ručně vybrali bod v čase pro zastavení akce obnovení. Další informace o určení konkrétního bodu v čase najdete v tématu Č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ě zálohování pro obnovení mřížky naleznete v tématu Obnovit databázi (obecná stránka).
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í; volitelně přejmenovat databázi 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 vrátí seznam souborů databáze a protokolů obsažených v sadě záloh. Základní syntaxe je následující:
RESTORE FILELISTONLY FROM <backup_device> WITH FILE = backup_set_file_number
Tady 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 možností WITH. Další informace naleznete v tématu RESTORE FILELISTONLY (Transact-SQL).
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 možnost PŘESUNOUT, abyste přemístili všechny soubory databáze a vyhnuli se kolizím se stávajícími soubory.
Základní syntaxe Transact-SQL pro obnovení databáze do nového umístění a nový název:
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. To zahrnuje použití příkazu RESTORE VERIFYONLY, který určuje stejné parametry MOVE, které plánujete použít v příkazu RESTORE DATABASE.
Následující tabulka popisuje argumenty tohoto příkazu RESTORE z hlediska obnovení databáze do nového umístění. Další informace o těchto argumentech naleznete v tématu RESTORE (Transact-SQL).
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 zálohovaných zařízení od 1 do 64, 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 definováno. Pokud chcete určit fyzické zálohovací zařízení, použijte možnost DISK nebo PÁSKA:
{ DISK | TAPE } =physical_backup_device_name
Další informace naleznete v tématu zálohovací zařízení (SQL Server).
{ 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 možnost NORECOVERY.
V opačném případě použijte možnost OBNOVENÍ, která je výchozí hodnotou.
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 označuje druhou sadu zálohování. K získání backup_set_file_number zálohovací sady můžete použít příkaz 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 "Určení sady záloh" v ARGUMENTY OBNOVENÍ (Transact-SQL).
'logical_file_name_in_backup' do 'operating_system_file_name' [,...n]
Určuje, že data nebo protokolový soubor určený logical_file_name_in_backup mají být obnoveny do umístění určeného operating_system_file_name. Zadejte příkaz MOVE 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 RESTORE FILELISTONLY. |
název_souboru_operačního_systému | Určuje nové umístění pro soubor, který je uvedený v záloze jako logical_file_name_in_backup. Soubor se obnoví do tohoto umístění. Volitelně operating_system_file_name určuje nový název obnoveného souboru. To je nezbytné, pokud vytváříte kopii existující databáze ve stejné instanci serveru. |
n | Je zástupný symbol označující, že můžete zadat další příkazy MOVE. |
Příklad (Transact-SQL)
Tento příklad vytvoří novou databázi s názvem MyAdvWorks
obnovením zálohy ukázkové databáze AdventureWorks2022
, která obsahuje dva soubory: AdventureWorks2022
_Data a AdventureWorks2022
_Log. Tato databáze používá jednoduchý model obnovení. Databáze AdventureWorks2022
již v instanci serveru existuje, takže soubory v zálohování musí být obnoveny do nového umístění. Příkaz RESTORE FILELISTONLY 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í databázi MyAdvWorks_FullRM
vytvořenou z AdventureWorks2022
, podobně jako následující příklad MyAdvWorks
. Výsledná databáze MyAdvWorks_FullRM
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 databáze AdventureWorks2022
databáze naleznete v tématu Vytvoření úplné zálohy databáze (SQL Server).