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 2016 (13.x) a novější verze
Tento kurz vám pomůže pochopit, jak používat Azure Blob Storage pro datové soubory a zálohy v SQL Serveru 2016 (13.x) a novějších verzích.
Podpora služby Azure Blob Storage v SQL Serveru byla zavedena v SQL Serveru 2012 (11.x) Service Pack 1 CU2 a vylepšená v novějších verzích. Přehled funkcí a výhod použití této funkce najdete v tématu Datové soubory SQL Serveru v Microsoft Azure.
V tomto kurzu se dozvíte, jak pracovat s datovými soubory SQL Serveru ve službě Azure Blob Storage v několika částech. Každá část je zaměřená na konkrétní úkol a měli byste dokončit oddíly v pořadí. Nejprve se dozvíte, jak ve službě Blob Storage vytvořit nový kontejner s uloženými zásadami přístupu a sdíleným přístupovým podpisem. Pak se dozvíte, jak vytvořit přihlašovací údaje SQL Serveru pro integraci SQL Serveru se službou Azure Blob Storage. Dále zálohujete databázi do služby Blob Storage a obnovíte ji na virtuální počítač Azure. Pak použijete zálohu transakčního protokolu snímků souborů SQL Serveru k obnovení k určitému bodu v čase a k nové databázi. Nakonec kurz ukazuje použití uložených procedur a funkcí systému metadat, které vám pomůžou pochopit a pracovat se zálohami snímků souborů.
Požadavky
K dokončení tohoto kurzu musíte být obeznámeni se koncepty zálohování a obnovení SQL Serveru a syntaxí T-SQL.
Pokud chcete tento kurz použít, potřebujete účet úložiště Azure, SQL Server Management Studio (SSMS), přístup k místní instanci SQL Serveru, přístup k virtuálnímu počítači Azure s instancí SQL Serveru 2016 (13.x) nebo novější a AdventureWorks2025 databázi. Kromě toho by účet použitý k vydávání BACKUP příkazů RESTORE měl být v roli databáze db_backupoperator s případných oprávněními ke změně přihlašovacích údajů .
- Získejte bezplatný účet Azure.
- Vytvořte účet Azure pro úložiště .
- Nainstalujte SQL Server 2017 Developer Edition.
- Zřízení virtuálního počítače Azure s SQL Serverem
- Nainstalujte SQL Server Management Studio.
- Stáhněte si ukázkové databáze AdventureWorks.
- Přiřaďte uživatelský účet k roli db_backupoperator a udělte oprávnění k úpravě libovolného přihlašovacího údaje.
Důležité
SQL Server nepodporuje Azure Data Lake Storage. Ujistěte se, že pro účet úložiště použitý pro tento kurz není povolený hierarchický obor názvů .
1. Vytvoření uložených zásad přístupu a úložiště sdíleného přístupu
V této části použijete skript Azure PowerShellu k vytvoření sdíleného přístupového podpisu v kontejneru Azure Blob Storage pomocí uložených zásad přístupu.
Poznámka:
Tento skript je napsaný pomocí Azure PowerShellu 5.0.10586.
Sdílený přístupový podpis je identifikátor URI, který uděluje omezená přístupová práva ke kontejnerům, objektům blob, frontám nebo tabulkám. Uložené zásady přístupu poskytují další úroveň kontroly nad sdílenými přístupovými podpisy na straně serveru, včetně odvolání, vypršení platnosti nebo rozšíření přístupu. Pokud používáte toto nové vylepšení, musíte v kontejneru vytvořit zásadu s alespoň právy ke čtení, zápisu a výpisu.
Uložené zásady přístupu a sdílený přístupový podpis můžete vytvořit pomocí Azure PowerShellu, sady Azure Storage SDK, rozhraní Azure REST API nebo nástroje třetí strany. Tento kurz ukazuje, jak k dokončení této úlohy použít skript Azure PowerShellu. Skript používá model nasazení Resource Manager a vytvoří následující nové prostředky.
- Skupina zdrojů
- Účet úložiště
- Kontejner pro Azure Blob Storage
- Zásady SAS
Tento skript začíná deklarací několika proměnných, které určují názvy předchozích prostředků a názvy následujících požadovaných vstupních hodnot:
- Název předpony použitý při pojmenování jiných objektů zdrojů
- Název předplatného
- Umístění datového centra
Skript se dokončí vygenerováním příslušného CREATE CREDENTIAL příkazu, který použijete v 2 – vytvoření přihlašovacích údajů SQL Serveru pomocí sdíleného přístupového podpisu. Toto prohlášení je zkopírováno do vaší schránky a je zobrazeno v konzoli, abyste jej mohli vidět.
Pokud chcete vytvořit zásadu v kontejneru a vygenerovat sdílený přístupový podpis (SAS), postupujte takto:
Otevřete Prostředí Windows PowerShell nebo prostředí Windows PowerShell ISE (viz předchozí požadavky na verzi).
Upravte a spusťte následující skript:
# Define global variables for the script $prefixName = '<a prefix name>' # used as the prefix for the name for various objects $subscriptionID = '<your subscription ID>' # the ID of subscription name you will use $locationName = '<a data center location>' # the data center region you will use $storageAccountName = $prefixName + 'storage' # the storage account name you will create or use $containerName = $prefixName + 'container' # the storage container name to which you will attach the SAS policy with its SAS token $policyName = $prefixName + 'policy' # the name of the SAS policy # Set a variable for the name of the resource group you will create or use $resourceGroupName = $prefixName + 'rg' # Add an authenticated Azure account for use in the session Connect-AzAccount # Set the tenant, subscription and environment for use in the rest of Set-AzContext -SubscriptionId $subscriptionID # Create a new resource group - comment out this line to use an existing resource group New-AzResourceGroup -Name $resourceGroupName -Location $locationName # Create a new Azure Resource Manager storage account - comment out this line to use an existing Azure Resource Manager storage account New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName # Get the access keys for the Azure Resource Manager storage account $accountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName # Create a new storage account context using an Azure Resource Manager storage account $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].Value # Creates a new container in Blob Storage $container = New-AzStorageContainer -Context $storageContext -Name $containerName # Sets up a Stored Access Policy and a Shared Access Signature for the new container $policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -StartTime $(Get-Date).ToUniversalTime().AddMinutes(-5) -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission rwld # Gets the Shared Access Signature for the policy $sas = New-AzStorageContainerSASToken -name $containerName -Policy $policyName -Context $storageContext Write-Host 'Shared Access Signature= '$($sas.Substring(1))'' # Sets the variables for the new container you just created $container = Get-AzStorageContainer -Context $storageContext -Name $containerName $cbc = $container.CloudBlobContainer # Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature Write-Host 'Credential T-SQL' $tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET='{1}'" -f $cbc.Uri, $sas Set-Clipboard -Value $tSql Write-Host $tSql # Once you're done with the tutorial, remove the resource group to clean up the resources. # Remove-AzResourceGroup -Name $resourceGroupNamePo dokončení
CREATE CREDENTIALskriptu se příkaz nachází ve schránce pro použití v další části.
2. Vytvoření přihlašovacích údajů SQL Serveru pomocí sdíleného přístupového podpisu
V této části vytvoříte přihlašovací údaje pro uložení informací o zabezpečení, které SQL Server používá k zápisu do kontejneru Azure Blob Storage a čtení z kontejneru Azure Blob Storage, který jste vytvořili v předchozím kroku.
Přihlašovací údaje SQL Serveru jsou objekt, který slouží k ukládání ověřovacích informací potřebných k připojení k prostředku mimo SQL Server. Přihlašovací údaje ukládají cestu URI kontejneru Azure Blob Storage a sdíleného přístupového podpisu pro tento kontejner.
Pokud chcete vytvořit přihlašovací údaje SQL Serveru, postupujte takto:
Spusťte SSMS.
Otevřete nové okno dotazu a připojte se k instanci SQL Serveru databázového stroje v místním prostředí.
V novém okně dotazu vložte
CREATE CREDENTIALpříkaz se sdíleným přístupovým podpisem z oddílu 1 a spusťte tento skript.Skript vypadá jako následující kód.
/* Example: USE master CREATE CREDENTIAL [https://msfttutorial.blob.core.windows.net/containername] WITH IDENTITY='SHARED ACCESS SIGNATURE' , SECRET = 'sharedaccesssignature' GO */ USE master; CREATE CREDENTIAL [https://<storage-account>.blob.core.windows.net/<container-name>] -- this name must match the container path, start with https and must not contain a forward slash at the end WITH IDENTITY = 'SHARED ACCESS SIGNATURE', -- this is a mandatory string and should not be changed SECRET = 'sharedaccesssignature'; -- this is the shared access signature key that you obtained in section 1. GOPokud chcete zobrazit všechny dostupné přihlašovací údaje, můžete spustit následující příkaz v okně dotazu připojeném k vaší instanci:
SELECT * FROM sys.credentials;Otevřete nové okno dotazu a připojte se k instanci SQL Serveru databázového stroje ve virtuálním počítači Azure.
V novém okně dotazu vložte
CREATE CREDENTIALpříkaz se sdíleným přístupovým podpisem z oddílu 1 a spusťte tento skript.Opakujte kroky 5 a 6 pro všechny další instance SQL Serveru, ke kterým chcete mít přístup ke kontejneru.
3. Zálohování databáze na URL
V této části zálohujete AdventureWorks2025 databázi v instanci SQL Serveru do kontejneru, který jste vytvořili v oddílu 1.
Pokud chcete zálohovat databázi do úložiště objektů blob, postupujte takto:
Spusťte SSMS.
Otevřete nové okno dotazu a připojte se k instanci SQL Serveru na virtuálním počítači Azure.
Zkopírujte a vložte následující Transact-SQL skript do okna dotazu. Odpovídajícím způsobem upravte adresu URL pro název vašeho účtu úložiště a kontejner, který jste zadali v části 1, a pak spusťte tento skript.
-- To permit log backups, before the full database backup, modify the database to use the full recovery model. USE master; ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL; -- Back up the full AdventureWorks2022 database to the container that you created in section 1 BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_onprem.bak';Otevřete Průzkumníka objektů a připojte se k úložišti Azure pomocí účtu úložiště a klíče účtu.
- Rozbalte kontejnery, rozbalte kontejner, který jste vytvořili v oddílu 1, a ověřte, že se v tomto kontejneru zobrazí záloha z kroku 3 výše.
4. Obnovení databáze na virtuální počítač z adresy URL
V této části obnovíte AdventureWorks2025 databázi na instanci SQL Serveru na virtuálním počítači Azure.
Poznámka:
Pro účely jednoduchosti v tomto kurzu používáme stejný kontejner pro data a soubory protokolů, které jsme použili pro zálohování databáze. V produkčním prostředí byste pravděpodobně používali více kontejnerů a často i více datových souborů. ** Můžete také zvážit rozložení zálohy mezi několik objektů blob, abyste zvýšili výkon zálohování u velké databáze.
Pokud chcete obnovit databázi AdventureWorks2025 z Azure Blob Storage do instance SQL Serveru na virtuálním počítači Azure, postupujte takto:
Spusťte SSMS.
Otevřete nové okno dotazu a připojte se k instanci SQL Serveru databázového stroje ve virtuálním počítači Azure.
Zkopírujte a vložte následující Transact-SQL skript do okna dotazu. Odpovídajícím způsobem upravte adresu URL pro název vašeho účtu úložiště a kontejner, který jste zadali v části 1, a pak spusťte tento skript.
-- Restore AdventureWorks2022 from URL to SQL Server instance using Azure Blob Storage for database files RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_onprem.bak' WITH MOVE 'AdventureWorks2022_data' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Data.mdf', MOVE 'AdventureWorks2022_log' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Log.ldf'; --, REPLACEOtevřete Průzkumníka objektů a připojte se k instanci Azure SQL Serveru.
V Průzkumníku objektů rozbalte uzel Databáze a ověřte, že
AdventureWorks2025byla databáze obnovena (podle potřeby aktualizujte uzel).Klikněte pravým tlačítkem na AdventureWorks2025 a vyberte Vlastnosti.
Vyberte Soubory a ověřte, že cesty obou databázových souborů odkazují na objekty blob v kontejneru služby Azure Blob Storage (po dokončení vyberte Zrušit).
V Průzkumníku objektů se připojte ke službě Azure Storage.
- Rozbalte kontejnery, rozbalte kontejner, který jste vytvořili v oddílu 1, a ověřte, že
AdventureWorks2022_Data.mdfse v tomto kontejneru zobrazí předchozí krok aAdventureWorks2022_Log.ldfže se spolu se záložním souborem z oddílu 3 (podle potřeby aktualizujte uzel).
- Rozbalte kontejnery, rozbalte kontejner, který jste vytvořili v oddílu 1, a ověřte, že
5. Zálohování databáze pomocí zálohování snímků souborů
V této části zálohujete AdventureWorks2025 databázi ve virtuálním počítači Azure pomocí zálohování snímků souborů k provedení téměř okamžitého zálohování pomocí snímků Azure. Další informace o zálohování snímků souborů najdete v tématu File-Snapshot Zálohování databázových souborů v Azure
Pokud chcete zálohovat AdventureWorks2025 databázi pomocí zálohování snímků souborů, postupujte takto:
Spusťte SSMS.
Otevřete nové okno dotazu a připojte se k instanci SQL Serveru databázového stroje ve virtuálním počítači Azure.
Zkopírujte, vložte a spusťte následující Transact-SQL skript do okna dotazu (nezavírejte toto okno dotazu – tento skript spustíte znovu v kroku 5). Tato systémová uložená procedura umožňuje zobrazit existující zálohy snímků souborů pro každý soubor, který obsahuje zadanou databázi. Vidíte, že pro tuto databázi nejsou žádné zálohy snímků souborů.
-- Verify that no file snapshot backups exist SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');Zkopírujte a vložte následující Transact-SQL skript do okna dotazu. Odpovídajícím způsobem upravte adresu URL pro název vašeho účtu úložiště a kontejner, který jste zadali v části 1, a pak spusťte tento skript. Všimněte si, jak rychle k tomuto zálohování dochází.
-- Backup the AdventureWorks2022 database with FILE_SNAPSHOT BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Azure.bak' WITH FILE_SNAPSHOT;Po ověření úspěšného spuštění skriptu v kroku 4 spusťte následující skript znovu. Operace zálohování snímků souborů v kroku 4 vygenerovala snímky souborů dat i souboru protokolu.
-- Verify that two file-snapshot backups exist SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');V Průzkumníku objektů v instanci SQL Serveru na virtuálním počítači Azure rozbalte uzel Databáze a ověřte, že se databáze
AdventureWorks2025obnovila do této instance (podle potřeby aktualizujte uzel).V Průzkumníku objektů se připojte ke službě Azure Storage.
Rozbalte kontejnery, rozbalte kontejner, který jste vytvořili v oddílu 1, a ověřte, že
AdventureWorks2022_Azure.bakse v tomto kontejneru zobrazí výše uvedený krok 4, spolu se záložním souborem z oddílu 3 a soubory databáze z oddílu 4 (podle potřeby aktualizujte uzel).
6. Generovat protokoly aktivit a zálohování pomocí zálohování snímků souborů
V této části vygenerujete aktivitu v AdventureWorks2025 databázi a pravidelně vytváříte zálohy transakčních protokolů pomocí záloh snímků souborů. Další informace o použití zálohování snímků souborů najdete v tématu File-Snapshot Zálohování databázových souborů v Azure.
Chcete-li generovat aktivitu v databázi AdventureWorks2025 a pravidelně vytvářet zálohy transakčních protokolů pomocí záloh snímků souborů, postupujte takto:
Spusťte SSMS.
Otevřete dvě nová okna dotazů a připojte je k instanci SQL Serveru databázového stroje ve virtuálním počítači Azure.
Zkopírujte, vložte a spusťte následující Transact-SQL skript do jednoho z oken dotazu. Tabulka
Production.Locationobsahuje 14 řádků před přidáním nových řádků v kroku 4.-- Verify row count at start SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;Zkopírujte a vložte následující dva Transact-SQL skripty do dvou samostatných oken dotazu. Odpovídajícím způsobem upravte adresu URL pro název vašeho účtu úložiště a kontejner, který jste zadali v oddílu 1, a pak tyto skripty spusťte současně v samostatných oknech dotazů. Dokončení těchto skriptů trvá několik minut.
-- Insert 30,000 new rows into the Production.Location table in the AdventureWorks2022 database in batches of 75 DECLARE @count AS INT = 1, @inner AS INT; WHILE @count < 400 BEGIN BEGIN TRANSACTION; SET @inner = 1; WHILE @inner <= 75 BEGIN INSERT INTO AdventureWorks2022.Production.Location ( Name, CostRate, Availability, ModifiedDate ) VALUES (NEWID(), .5, 5.2, GETDATE()); SET @inner = @inner + 1; END COMMIT TRANSACTION; WAITFOR DELAY '00:00:01'; SET @count = @count + 1; END SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;--take 7 transaction log backups with FILE_SNAPSHOT, one per minute, and include the row count and the execution time in the backup file name DECLARE @count INT=1, @device NVARCHAR(120), @numrows INT; WHILE @count <= 7 BEGIN SET @numrows = (SELECT COUNT (*) FROM AdventureWorks2022.Production.Location); SET @device = 'https://<storage-account>.blob.core.windows.net/<container-name>/tutorial-' + CONVERT (varchar(10),@numrows) + '-' + FORMAT(GETDATE(), 'yyyyMMddHHmmss') + '.bak'; BACKUP LOG AdventureWorks2022 TO URL = @device WITH FILE_SNAPSHOT; SELECT * from sys.fn_db_backup_file_snapshots ('AdventureWorks2022'); WAITFOR DELAY '00:1:00'; SET @count = @count + 1; END;Prohlédněte si výstup prvního skriptu a všimněte si, že konečný počet řádků je teď 29 939.
Prohlédněte si výstup druhého skriptu a všimněte si, že při
BACKUP LOGkaždém spuštění příkazu se vytvoří dva nové snímky souborů, jeden snímek souboru protokolu a jeden snímek datového souboru – celkem dva snímky souborů pro každý soubor databáze. Po dokončení druhého skriptu si všimněte, že teď je celkem 16 snímků souborů, 8 pro každý soubor databáze – jeden zBACKUP DATABASEpříkazu a jeden pro každé spuštěníBACKUP LOGpříkazu.V Průzkumníku objektů se připojte ke službě Azure Storage.
Rozbalte Kontejnery, rozbalte kontejner, který jste vytvořili v oddílu 1, a ověřte, že se zobrazí sedm nových záložních souborů spolu s datovými soubory z předchozích částí (podle potřeby aktualizujte uzel).
7. Obnovení databáze k určitému bodu v čase
V této části obnovíte AdventureWorks2025 databázi k určitému bodu v čase mezi dvěma zálohami transakčního protokolu.
V případě tradičních záloh byste k obnovení k určitému bodu v čase museli použít úplnou zálohu databáze, třeba rozdílové zálohování a všechny soubory transakčních protokolů až do bodu v čase, do kterého chcete provést obnovení. Při zálohování snímků souborů potřebujete jenom dva sousední záložní soubory protokolu, které poskytují cílové příspěvky rámující čas, na který chcete provést obnovení. Potřebujete jenom dvě sady zálohování snímků souboru protokolu, protože každá záloha protokolu vytvoří snímek souboru každého souboru databáze (každý datový soubor a soubor protokolu).
Pokud chcete obnovit databázi k určitému bodu v čase ze sad zálohování snímků souborů, postupujte takto:
Spusťte SSMS.
Otevřete nové okno dotazu a připojte se k instanci SQL Serveru databázového stroje ve virtuálním počítači Azure.
Zkopírujte, vložte a spusťte následující Transact-SQL skript do okna dotazu. Před obnovením tabulky
Production.Locationdo bodu v čase, kdy obsahuje méně řádků, než je tomu nyní, v kroku 4 ověřte, že tabulka obsahuje 29 939 řádků.-- Verify row count at start SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;
Zkopírujte a vložte následující Transact-SQL skript do okna dotazu. Vyberte dva sousední záložní soubory protokolu a převeďte název souboru na datum a čas, který pro tento skript potřebujete. Upravte adresu URL odpovídajícím způsobem pro název účtu úložiště a kontejner, který jste zadali v oddílu 1. Zadejte názvy prvního a druhého záložního souboru, zadejte
STOPATčas ve formátuJune 26, 2018 01:48 PMa pak spusťte tento skript. Dokončení trvá několik minut.-- restore and recover to a point in time between the times of two transaction log backups, and then verify the row count ALTER DATABASE AdventureWorks2022 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<firstbackupfile>.bak' WITH NORECOVERY, REPLACE; RESTORE LOG AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<secondbackupfile>.bak' WITH RECOVERY, STOPAT = 'June 26, 2018 01:48 PM'; ALTER DATABASE AdventureWorks2022 SET MULTI_USER; -- get new count SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;Zkontrolujte výstup. Po obnovení je počet řádků 18 389, což je číslo počtu řádků mezi zálohováním protokolu 5 a 6 (počet řádků se může lišit).
8. Obnovení jako nové databáze ze zálohy protokolů
V této části obnovíte AdventureWorks2025 databázi jako novou databázi ze zálohy transakčního protokolu snímku souboru.
V tomto scénáři provádíte obnovení instance SQL Serveru na jiném virtuálním počítači pro účely obchodní analýzy a vytváření sestav. Obnovení do jiné instance na jiném virtuálním počítači přesměruje úlohy do vyhrazeného a určeného virtuálního počítače pro tento účel, čímž se odeberou požadavky na prostředky z transakčního systému.
Obnovení ze zálohy transakčního protokolu pomocí zálohování snímků souborů je rychlé a podstatně rychlejší než u tradičních záloh streamování. U tradičních záloh streamování musíte použít úplné zálohování databáze, třeba rozdílové zálohování a některé nebo všechny zálohy transakčních protokolů (nebo nové úplné zálohování databáze). Při zálohování protokolů pomocí snímku souborů však potřebujete pouze nejnovější zálohu protokolu (nebo jakoukoli jinou zálohu protokolu, nebo jakékoli dvě sousední zálohy protokolu pro obnovení k určitému bodu v čase mezi dvěma okamžiky zálohování protokolu). Abyste měli jistotu, potřebujete jen jednu sadu zálohování snímků protokolového souboru, protože každá záloha snímků protokolových souborů vytvoří snímek pro každý soubor databáze (každý datový soubor a každý soubor protokolu).
Pokud chcete obnovit databázi do nové databáze ze zálohy transakčního protokolu pomocí zálohování snímků souborů, postupujte takto:
Spusťte SSMS.
Otevřete nové okno dotazu a připojte se k instanci SQL Serveru databázového stroje na virtuálním počítači Azure.
Pokud se jedná o jiný virtuální počítač Azure, než jste používali v předchozích částech, ujistěte se, že jste postupovali podle kroků v 2 – Vytvoření přihlašovacích údajů SQL Serveru pomocí sdíleného přístupového podpisu. Pokud chcete provést obnovení do jiného kontejneru, postupujte podle kroků v 1 – Vytvořte uložené zásady přístupu a úložiště sdíleného přístupu pro nový kontejner.
Zkopírujte a vložte následující Transact-SQL skript do okna dotazu. Vyberte soubor zálohy logu, který chcete použít. Odpovídajícím způsobem upravte adresu URL pro název vašeho účtu úložiště a kontejner, který jste zadali v oddílu 1, zadejte název záložního souboru protokolu a spusťte tento skript.
-- restore as a new database from a transaction log backup file RESTORE DATABASE AdventureWorks2022_EOM FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<logbackupfile.bak>' WITH MOVE 'AdventureWorks2022_data' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_EOM_Data.mdf', MOVE 'AdventureWorks2022_log' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_EOM_Log.ldf', RECOVERY; --, REPLACEZkontrolujte výstup a ověřte, že obnovení proběhlo úspěšně.
V Průzkumníku objektů se připojte ke službě Azure Storage.
Rozbalte Kontejner, rozbalte kontejner, který jste vytvořili v oddílu 1 (v případě potřeby aktualizujte) a ověřte, že se v kontejneru objeví nové soubory dat a protokolů spolu s bloby z předchozích částí.
9. Správa sad záloh a záloh snímků souborů
V této části odstraníte zálohovací sadu pomocí uložené procedury sp_delete_backup systému. Tato systémová uložená procedura odstraní záložní soubor a snímek souboru u každého souboru databáze přidruženého k této zálohovací sadě.
Poznámka:
Pokud se pokusíte odstranit zálohovací sadu odstraněním záložního souboru z kontejneru Azure Blob Storage, odstraníte pouze samotný záložní soubor – přidružené snímky souborů zůstanou. Pokud v tomto scénáři zjistíte sami sebe, pomocí funkce systému sys.fn_db_backup_file_snapshots identifikujte adresu URL snímků osamocených souborů a pomocí uložené procedury sp_delete_backup_file_snapshot systému odstraňte každý osamocený snímek souboru. Další informace najdete v tématu File-Snapshot Zálohování databázových souborů v Azure.
Pokud chcete odstranit zálohovací sadu snímků souborů, postupujte takto:
Spusťte SSMS.
Otevřete nové okno dotazu a připojte se k instanci SQL Serveru databázového stroje ve virtuálním počítači Azure (nebo k jakékoli instanci SQL Serveru s oprávněními ke čtení a zápisu v tomto kontejneru).
Zkopírujte a vložte následující Transact-SQL skript do okna dotazu. Vyberte zálohu protokolu, kterou chcete odstranit, spolu s přidruženými snímky souborů. Odpovídajícím způsobem upravte adresu URL pro název vašeho účtu úložiště a kontejner, který jste zadali v oddílu 1, zadejte název záložního souboru protokolu a spusťte tento skript.
EXECUTE sys.sp_delete_backup 'https://<storage-account>.blob.core.windows.net/<container-name>/tutorial-21764-20181003205236.bak';V Průzkumníku objektů se připojte ke službě Azure Storage.
Rozbalte Kontejnery, rozbalte kontejner, který jste vytvořili v oddílu 1, a ověřte, že se záložní soubor, který jste použili v kroku 3, již v tomto kontejneru nezobrazuje (podle potřeby aktualizujte uzel).
Zkopírujte, vložte a spusťte následující Transact-SQL skript do okna dotazu, abyste ověřili, že byly odstraněny dva snímky souborů.
-- verify that two file snapshots have been removed SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');
10. Odebrání prostředků
Jakmile budete s tímto kurzem hotovi a chcete ušetřit prostředky, nezapomeňte odstranit skupinu prostředků vytvořenou v tomto kurzu.
Pokud chcete odstranit skupinu prostředků, spusťte následující kód PowerShellu:
# Define global variables for the script
$prefixName = '<prefix name>' # should be the same as the beginning of the tutorial
# Set a variable for the name of the resource group you will create or use
$resourceGroupName = $prefixName + 'rg'
# Adds an authenticated Azure account for use in the session
Connect-AzAccount
# Set the tenant, subscription and environment for use in the rest of
Set-AzContext -SubscriptionId $subscriptionID
# Remove the resource group
Remove-AzResourceGroup -Name $resourceGroupName
Související obsah
- Datové soubory SQL Serveru v Microsoft Azure
- zálohováníFile-Snapshot pro databázové soubory v Azure
- Zálohování SQL Serveru na adresu URL pro Azure Blob Storage
- Sdílené přístupové podpisy, část 1: Porozumění modelu SAS
- Vytvoření kontejneru
- Nastavit přístupová práva kontejneru ACL
- Získejte seznam ACL kontejneru
- Pověření (databázový stroj)
- VYTVOŘIT PŘIHLAŠOVACÍ ÚDAJE (Transact-SQL)
- sys.credentials (Transact-SQL)
- sp_delete_backup (Transact-SQL)
- sys.fn_db_backup_file_snapshots (Transact-SQL)
- sp_delete_backup_file_snapshot (Transact-SQL)