Sdílet prostřednictvím


zálohování File-Snapshot pro databázové soubory v Azure

platí pro:SQL Server

Zálohování snímků souborů SQL Serveru využívá snímky Azure k zajištění téměř okamžitých záloh a rychlejšího obnovení databázových souborů uložených pomocí služby Azure Blob Storage. Tato funkce umožňuje zjednodušit zásady zálohování a obnovení. Další informace o ukládání databázových souborů pomocí služby Azure Blob Storage najdete v tématu Datové soubory SQL Serveru v Microsoft Azure.

Diagram vysvětlující architekturu zálohování snímků

Už máte účet Azure? Navštivte SQL Server na virtuálních počítačích Azure a zastavte virtuální počítač s SQL Serverem, který už je nainstalovaný.

Použití snímků Azure k zálohování databázových souborů uložených v Azure

Co je záloha snímků souborů SQL Serveru

Záloha snímku souboru se skládá ze sady snímků objektů blob v Azure, které obsahují soubory databáze, a ze záložního souboru obsahujícího ukazatele na tyto snímky souborů. Každý snímek souboru je uložený v kontejneru se základním blobem. Soubor zálohy lze zapisovat na URL adresu, disk nebo pásku. Doporučuje se zálohování na adresu URL. Další informace o zálohování najdete v tématu ZÁLOHOVÁNÍ a zálohování na adresu URL v tématu Zálohování SQL Serveru na adresu URL.

Diagram architektury funkce snímku

Odstraněním základního blobu zneplatníte sadu záloh a zabráníte vyřazení blobu, který obsahuje snímky souborů (pokud se výslovně nerozhodnete odstranit blob se všemi jeho snímky souborů). Vyřazení databáze nebo datového souboru navíc neodstraní základní objekt blob ani žádné snímky souborů. Odstranění záložního souboru také neodstraní žádné snímky souborů v sadě záloh. Pokud chcete odstranit sadu záloh snímků souborů, použijte systémovou uloženou proceduru sys.sp_delete_backup .

Úplné zálohování databáze: Provedení úplné zálohy databáze pomocí zálohování pomocí snímku souborů vytvoří snímek Azure pro každý datový a protokolový soubor, který je součástí databáze, vytváří řetězec záloh pro transakční protokoly a zapíše umístění snímků souborů do záložního souboru.

Zálohování transakčního protokolu: Provedení zálohování transakčního protokolu pomocí zálohování snímků souborů vytvoří snímek souboru každého souboru databáze (nejen transakční protokol), zaznamená informace o umístění snímku souboru do záložního souboru a zkrátí soubor protokolu transakcí.

Důležité

Po počáteční úplné záloze, která je nutná k vytvoření řetězu zálohování transakčního protokolu (což může být záloha snímků souborů), je potřeba provést pouze zálohy transakčních protokolů, protože každá sada záloh snímků souboru transakčního protokolu obsahuje snímky souborů všech databázových souborů a lze je použít k obnovení databáze nebo obnovení protokolu. Po počáteční úplné zálohování databáze nepotřebujete další úplné ani rozdílové zálohy, protože Azure Blob Storage zpracovává rozdíly mezi jednotlivými snímky souborů a aktuálním stavem základního objektu blob pro každý soubor databáze.

Poznámka:

Kurz použití SQL Serveru se službou Microsoft Azure Blob Storage najdete v kurzu: Použití služby Microsoft Azure Blob Storage s databázemi SQL Serveru

Obnovení pomocí záloh snímků souborů

Vzhledem k tomu, že každá sada zálohování snímků souborů obsahuje souborový snímek každého souboru databáze, vyžaduje proces obnovení ve většině sousedních dvou sad zálohování snímků souborů. To platí bez ohledu na to, jestli sada záloh pochází z úplné zálohy databáze nebo zálohy protokolu. To se velmi liší od procesu obnovení při použití tradičních streamovaných záložních souborů k provedení procesu obnovení. U tradičního streamovacího zálohování vyžaduje proces obnovení použití celého řetězce sady záloh: úplné zálohování, diferenciální zálohování a jedno nebo více zálohování transakčních logů. Část obnovení procesu zůstává stejná, bez ohledu na to, jestli se při obnovení používá záloha pomocí snímku souboru nebo streamovací zálohovací sada.

K času jakékoli zálohovací sady: Aby bylo možné provést operaci RESTORE DATABASE k obnovení databáze v době konkrétní zálohovací sady snímků souborů, je vyžadována pouze konkrétní zálohovací sada a samotné základní objekty blob. Vzhledem k tomu, že k provedení operace RESTORE DATABASE můžete použít zálohovací sadu snímků souboru transakčního protokolu, obvykle k provedení tohoto typu operace RESTORE DATABASE použijete záložní sadu transakčních protokolů a zřídka použijete úplnou sadu záloh databáze. Příklad se zobrazí na konci tohoto článku, který demonstruje tuto techniku.

