Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2016 (13.x) és újabb verziók
Ez az oktatóanyag segít megérteni, hogyan használhatja az Azure Blob Storage-t adatfájlokhoz és biztonsági mentésekhez az SQL Server 2016 (13.x) és újabb verzióiban.
Az Azure Blob Storage támogatása az SQL Serverben az SQL Server 2012 (11.x) Service Pack 1 CU2-ben jelent meg, és a későbbi verziókban is bővült. A funkció funkcióinak és előnyeinek áttekintéséért tekintse meg a Microsoft Azure SQL Server-adatfájljait.
Ez az oktatóanyag bemutatja, hogyan dolgozhat SQL Server-adatfájlokkal az Azure Blob Storage-ban több szakaszban. Minden szakasz egy adott tevékenységre összpontosít, és a szakaszokat egymás után kell elvégeznie. Először megtudhatja, hogyan hozhat létre új tárolót a Blob Storage-ban tárolt hozzáférési szabályzattal és közös hozzáférésű jogosultságkóddal. Ezután megtudhatja, hogyan hozhat létre SQL Server-hitelesítő adatokat az SQL Server és az Azure Blob Storage integrálásához. Ezután biztonsági másolatot készít egy adatbázisról a Blob Storage-ba, és visszaállítja azt egy Azure-beli virtuális gépre. Ezután az SQL Server fájl-pillanatkép tranzakciónaplójának biztonsági mentését használva visszaállíthatja egy időpontra és egy új adatbázisra. Végül az oktatóanyag bemutatja a metaadatrendszer által tárolt eljárások és függvények használatát a fájl-pillanatképek biztonsági mentésének megértéséhez és használatához.
Előfeltételek
Az oktatóanyag elvégzéséhez ismernie kell az SQL Server biztonsági mentési és visszaállítási alapelveit, valamint a T-SQL szintaxisát.
Az oktatóanyag használatához szüksége lesz egy Azure Storage-fiókra, az SQL Server Management Studio (SSMS), a helyszíni SQL Server-példányhoz való hozzáférésre, az SQL Server 2016 (13.x) vagy újabb verzióját futtató Azure-beli virtuális géphez (VM) való hozzáférésre, valamint egy adatbázisra AdventureWorks2025 . Emellett a kiadáshoz BACKUP használt fióknak és RESTORE a parancsok db_backupoperator adatbázis-szerepkörben kell lennie a hitelesítő adatok engedélyeinek módosításával .
- Ingyenes Azure-fiók.
- Azure Storage-fiók létrehozása.
- Telepítse SQL Server 2017 Developer Edition.
- Sql Servert futtató Azure-beli virtuális gép kiépítése.
- Telepítse SQL Server Management Studio.
- Töltse le AdventureWorks-mintaadatbázisokat.
- Rendelje hozzá a felhasználói fiókot a db_backupoperator szerepköréhez, és adjon meg bármilyen hitelesítő engedély módosítását.
Fontos
Az SQL Server nem támogatja az Azure Data Lake Storage-t. Győződjön meg arról, hogy a hierarchikus névtér nincs engedélyezve az oktatóanyaghoz használt tárfiókon.
1 – Tárolt hozzáférési szabályzat és megosztott hozzáférési tár létrehozása
Ebben a szakaszban egy Azure PowerShell-szkripttel hoz létre megosztott hozzáférési aláírást egy Azure Blob Storage-tárolón egy tárolt hozzáférési szabályzat használatával.
Megjegyzés:
Ez a szkript az Azure PowerShell 5.0.10586 használatával íródott.
A közös hozzáférésű jogosultságkód egy URI, amely korlátozott hozzáférési jogosultságokat biztosít tárolókhoz, blobokhoz, üzenetsorokhoz vagy táblákhoz. A tárolt hozzáférési szabályzatok további szintű vezérlést biztosítanak a megosztott hozzáférésű jogosultságkódok felett a kiszolgáló oldalán, beleértve a hozzáférés visszavonását, lejártát vagy kiterjesztését. Az új fejlesztés használatakor létre kell hoznia egy szabályzatot egy legalább olvasási, írási és listázási jogosultsággal rendelkező tárolón.
Tárolt hozzáférési szabályzatot és megosztott hozzáférési aláírást az Azure PowerShell, az Azure Storage SDK, az Azure REST API vagy egy külső segédprogram használatával hozhat létre. Ez az oktatóanyag bemutatja, hogyan végezheti el ezt a feladatot egy Azure PowerShell-szkripttel. A szkript a Resource Manager üzemi modelljét használja, és a következő új erőforrásokat hozza létre
- Erőforráscsoport
- Tároló fiók
- Azure Blob Storage-tároló
- SAS-szabályzat
Ez a szkript több változó deklarálásával kezdődik az előző erőforrások nevének és a következő kötelező bemeneti értékek nevének megadásához:
- Más erőforrásobjektumok elnevezésére használt előtagnév
- Előfizetés neve
- Adatközpont helye
A szkript a 2. lépésben használt megfelelő CREATE CREDENTIAL utasítás létrehozásával fejeződik be – SQL Server-hitelesítő adatok létrehozása közös hozzáférésű jogosultságkód használatával. Ez az utasítás a vágólapra lesz másolva, és megjelenik a konzolon.
Ha szabályzatot szeretne létrehozni a tárolón, és létre szeretne hozni egy közös hozzáférésű jogosultságkódot (SAS), kövesse az alábbi lépéseket:
Nyissa meg a Windows PowerShellt vagy a Windows PowerShell ISE-t (lásd a korábbi verziókövetelményeket).
Szerkessze, majd hajtsa végre a következő szkriptet:
# 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 $resourceGroupNameA szkript befejeződése után az
CREATE CREDENTIALutasítás a vágólapon lesz a következő szakaszban való használatra.
2 – SQL Server-hitelesítő adatok létrehozása közös hozzáférésű jogosultságkód használatával
Ebben a szakaszban egy hitelesítő adatot hoz létre a biztonsági információk tárolásához, amelyet az SQL Server használ az előző lépésben létrehozott Azure Blob Storage-tárolóba való íráshoz és olvasáshoz.
Az SQL Server-hitelesítő adatok olyan objektumok, amelyek az SQL Serveren kívüli erőforráshoz való csatlakozáshoz szükséges hitelesítési információk tárolására szolgálnak. A hitelesítő adatok az Azure Blob Storage-tároló URI-elérési útját és a tároló közös hozzáférésű jogosultságkódját tárolják.
SQL Server-hitelesítő adatok létrehozásához kövesse az alábbi lépéseket:
Indítsa el az SSMS-eket.
Nyisson meg egy új lekérdezési ablakot, és csatlakozzon az adatbázismotor SQL Server-példányához a helyszíni környezetben.
Az új lekérdezési ablakban illessze be az utasítást az
CREATE CREDENTIAL1. szakasz megosztott hozzáférési aláírásával, és hajtsa végre a szkriptet.A szkript a következő kódhoz hasonlóan néz ki.
/* 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. GOAz összes elérhető hitelesítő adat megtekintéséhez futtassa a következő utasítást a példányhoz csatlakoztatott lekérdezési ablakban:
SELECT * FROM sys.credentials;Nyisson meg egy új lekérdezési ablakot, és csatlakozzon az adatbázismotor SQL Server-példányához az Azure-beli virtuális gépen.
Az új lekérdezési ablakban illessze be az utasítást az
CREATE CREDENTIAL1. szakasz megosztott hozzáférési aláírásával, és hajtsa végre a szkriptet.Ismételje meg az 5. és a 6. lépést minden további SQL Server-példány esetében, amelyhez hozzá szeretne férni a tárolóhoz.
3 – Adatbázis biztonsági mentése URL-re
Ebben a szakaszban biztonsági másolatot készít az AdventureWorks2025 SQL Server-példány adatbázisról az 1. szakaszban létrehozott tárolóra.
Adatbázis blobtárolóba való biztonsági mentéséhez kövesse az alábbi lépéseket:
Indítsa el az SSMS-eket.
Nyisson meg egy új lekérdezési ablakot, és csatlakozzon az SQL Server-példányhoz az Azure-beli virtuális gépen.
Másolja és illessze be a következő Transact-SQL szkriptet a lekérdezési ablakba. Módosítsa a tárfiók nevének és az 1. szakaszban megadott tárolónak megfelelő URL-címet, majd hajtsa végre ezt a szkriptet.
-- 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';Nyissa meg az Object Explorert, és csatlakozzon az Azure Storage-hoz a tárfiók és a fiókkulcs használatával.
- Bontsa ki a Tárolókat, bontsa ki az 1. szakaszban létrehozott tárolót, és ellenőrizze, hogy a 3. lépés korábbi biztonsági mentése megjelenik-e ebben a tárolóban.
4 – Adatbázis visszaállítása virtuális gépre URL-címről
Ebben a szakaszban visszaállítja az adatbázist az AdventureWorks2025 Azure-beli virtuális gépen található SQL Server-példányra.
Megjegyzés:
Az oktatóanyag egyszerűsége érdekében ugyanazt a tárolót használjuk az adatbázis biztonsági mentéséhez használt adatokhoz és naplófájlokhoz. Éles környezetben valószínűleg több tárolót és gyakran több adatfájlt is használna. Érdemes lehet a biztonsági mentést több blobra is szétszedni, hogy nagyobb biztonsági mentési teljesítményt nyújtson egy nagy adatbázis biztonsági mentésekor.
A AdventureWorks2025 adatbázis Azure Blob Storage-ból az Azure-beli virtuális gép SQL Server-példányába való visszaállításához kövesse az alábbi lépéseket:
Indítsa el az SSMS-eket.
Nyisson meg egy új lekérdezési ablakot, és csatlakozzon az adatbázismotor SQL Server-példányához az Azure-beli virtuális gépen.
Másolja és illessze be a következő Transact-SQL szkriptet a lekérdezési ablakba. Módosítsa a tárfiók nevének és az 1. szakaszban megadott tárolónak megfelelő URL-címet, majd hajtsa végre ezt a szkriptet.
-- 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'; --, REPLACENyissa meg az Object Explorert, és csatlakozzon az Azure SQL Server-példányhoz.
Az Object Explorerben bontsa ki az Adatbázisok csomópontot, és ellenőrizze, hogy az
AdventureWorks2025adatbázis vissza lett-e állítva (szükség esetén frissítse a csomópontot).Kattintson a jobb gombbal az AdventureWorks2025 elemre, és válassza a Tulajdonságok lehetőséget.
Válassza Fájlok lehetőséget, és ellenőrizze, hogy a két adatbázisfájl elérési útjai az Azure Blob Storage-tároló blobjaira mutató URL-címek-e (ha elkészült, válassza a Mégse lehetőséget).
Az Object Explorerben csatlakozzon az Azure Storage-hoz.
- Bontsa ki a Tárolókat, bontsa ki az 1. szakaszban létrehozott tárolót, és győződjön meg arról, hogy a
AdventureWorks2022_Data.mdf3. lépés korábbi ésAdventureWorks2022_Log.ldfújabb lépése megjelenik ebben a tárolóban, valamint a 3. szakasz biztonsági mentési fájljával együtt (szükség esetén frissítse a csomópontot).
- Bontsa ki a Tárolókat, bontsa ki az 1. szakaszban létrehozott tárolót, és győződjön meg arról, hogy a
5 – Adatbázis biztonsági mentése fájlszintű pillanatképpel
Ebben a szakaszban biztonsági másolatot készít az AdventureWorks2025 azure-beli virtuális gépen lévő adatbázisról fájl-pillanatkép biztonsági mentésével, hogy szinte azonnal készítsen biztonsági másolatot az Azure-pillanatképek használatával. A fájl-pillanatképek biztonsági mentésével kapcsolatos további információkért lásd: File-Snapshot Biztonsági másolatok adatbázisfájlokhoz az Azure
Ha a AdventureWorks2025 adatbázisról szeretne biztonsági másolatot készíteni a fájl-pillanatkép biztonsági mentésével, kövesse az alábbi lépéseket:
Indítsa el az SSMS-eket.
Nyisson meg egy új lekérdezési ablakot, és csatlakozzon az adatbázismotor SQL Server-példányához az Azure-beli virtuális gépen.
Másolja, illessze be és hajtsa végre a következő Transact-SQL szkriptet a lekérdezési ablakban (ne zárja be ezt a lekérdezési ablakot – az 5. lépésben ismét végrehajtja ezt a szkriptet). Ez a rendszer által tárolt eljárás lehetővé teszi, hogy megtekintse a fájl pillanatképének meglévő biztonsági másolatait minden fájlhoz, amely egy adott adatbázist tartalmaz. Láthatja, hogy ehhez az adatbázishoz nincsenek fájl pillanatképek biztonsági másolatai.
-- Verify that no file snapshot backups exist SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');Másolja és illessze be a következő Transact-SQL szkriptet a lekérdezési ablakba. Módosítsa a tárfiók nevének és az 1. szakaszban megadott tárolónak megfelelő URL-címet, majd hajtsa végre ezt a szkriptet. Figyelje meg, milyen gyorsan történik a biztonsági mentés.
-- 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;Miután ellenőrizte, hogy a 4. lépésben lévő szkript sikeresen végrehajtotta-e a műveletet, futtassa újra a következő szkriptet. A fájl-pillanatkép biztonsági mentési művelete a 4. lépésben létrehozott fájl-pillanatképek mind az adatokról, mind a naplófájlról.
-- Verify that two file-snapshot backups exist SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');Az Object Explorerben az Azure-beli virtuális gép SQL Server-példányában bontsa ki a Adatbázisok csomópontot, és ellenőrizze, hogy a
AdventureWorks2025adatbázis vissza lett-e állítva erre a példányra (szükség esetén frissítse a csomópontot).Az Object Explorerben csatlakozzon az Azure Storage-hoz.
Bontsa ki a Tárolókat, bontsa ki az 1. szakaszban létrehozott tárolót, és ellenőrizze, hogy a
AdventureWorks2022_Azure.bak4. lépés korábbi lépése jelenik-e meg ebben a tárolóban, valamint a 3. szakasz biztonsági mentési fájlját és a 4. szakasz adatbázisfájljait (szükség esetén frissítse a csomópontot).
6 – Tevékenységi és biztonsági mentési napló létrehozása a fájl-pillanatkép biztonsági mentés használatával
Ebben a szakaszban létrehoz egy tevékenységet az AdventureWorks2025 adatbázisban, és rendszeres időközönként hoz létre tranzakciónapló-biztonsági mentéseket fájl-pillanatkép biztonsági másolatok használatával. A fájlpillanatképek biztonsági mentésének használatáról további információt File-Snapshot Az Azure-adatbázisfájlok biztonsági másolatai című témakörben talál.
A AdventureWorks2025-adatbázisban végzett tevékenység létrehozásához és a tranzakciónaplók rendszeres biztonsági mentésének fájl-pillanatképek használatával történő létrehozásához kövesse az alábbi lépéseket:
Indítsa el az SSMS-eket.
Nyisson meg két új lekérdezési ablakot, és csatlakoztassa mindegyiket az adatbázismotor SQL Server-példányához az Azure-beli virtuális gépen.
Másolja, illessze be és hajtsa végre a következő Transact-SQL szkriptet a lekérdezési ablakok egyikébe. A
Production.Locationtáblázat 14 sort tartalmaz, mielőtt új sorokat adnánk hozzá a 4. lépésben.-- Verify row count at start SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;Másolja és illessze be a következő két Transact-SQL szkriptet a két külön lekérdezési ablakba. Módosítsa a tárfiók nevének és az 1. szakaszban megadott tárolónak megfelelő URL-címet, majd hajtsa végre ezeket a szkripteket egyidejűleg külön lekérdezési ablakban. Ezek a szkriptek végrehajtása néhány percet vesz igénybe.
-- 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;Tekintse át az első szkript kimenetét, és figyelje meg, hogy az utolsó sorszám most 29 939.
Tekintse át a második szkript kimenetét, és figyelje meg, hogy minden
BACKUP LOGegyes utasítás végrehajtásakor két új fájlpillanatkép jön létre, egy fájl pillanatképe a naplófájlról és egy fájl pillanatképe az adatfájlról – összesen két fájl pillanatképe minden adatbázisfájlhoz. A második szkript befejezése után figyelje meg, hogy most összesen 16 fájl pillanatképe van, 8 minden adatbázisfájlhoz – egy azBACKUP DATABASEutasításból, egy pedig azBACKUP LOGutasítás minden végrehajtásához.Az Object Explorerben csatlakozzon az Azure Storage-hoz.
Bontsa ki tárolók, bontsa ki az 1. szakaszban létrehozott tárolót, és ellenőrizze, hogy hét új biztonsági mentési fájl jelenik-e meg, valamint az előző szakaszok adatfájljai (szükség szerint frissítse a csomópontot).
7 – Adatbázis visszaállítása adott időpontra
Ebben a szakaszban visszaállítja az AdventureWorks2025 adatbázist a tranzakciónapló két biztonsági mentése közötti időpontra.
Hagyományos biztonsági mentések esetén, időpont szerinti visszaállításhoz, a teljes adatbázis biztonsági mentését, esetleg egy különbségi biztonsági mentést kell használnia, valamint az összes tranzakciós naplófájlt az időpontig és azt követően, ahová vissza szeretné állítani. A fájl-pillanatképek biztonsági mentéséhez csak a két szomszédos naplófájl biztonsági mentési fájlra van szüksége, amelyek a visszaállításhoz szükséges időt keretező célbejegyzéseket biztosítják. Csak két naplófájl-pillanatkép biztonsági mentési készlet szükséges, mert minden egyes naplómentés fájl pillanatképet hoz létre minden adat- és naplófájlból.
Ha egy adatbázist egy adott időpontra szeretne visszaállítani a fájl pillanatkép-biztonsági mentési készleteiből, kövesse az alábbi lépéseket:
Indítsa el az SSMS-eket.
Nyisson meg egy új lekérdezési ablakot, és csatlakozzon az adatbázismotor SQL Server-példányához az Azure-beli virtuális gépen.
Másolja, illessze be és hajtsa végre a következő Transact-SQL szkriptet a lekérdezési ablakban. Ellenőrizze, hogy a
Production.Locationtábla 29 939 sorból áll-e, mielőtt visszaállítjuk egy olyan időpontra, amikor a 4. lépésben kevesebb sor van.-- Verify row count at start SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;
Másolja és illessze be a következő Transact-SQL szkriptet a lekérdezési ablakba. Jelöljön ki két szomszédos naplófájl biztonsági mentési fájlt, és konvertálja a fájlnevet a szkripthez szükséges dátummá és időpontra. Módosítsa a tárfiók nevének és az 1. szakaszban megadott tárolónak megfelelő URL-címet. Adja meg az első és a második biztonsági mentési fájl nevét, adja meg az
STOPATidő formátumátJune 26, 2018 01:48 PM, majd hajtsa végre ezt a szkriptet. A befejezés néhány percet vesz igénybe.-- 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;Tekintse át a kimenetet. A visszaállítás után a sorok száma 18 389, ami a napló biztonsági mentése 5 és 6 közötti sorszám (a sorok száma eltérő lehet).
8 – Visszaállítás új adatbázisként a napló biztonsági mentéséből
Ebben a szakaszban új adatbázisként állítja vissza az AdventureWorks2025 adatbázist egy fájl-pillanatkép tranzakciónapló biztonsági mentéséből.
Ebben a forgatókönyvben egy másik virtuális gépen lévő SQL Server-példány visszaállítását hajtja végre üzleti elemzés és jelentéskészítés céljából. Ha egy másik virtuális gépen egy másik példányra állítja vissza a feladatot, azzal a feladatot egy erre a célra dedikált és méretezett virtuális gépre terheli, és eltávolítja az erőforrásigényét a tranzakciós rendszerből.
A tranzakciónaplók fájl-pillanatkép-biztonsági mentéssel történő visszaállítása gyors, lényegesen gyorsabb, mint a hagyományos streamelési biztonsági másolatok esetében. A hagyományos streamelési biztonsági mentések esetén a teljes adatbázis biztonsági mentését, esetleg a különbségi biztonsági mentést és a tranzakciónapló biztonsági mentéseinek egy részét vagy egészét (vagy egy új teljes adatbázis biztonsági mentését) kell használnia. A fájl-pillanatkép naplóinak biztonsági mentései esetén azonban csak a legutóbbi napló biztonsági mentésére van szükség (vagy bármely más napló biztonsági mentésére vagy két szomszédos napló biztonsági mentésére, hogy az időponthoz tartozó időpontok két biztonsági mentési időpont között legyenek visszaállítva). Az egyértelműség kedvéért, csak egy naplófájl-pillanatkép biztonsági mentésre van szükség, ugyanis minden egyes fájl-pillanatkép-napló biztonsági mentés fájlsnapfot készít az egyes adatbázisfájlokról (minden adatfájlról és a naplófájlról).
Ha egy adatbázist egy tranzakciónapló mentéséből szeretne visszaállítani egy új adatbázisba fájlpillanatkép-mentéssel, kövesse az alábbi lépéseket:
Indítsa el az SSMS-eket.
Nyisson meg egy új lekérdezési ablakot, és csatlakozzon az adatbázismotor SQL Server-példányához egy Azure-beli virtuális gépen.
Ha ez egy másik Azure-beli virtuális gép, mint amit az előző szakaszokban használt, győződjön meg arról, hogy követte a lépéseket a 2 - SQL Server hitelesítő adatok létrehozása közös hozzáférési aláírássalútmutató szerint. Ha egy másik tárolóba szeretne visszaállítani, az új tárolóhoz kövesse az 1-es lépést - Tárolt hozzáférési szabályzat létrehozása és megosztott hozzáférésű tárhely készítése.
Másolja és illessze be a következő Transact-SQL szkriptet a lekérdezési ablakba. Válassza ki a használni kívánt naplófájl biztonsági másolatát. Módosítsa a tárfiók nevének és az 1. szakaszban megadott tárolónak megfelelő URL-címet, adja meg a naplófájl biztonsági mentési fájljának nevét, majd hajtsa végre ezt a szkriptet.
-- 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; --, REPLACETekintse át a kimenetet, és ellenőrizze, hogy a visszaállítás sikeres volt-e.
Az Object Explorerben csatlakozzon az Azure Storage-hoz.
Bontsa ki Tárolók, bontsa ki az 1. szakaszban létrehozott tárolót (szükség esetén frissítse), és ellenőrizze, hogy az új adatok és naplófájlok megjelennek-e a tárolóban, valamint az előző szakaszok blobjai.
9 – Biztonsági mentési csoportok és fájl-pillanatképek biztonsági mentéseinek kezelése
Ebben a szakaszban egy biztonsági mentési csoportot töröl a sp_delete_backup rendszer által tárolt eljárással. Ez a rendszer által tárolt eljárás törli a biztonsági mentési fájlt és a fájl pillanatképét a biztonsági mentési csoporthoz társított összes adatbázisfájlon.
Megjegyzés:
Ha úgy próbál törölni egy biztonsági mentési csoportot, hogy törli a biztonsági mentési fájlt az Azure Blob Storage-tárolóból, csak magát a biztonsági mentési fájlt törli – a társított fájl pillanatképei megmaradnak. Ha ebben a forgatókönyvben találja magát, a sys.fn_db_backup_file_snapshots rendszerfüggvény használatával azonosíthatja az árva fájl pillanatképeinek URL-címét, és a sp_delete_backup_file_snapshot rendszer által tárolt eljárással törölheti az egyes árva fájlok pillanatképeit. További információ: File-Snapshot Biztonsági másolatok adatbázisfájlokhoz az Azure.
A fájl-pillanatkép biztonsági mentési készletének törléséhez kövesse az alábbi lépéseket:
Indítsa el az SSMS-eket.
Nyisson meg egy új lekérdezési ablakot, és csatlakozzon az adatbázismotor SQL Server-példányához az Azure-beli virtuális gépen (vagy bármely olyan SQL Server-példányhoz, amely rendelkezik olvasási és írási engedéllyel ezen a tárolón).
Másolja és illessze be a következő Transact-SQL szkriptet a lekérdezési ablakba. Válassza ki a törölni kívánt napló biztonsági mentését a kapcsolódó fájlpillanatképekkel együtt. Módosítsa a tárfiók nevének és az 1. szakaszban megadott tárolónak megfelelő URL-címet, adja meg a naplófájl biztonsági mentési fájljának nevét, majd hajtsa végre ezt a szkriptet.
EXECUTE sys.sp_delete_backup 'https://<storage-account>.blob.core.windows.net/<container-name>/tutorial-21764-20181003205236.bak';Az Object Explorerben csatlakozzon az Azure Storage-hoz.
Bontsa ki tárolók, bontsa ki az 1. szakaszban létrehozott tárolót, és ellenőrizze, hogy a 3. lépésben használt biztonsági mentési fájl már nem jelenik-e meg ebben a tárolóban (szükség szerint frissítse a csomópontot).
Másolja, illessze be és hajtsa végre a következő Transact-SQL szkriptet a lekérdezési ablakban annak ellenőrzéséhez, hogy két fájl pillanatképe törölve lett-e.
-- verify that two file snapshots have been removed SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');
10 – Erőforrások eltávolítása
Ha végzett az oktatóanyaggal, és meg szeretné őrizni az erőforrásokat, mindenképpen törölje az oktatóanyagban létrehozott erőforráscsoportot.
Az erőforráscsoport törléséhez futtassa a következő PowerShell-kódot:
# 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
Kapcsolódó tartalom
- SQL Server-adatfájlok a Microsoft Azure-ban
- Adatbázisfájlok biztonsági mentése fájlpillanatképekkel az Azure-ban
- SQL Server biztonsági mentése URL-címre az Azure Blob Storage-ben
- közös hozzáférésű jogosultságkódok, 1. rész: Az SAS-modell ismertetése
- Tároló létrehozása
- Tároló ACL-ének beállítása
- Tároló ACL-ének lekérése
- hitelesítő adatok (adatbázismotor)
- HITELESÍTŐ ADATOK LÉTREHOZÁSA (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)