K určitému bodu v čase mezi dvěma sadami zálohování snímků souborů: Aby bylo možné provést operaci RESTORE DATABASE k obnovení databáze k určitému bodu v čase mezi časem dvou sousedních sad zálohování transakčních protokolů, jsou vyžadovány pouze dvě zálohovací sady transakčních protokolů (jedna před a jednou za bodem v čase, do kterého chcete databázi obnovit). K tomuto účelu provedete operaci RESTORE DATABASE WITH NORECOVERY s použitím zálohovací sady snímků souboru transakčního protokolu z dřívějšího bodu v čase a provedete operaci RESTORE LOG WITH RECOVERY s použitím zálohovací sady snímků souboru transakčního protokolu z pozdějšího bodu v čase a s použitím argumentu STOPAT určíte bod v čase, ve kterém se má obnovování ze zálohy transakčního protokolu zastavit. Příklad se zobrazí na konci tohoto článku, který demonstruje tuto techniku.

Údržba sady zálohování souborů

Odstranění zálohovací sady snímků souborů: Pomocí argumentu FORMAT nelze přepsat sadu záloh snímků souborů. Argument FORMAT není povolen, aby se zabránilo vytvoření osiřelých snímků souborů, které byly vytvořeny původní zálohou snímků souborů. Pokud chcete odstranit sadu záloh snímků souborů, použijte systémovou uloženou proceduru sys.sp_delete_backup . Tato uložená procedura odstraní záložní soubor a snímky souborů, které tvoří zálohovací sadu. Pomocí jiné metody odstranění zálohovací sady snímků souborů může záložní soubor odstranit bez odstranění snímků souborů v zálohovací sadě.

Odstranění osamocených snímků záložních souborů: Můžete mít osamocené snímky souborů, pokud byl záložní soubor odstraněn bez použití sys.sp_delete_backup systémové uložené procedury nebo pokud došlo k vyřazení databáze nebo databázového souboru, zatímco objekty blob obsahující databázi nebo soubor databáze měly přidružené záložní snímky souborů. K identifikaci snímků souborů, které mohou být osiřelé, použijte systémovou funkci sys.fn_db_backup_file_snapshots k výpisu všech snímků souborů databáze. Chcete-li identifikovat snímky souborů, které jsou součástí konkrétní zálohovací sady snímků souborů, použijte uloženou proceduru RESTORE FILELISTONLY systému. Potom můžete pomocí uložené procedury systému sys.sp_delete_backup_file_snapshot odstranit jednotlivý záložní snímek souboru, který byl opuštěný. Příklady použití této systémové funkce a tyto systémové uložené procedury jsou na konci tohoto článku. Další informace najdete v tématu sp_delete_backup, sys.fn_db_backup_file_snapshots, sp_delete_backup_file_snapshot a RESTORE FILELISTONLY.

Úvahy a omezení

Premium Storage: Při použití služby Premium Storage platí následující omezení:

Jeden účet úložiště: Snímky souborů a cílové blobové objekty musí používat stejný účet úložiště.

Model hromadně protokolovaného obnovení: Pokud používáte model hromadně protokolovaného obnovení a pracujete se zálohováním transakčního logu obsahujícím minimálně protokolované transakce, nemůžete provést obnovení logu (včetně obnovení k určitému bodu v čase) pomocí zálohy transakčního logu. Místo toho provedete obnovení databáze ke času sady záloh snímků souborů. Toto omezení je stejné jako omezení u streamovaného zálohování.

Online obnovení: Při použití záloh snímků souborů nemůžete provést online obnovení. Další informace o online obnovení naleznete v tématu Online Obnovení (SQL Server).

Fakturování: Při použití zálohování snímků souborů SQL Serveru se při změnách dat budou účtovat další poplatky. Další informace najdete v tématu Vysvětlení způsobu nabíhání poplatků za snímky.

Archivace: Pokud chcete archivovat záložní snímek souborů, můžete ho archivovat do blobového úložiště nebo do streamovaného zálohování. Pokud chcete archivovat do úložiště objektů blob, kopie snímků ze záložní sady souborových snímků vložte do samostatných blobů. Pokud chcete archivovat zálohu ve streamování, obnovte snímek zálohy souboru jako novou databázi a poté proveďte běžné streamovací zálohování s kompresí a/nebo šifrováním, a archivujte jej tak dlouho, jak je potřeba, nezávisle na základních objektech blob.

Důležité

Údržba více záloh snímků souborů má pouze malou režii na výkon. Udržování nadměrného počtu záloh snímků souborů ale může mít vliv na výkon vstupně-výstupních operací databáze. Doporučujeme udržovat pouze ty zálohy snímků souborů, které jsou nezbytné pro podporu cíle bodu obnovení.

Zálohování databáze a protokolu pomocí zálohy snímků souborů

Tento příklad používá zálohování snímků souborů k zálohování AdventureWorks2025 ukázkové databáze na adresu URL.

-- To permit log backups, before the full database backup, modify the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE AdventureWorks2022  
   SET RECOVERY FULL;  
GO  
-- Back up the full AdventureWorks2022 database.  
BACKUP DATABASE AdventureWorks2022   
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'   
WITH FILE_SNAPSHOT;  
GO  
-- Back up the AdventureWorks2022 log using a time stamp in the backup file name.  
DECLARE @Log_Filename AS VARCHAR (300);  
SET @Log_Filename = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_Log_'+   
REPLACE (REPLACE (REPLACE (CONVERT (VARCHAR (40), GETDATE (), 120), '-','_'),':', '_'),' ', '_') + '.trn';  
BACKUP LOG AdventureWorks2022  
 TO URL = @Log_Filename WITH FILE_SNAPSHOT;  
GO  

Obnovení ze zálohy snímků souborů SQL Serveru

Následující příklad obnoví AdventureWorks2025 databázi pomocí zálohovací sady snímků souboru transakčního protokolu a zobrazí operaci obnovení. Všimněte si, že databázi můžete obnovit ze zálohovací sady snímků transakčního protokolu.

RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.trn'   
WITH RECOVERY, REPLACE;  
GO  

Obnovení ze zálohy snímků souborů SQL Serveru k určitému bodu v čase

Následující příklad obnoví AdventureWorks2025 do jeho stavu v zadaném bodu v čase pomocí dvou sad snímků záloh transakčního protokolu a předvede operaci obnovení.

RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.trn'   
WITH NORECOVERY,REPLACE;  
GO   
  
RESTORE LOG AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'   
WITH RECOVERY,STOPAT = 'May 18, 2015 5:35 PM';  
GO  

Odstranit zálohovací sadu snapshotů databázových souborů

Pokud chcete odstranit sadu záloh snímků souborů, použijte systémovou uloženou proceduru sys.sp_delete_backup . Zadejte název databáze, aby systém ověřil, že zadaná zálohovací sada snímků souborů je skutečně zálohou pro zadanou databázi. Pokud není zadán žádný název databáze, zadaná sada záloh se snímky souborů se odstraní bez takového ověření. Další informace najdete v tématu sp_delete_backup.

Výstraha

Při pokusu o odstranění sady záloh snímků souborů pomocí jiné metody, jako je například Portál pro správu Microsoft Azure nebo Prohlížeč služby Azure Storage v aplikaci SQL Server Management Studio, se snímky souborů v sadě záloh neodstraní. Tyto nástroje odstraní pouze samotný záložní soubor, který obsahuje ukazatele na snímky souborů v sadě záloh snímků souborů. Pokud chcete identifikovat záložní snímky souborů, které zůstávají po nesprávném odstranění záložního souboru, použijte sys.fn_db_backup_file_snapshots systémovou funkci a pak pomocí sys.sp_delete_backup_file_snapshot systémové uložené procedury odstraňte jednotlivý záložní soubor-snímek.

Následující příklad odstraní zadanou zálohovací sadu snímků souborů, včetně záložního souboru a snímků souborů, které tvoří zadanou sadu záloh.

EXEC sys.sp_delete_backup 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak', 'AdventureWorks2022' ;  
GO  

Zobrazení snímků záložních souborů databáze

Pokud chcete zobrazit snímky souborů základního objektu blob pro každý soubor databáze, použijte systémovou sys.fn_db_backup_file_snapshots funkci. Tato systémová funkce umožňuje zobrazit všechny záložní snímky souborů každého základního objektu blob pro databázi uloženou pomocí služby Azure Blob Storage. Primárním případem použití této funkce je identifikace snímků záloh souborů databáze, které zůstávají, když je záložní soubor pro zálohovací sadu snímků souborů odstraněn jiným mechanismem než pomocí systémové uložené procedury sys.sp_delete_backup. Chcete-li určit snímky záložních souborů, které jsou součástí nedotčených sad zálohování a ty, které nejsou součástí nedotčených sad záloh, použijte RESTORE FILELISTONLY systém uloženou proceduru k výpisu snímků souborů patřících do každého záložního souboru. Další informace naleznete v tématu sys.fn_db_backup_file_snapshots a RESTORE FILELISTONLY.

Následující příklad vrátí seznam všech záložních snímků souborů pro zadanou databázi.

--Either specify the database name or set the database context  
USE AdventureWorks2022  
select * from sys.fn_db_backup_file_snapshots (null) ;  
GO  
select * from sys.fn_db_backup_file_snapshots ('AdventureWorks2022') ;  
GO  

Odstraňte snímek záložního souboru databáze

Pokud chcete odstranit jednotlivý záložní souborový snímek základního blobu databáze, použijte systémovou uloženou proceduru sys.sp_delete_backup_file_snapshot. Primárním případem použití pro tuto systémovou uloženou proceduru je odstranění osiřelých souborů snímků, které zůstávají, po odstranění záložního souboru pomocí jiné metody než sys.sp_delete_backup systémové uložené procedury. Další informace najdete v tématu sp_delete_backup_file_snapshot.

Výstraha

Odstraněním jednotlivého snímku souboru, který je součástí zálohovací sady snímků souborů, dojde k zneplatnění zálohovací sady.

Následující příklad odstraní zadaný záložní soubor-snímek. Adresa URL zadané zálohy byla získána pomocí sys.fn_db_backup_file_snapshots systémové funkce.

EXEC sys.sp_delete_backup_file_snapshot N'AdventureWorks2022', N'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022Data.mdf?snapshot=2015-05-29T21:31:31.6502195Z';  
GO  

Další kroky