SQL-adatbázisok biztonsági mentése és visszaállítása Azure-beli virtuális gépeken a PowerShell használatával
Ez a cikk azt ismerteti, hogyan használható az Azure PowerShell egy SQL DB biztonsági mentésére és helyreállítására egy Azure-beli virtuális gépen az Azure Backup Recovery Services-tároló használatával.
Ez a cikk elmagyarázza, hogyan:
- Állítsa be a PowerShellt, és regisztrálja az Azure Recovery Services-szolgáltatót.
- Recovery Services-tároló létrehozása.
- Az SQL DB biztonsági mentésének konfigurálása egy Azure-beli virtuális gépen belül.
- Futtasson egy biztonsági mentési feladatot.
- Biztonsági másolatban létrehozott SQL DB visszaállítása.
- Biztonsági mentési és visszaállítási feladatok monitorozása.
Előkészületek
- További információ a Recovery Services-tárolókról.
- További információ az AZURE-beli virtuális gépeken futó SQL DBs biztonsági mentésének funkcióiról.
- Tekintse át a Recovery Services PowerShell-objektumhierarchiáját.
Recovery Services-objektumhierarchia
Az objektumhierarchiát az alábbi diagram foglalja össze.
Tekintse át az Az.RecoveryServicesparancsmag hivatkozási hivatkozását az Azure-kódtárban.
Beállítás és telepítés
A PowerShell beállítása az alábbiak szerint:
Töltse le az Az PowerShell legújabb verzióját. A minimálisan szükséges verzió az 1.5.0.
Keresse meg az Azure Backup PowerShell-parancsmagokat a következő paranccsal:
Get-Command *azrecoveryservices*
Tekintse át az Azure Backup és a Recovery Services-tároló aliasait és parancsmagjait. Íme egy példa arra, hogy mit láthat. Ez nem a parancsmagok teljes listája.
Jelentkezzen be Azure-fiókjába a Connect-AzAccount használatával.
A megjelenő weblapon a rendszer kéri, hogy adja meg a fiók hitelesítő adatait.
- Másik lehetőségként a fiók hitelesítő adatait is megadhatja paraméterként a Connect-AzAccount parancsmagban a -Credential parancsmaggal.
- Ha Ön egy bérlőn dolgozó CSP-partner, adja meg az ügyfelet bérlőként a bérlőazonosító vagy a bérlő elsődleges tartományneve használatával. Ilyen például a Connect-AzAccount -Tenant fabrikam.com.
Társítsa a használni kívánt előfizetést a fiókkal, mert egy fiók több előfizetéssel is rendelkezhet.
Select-AzSubscription -SubscriptionName $SubscriptionName
Ha első alkalommal használja az Azure Backupot, a Register-AzResourceProvider parancsmaggal regisztrálja az Azure Recovery Services-szolgáltatót az előfizetésével.
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
Ellenőrizze, hogy a szolgáltatók sikeresen regisztráltak-e:
Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
A parancs kimenetében ellenőrizze, hogy a RegistrationState a Registered értékre változik-e. Ha nem, futtassa újra a Register-AzResourceProvider parancsmagot.
Helyreállítási tár létrehozása
Az alábbi lépéseket követve hozzon létre egy Recovery Services-tárolót.
A Recovery Services-tároló egy Resource Manager-erőforrás, ezért azt egy erőforráscsoporton belül kell elhelyeznie. Használhat egy meglévő erőforráscsoportot, vagy létrehozhat egy erőforráscsoportot a New-AzResourceGroup parancsmaggal. Erőforráscsoport létrehozásakor adja meg az erőforráscsoport nevét és helyét.
A tároló egy erőforráscsoportba kerül. Ha nem rendelkezik meglévő erőforráscsoporttal, hozzon létre egy újat a New-AzResourceGroup használatával. Ebben a példában egy új erőforráscsoportot hozunk létre az USA nyugati régiójában.
New-AzResourceGroup -Name "test-rg" -Location "West US"
A tároló létrehozásához használja a New-AzRecoveryServicesVault parancsmagot. Adja meg az erőforráscsoporthoz használt tároló helyét.
New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
Adja meg a tárolótárolóhoz használandó redundancia típusát.
- Használhat helyileg redundáns tárolást, georedundáns tárolást vagy zónaredundáns tárolást .
- Az alábbi példa a Set-AzRecoveryServicesBackupProperty parancs beállítását állítja be a beállításhoz
GeoRedundant
testvault
.-BackupStorageRedundancy
$vault1 = Get-AzRecoveryServicesVault -Name "testvault" Set-AzRecoveryServicesBackupProperties -Vault $vault1 -BackupStorageRedundancy GeoRedundant
A tárolók megtekintése előfizetésben
Az előfizetés összes tárolójának megtekintéséhez használja a Get-AzRecoveryServicesVault parancsot.
Get-AzRecoveryServicesVault
A kimenet a következőhöz hasonló. A társított erőforráscsoport és hely meg van adva.
Name : Contoso-vault
ID : /subscriptions/1234
Type : Microsoft.RecoveryServices/vaults
Location : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId : 1234-567f-8910-abc
Properties : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties
A tároló környezetének beállítása
Tárolja a tárolóobjektumot egy változóban, és állítsa be a tárolókörnyezetet.
- Számos Azure Backup-parancsmag bemenetként igényli a Recovery Services-tároló objektumot, így kényelmesen tárolhatja a tárolóobjektumot egy változóban.
- A tárolási környezet a tár által védett adatok típusa. Állítsa be a Set-AzRecoveryServicesVaultContext használatával. A környezet beállítása után az összes további parancsmagra vonatkozik.
Az alábbi példa a tárolókörnyezetet állítja be a következőhöz: testvault
Get-AzRecoveryServicesVault -Name "testvault" | Set-AzRecoveryServicesVaultContext
A tárolóazonosító beolvasása
Az Azure PowerShell-irányelveknek megfelelően tervezzük a tároló környezeti beállításának elavultra állítását. Ehelyett tárolhatja vagy lekérheti a tárolóazonosítót, és átadhatja a megfelelő parancsoknak az alábbiak szerint:
$testVault = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault"
$testVault.ID
Biztonsági mentési szabályzat konfigurálása
A biztonsági mentési szabályzat meghatározza a biztonsági mentések ütemezését, valamint azt, hogy mennyi ideig kell megőrizni a biztonsági mentés helyreállítási pontjait:
- A biztonsági mentési szabályzat legalább egy adatmegőrzési szabályzathoz van társítva. A megőrzési szabályzat meghatározza, hogy a helyreállítási pontok mennyi ideig maradnak a törlés előtt.
- Tekintse meg az alapértelmezett biztonsági mentési házirend-megőrzést a Get-AzRecoveryServicesBackupRetentionPolicyObject használatával.
- Tekintse meg az alapértelmezett biztonsági mentési szabályzat ütemezését a Get-AzRecoveryServicesBackupSchedulePolicyObject használatával.
- A New-AzRecoveryServicesBackupProtectionPolicy parancsmaggal hozzon létre egy új biztonsági mentési szabályzatot. Adja meg az ütemezési és adatmegőrzési szabályzat objektumait.
Alapértelmezés szerint a kezdési időpont az Ütemezési szabályzat objektumban van meghatározva. Az alábbi példában a kezdési időpontot a kívánt kezdési időpontra módosíthatja. A kívánt kezdési időpontnak UTC-ben is meg kell lennie. Az alábbi példa feltételezi, hogy a napi biztonsági mentések kezdési ideje 01:00 (UTC) lesz.
$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "MSSQL"
$UtcTime = (Get-Date -Date "2019-03-20 01:30:00Z").ToUniversalTime()
$schPol.FullBackupSchedulePolicy.ScheduleRunTimes[0] = $UtcTime
Fontos
A kezdési időpontot csak 30 perces többszörösökben kell megadnia. A fenti példában csak "01:00:00" vagy "02:30:00" lehet. A kezdési időpont nem lehet "01:15:00".
Az alábbi példa az ütemezési szabályzatot és a megőrzési szabályzatot változókban tárolja. Ezután ezeket a változókat használja egy új szabályzat (NewSQLPolicy) paramétereként. A NewSQLPolicy napi "Teljes" biztonsági mentést készít, 180 napig őrzi meg, és 2 óránként napló biztonsági másolatot készít
$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "MSSQL"
$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "MSSQL"
$NewSQLPolicy = New-AzRecoveryServicesBackupProtectionPolicy -Name "NewSQLPolicy" -WorkloadType "MSSQL" -RetentionPolicy $retPol -SchedulePolicy $schPol
A kimenet a következőhöz hasonló.
Name WorkloadType BackupManagementType BackupTime Frequency IsDifferentialBackup IsLogBackupEnabled
Enabled
---- ------------ -------------------- ---------- --------- -------------------- ------------------
NewSQLPolicy MSSQL AzureWorkload 3/15/2019 01:30:00 AM Daily False True
Biztonsági mentés engedélyezése
Az SQL virtuális gép regisztrálása
Az Azure-beli virtuális gépek biztonsági mentései és az Azure-fájlmegosztások esetében a Backup szolgáltatás csatlakozhat ezekhez az Azure Resource Manager-erőforrásokhoz, és lekérheti a vonatkozó részleteket. Mivel az SQL egy Azure-beli virtuális gépen belüli alkalmazás, a Backup szolgáltatásnak engedélyre van szüksége az alkalmazás eléréséhez és a szükséges adatok lekéréséhez. Ehhez regisztrálnia kell az SQL-alkalmazást tartalmazó Azure-beli virtuális gépet egy Recovery Services-tárolóval. Miután regisztrál egy SQL virtuális gépet egy tárolóval, csak az adott tárolóhoz védheti az SQL-beli DBs-eket. A virtuális gép regisztrálásához használja a Register-AzRecoveryServicesBackupContainer PowerShell-parancsmagot.
$myVM = Get-AzVM -ResourceGroupName <VMRG Name> -Name <VMName>
Register-AzRecoveryServicesBackupContainer -ResourceId $myVM.ID -BackupManagementType AzureWorkload -WorkloadType MSSQL -VaultId $testVault.ID -Force
A parancs visszaadja az erőforrás biztonsági mentési tárolóját, és az állapot "regisztrálva" lesz
Feljegyzés
Ha az erőparaméter nincs megadva, a rendszer a következő szöveggel erősítse meg: "Letiltja a tároló védelmét". Hagyja figyelmen kívül ezt a szöveget, és mondja ki az "Y" szöveget a megerősítéshez. Ez egy ismert probléma, és dolgozunk a szöveg és az erőparaméter követelményének eltávolításán.
SQL-adatbázisok beolvasása
A regisztráció befejezése után a Backup szolgáltatás képes lesz listázni a virtuális gépen elérhető összes SQL-összetevőt. A tárolóhoz még biztonsági másolatot készíteni kívánt SQL-összetevők megtekintéséhez használja a Get-AzRecoveryServicesBackupProtectableItem PowerShell-parancsmagot
Get-AzRecoveryServicesBackupProtectableItem -WorkloadType MSSQL -VaultId $testVault.ID
A kimenet az összes nem védett SQL-összetevőt megjeleníti a tárolóban regisztrált összes SQL-virtuális gépen elemtípussal és Kiszolgálónévvel. A "-Container" paraméter átadásával tovább szűrhet egy adott SQL-virtuális gépre, vagy használhatja a "Name" és a "ServerName" kombinációt az ItemType jelölővel együtt egy egyedi SQL-elem eléréséhez.
$SQLDB = Get-AzRecoveryServicesBackupProtectableItem -workloadType MSSQL -ItemType SQLDataBase -VaultId $testVault.ID -Name "<Item Name>" -ServerName "<Server Name>"
Biztonsági mentés konfigurálása
Most, hogy rendelkezünk a szükséges SQL DB-vel és azzal a szabályzattal, amellyel biztonsági másolatot kell készíteni, az Enable-AzRecoveryServicesBackupProtection parancsmaggal konfigurálhatjuk a biztonsági mentést ehhez az SQL DB-hez.
Enable-AzRecoveryServicesBackupProtection -ProtectableItem $SQLDB -Policy $NewSQLPolicy
A parancs megvárja, amíg a biztonsági mentési konfiguráció befejeződik, és a következő kimenetet adja vissza.
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
master ConfigureBackup Completed 3/18/2019 6:00:21 PM 3/18/2019 6:01:35 PM 654e8aa2-4096-402b-b5a9-e5e71a496c4e
Új SQL-adatbázisok beolvasása
A gép regisztrálása után a Backup szolgáltatás lekéri az elérhető adatbázisok adatait. Ha az SQL-adatbázisok vagy SQL-példányok később hozzá lesznek adva a regisztrált géphez, manuálisan kell aktiválnia a biztonsági mentési szolgáltatást egy új "lekérdezés" végrehajtásához, hogy újra lekérje az összes nem védett adatbázist (beleértve az újonnan hozzáadottakat is). Az Initialize-AzRecoveryServicesBackupItem PowerShell-parancsmaggal végezzen friss lekérdezést az SQL virtuális gépen. A parancs megvárja a művelet befejezését. Később használja a Get-AzRecoveryServicesBackupProtectableItem PowerShell-parancsmagot a legújabb nem védett SQL-összetevők listájának lekéréséhez.
$SQLContainer = Get-AzRecoveryServicesBackupContainer -ContainerType AzureVMAppContainer -FriendlyName <VM name> -VaultId $testVault.ID
Initialize-AzRecoveryServicesBackupProtectableItem -Container $SQLContainer -WorkloadType MSSQL -VaultId $testVault.ID
Get-AzRecoveryServicesBackupProtectableItem -workloadType MSSQL -ItemType SQLDataBase -VaultId $testVault.ID
A megfelelő védhető elemek beolvasása után engedélyezze a biztonsági mentéseket a fenti szakaszban leírtak szerint. Ha valaki nem szeretné manuálisan észlelni az új DLL-eket, az alábbiakban ismertetett módon választhatja az automatikus védelem használatát.
Automatikus védelem engedélyezése
A biztonsági mentés konfigurálható úgy, hogy a jövőben hozzáadott összes DB automatikusan védett legyen egy bizonyos szabályzattal. Az automatikus védelem engedélyezéséhez használja az Enable-AzRecoveryServicesBackupAutoProtection PowerShell-parancsmagot.
Mivel az utasítás az összes jövőbeli DB biztonsági mentése, a művelet SQLInstance szinten történik.
$SQLInstance = Get-AzRecoveryServicesBackupProtectableItem -workloadType MSSQL -ItemType SQLInstance -VaultId $testVault.ID -Name "<Protectable Item name>" -ServerName "<Server Name>"
Enable-AzRecoveryServicesBackupAutoProtection -InputItem $SQLInstance -BackupManagementType AzureWorkload -WorkloadType MSSQL -Policy $NewSQLPolicy -VaultId $testVault.ID
Az automatikus védelmi szándék megadása után az újonnan hozzáadott DBs lekérésére vonatkozó gépi vizsgálat ütemezett háttérfeladatként történik 8 óránként.
SQL-adatbázisok visszaállítása
Az Azure Backup az alábbiak szerint állíthatja vissza az Azure-beli virtuális gépeken futó SQL Server-adatbázisokat:
- Visszaállítás egy adott dátumra vagy időpontra (a másodikra) tranzakciónapló-biztonsági mentések használatával. Az Azure Backup automatikusan meghatározza a megfelelő teljes különbözeti biztonsági mentést és a napló biztonsági mentési láncát, amelyek a visszaállításhoz szükségesek a kiválasztott idő alapján.
- Adott teljes vagy különbözeti biztonsági mentés visszaállítása egy adott helyreállítási pontra való visszaállításhoz.
Az SQL-adatbázisok visszaállítása előtt ellenőrizze az itt említett előfeltételeket.
Figyelmeztetés
Az RBAC-vel kapcsolatos biztonsági probléma miatt be kellett vezetnünk az SQL DB visszaállítási parancsainak a PowerShellen keresztüli kompatibilitástörő módosítását. Frissítsen az Az 6.0.0-s vagy újabb verziójára, hogy a megfelelő visszaállítási parancsokat a PowerShellen keresztül küldje el. A legújabb PS-parancsokat alább találja.
Először a Get-AzRecoveryServicesBackupItem PowerShell-parancsmaggal kérje le a megfelelő biztonsági mentési SQL DB-t.
$bkpItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureWorkload -WorkloadType MSSQL -Name "<backup item name>" -VaultId $testVault.ID
A megfelelő visszaállítási idő lekérése
A fentiekben leírtaknak megfelelően visszaállíthatja a biztonsági másolatot tartalmazó SQL DB-t egy teljes/különbözeti példányra vagy egy időponthoz kötött naplópontra.
Különböző helyreállítási pontok beolvasása
A Get-AzRecoveryServicesBackupRecoveryPoint használatával lekérhet különálló (teljes/különbözeti) helyreállítási pontokat egy biztonsági mentési SQL DB-hez.
$startDate = (Get-Date).AddDays(-7).ToUniversalTime()
$endDate = (Get-Date).ToUniversalTime()
Get-AzRecoveryServicesBackupRecoveryPoint -Item $bkpItem -VaultId $testVault.ID -StartDate $startdate -EndDate $endDate
A kimenet hasonló az alábbi példához
RecoveryPointId RecoveryPointType RecoveryPointTime ItemName BackupManagemen
tType
--------------- ----------------- ----------------- -------- ---------------
6660368097802 Full 3/18/2019 8:09:35 PM MSSQLSERVER;model AzureWorkload
A megfelelő helyreállítási pont beolvasásához használja a "RecoveryPointId" szűrőt vagy egy tömbszűrőt.
$FullRP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $bkpItem -VaultId $testVault.ID -RecoveryPointId "6660368097802"
Időponthoz kötött helyreállítási pont beolvasása
Ha vissza szeretné állítani a adatbázist egy adott időpontra, használja a Get-AzRecoveryServicesBackupRecoveryLogChain PowerShell-parancsmagot. A parancsmag azoknak a dátumoknak a listáját adja vissza, amelyek az ADOTT SQL biztonsági mentési elem töretlen, folyamatos naplóláncának kezdési és befejezési időpontját jelölik. A kívánt időpontnak ebben a tartományban kell lennie.
Get-AzRecoveryServicesBackupRecoveryLogChain -Item $bkpItem -VaultId $testVault.ID
A kimenet az alábbi példához hasonló lesz.
ItemName StartTime EndTime
-------- --------- -------
SQLDataBase;MSSQLSERVER;azu... 3/18/2019 8:09:35 PM 3/19/2019 12:08:32 PM
A fenti kimenet azt jelenti, hogy bármikor visszaállítható a megjelenített kezdési és befejezési idő között. Az időpontok UTC-ben vannak. A PowerShellben bármilyen időponthoz kötött pontot hozhat létre, amely a fent látható tartományon belül található.
Feljegyzés
Ha egy időponthoz kötött naplópont van kiválasztva a visszaállításhoz, nem kell megadnia a kiindulási pontot, vagyis azt a teljes biztonsági másolatot, amelyből a adatbázis visszaállítva van. Az Azure Backup szolgáltatás gondoskodik a teljes helyreállítási tervről, vagyis arról, hogy melyik teljes biztonsági mentést válassza, milyen napló biztonsági mentéseket kell alkalmaznia, és így tovább.
Helyreállítási konfiguráció meghatározása
SQL DB-visszaállítás esetén a következő visszaállítási forgatókönyvek támogatottak.
- A biztonsági mentési SQL DB felülbírálása egy másik helyreállítási pont adataival – OriginalWorkloadRestore
- Az SQL DB visszaállítása új adatbázisként ugyanabban az SQL-példányban – AlternateWorkloadRestore
- Az SQL DB visszaállítása új ADATBÁZISként egy másik SQL-példányban egy másik SQL-virtuális gépen – AlternateWorkloadRestore
- Az SQL DB visszaállítása .bak fájlokként – RestoreAsFiles
A megfelelő helyreállítási pont (eltérő vagy naplópont az időben) lekérése után használja a Get-AzRecoveryServicesBackupWorkloadRecoveryConfig PowerShell parancsmagot a helyreállítási konfigurációs objektum kívánt helyreállítási terv szerinti lekéréséhez.
Eredeti számítási feladat visszaállítása
Ha felül szeretné bírálni a biztonsági mentési adatbázist a helyreállítási pont adataival, csak adja meg a megfelelő jelzőt és a megfelelő helyreállítási pontot az alábbi példa(ok) szerint.
Eredeti visszaállítás eltérő helyreállítási ponttal
$OverwriteWithFullConfig = Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -RecoveryPoint $FullRP -OriginalWorkloadRestore -VaultId $testVault.ID
Eredeti visszaállítás időponthoz kötött naplózási ponttal
$OverwriteWithLogConfig = Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -PointInTime $PointInTime -Item $bkpItem -OriginalWorkloadRestore -VaultId $testVault.ID
Alternatív számítási feladatok visszaállítása
Fontos
A biztonsági másolatban szereplő SQL DB-k csak a tárolóban "regisztrált" Azure-beli virtuális gépeken állíthatók vissza új ADATBÁZISként egy másik SQLInstance-hez.
A fentieknek megfelelően, ha a cél SQLInstance egy másik Azure-beli virtuális gépen belül található, győződjön meg arról, hogy regisztrálva van ehhez a tárolóhoz , és a megfelelő SQLInstance védett elemként jelenik meg. Ebben a dokumentumban tegyük fel, hogy a cél SQLInstance név MSSQLSERVER egy másik virtuális gépen (Contoso2).
$TargetContainer = Get-AzRecoveryServicesBackupContainer -ContainerType AzureVMAppContainer -Status Registered -VaultId $testVault.ID -FriendlyName "Contoso2"
$TargetInstance = Get-AzRecoveryServicesBackupProtectableItem -WorkloadType MSSQL -ItemType SQLInstance -Name "MSSQLSERVER" -ServerName "Contoso2" -VaultId $testVault.ID
Ezután csak adja át a megfelelő helyreállítási pontot, a cél SQL-példányt az alább látható megfelelő jelzővel, valamint a céltárolóval, amely alatt a cél SQL-példány létezik.
Alternatív visszaállítás eltérő helyreállítási ponttal
$AnotherInstanceWithFullConfig = Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -RecoveryPoint $FullRP -TargetItem $TargetInstance -AlternateWorkloadRestore -VaultId $testVault.ID -TargetContainer $TargetContainer
Alternatív visszaállítás időponthoz kötött naplózási ponttal
$AnotherInstanceWithLogConfig = Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -PointInTime $PointInTime -Item $bkpItem -TargetItem $TargetInstance -AlternateWorkloadRestore -VaultId $testVault.ID -TargetContainer $TargetContainer
Visszaállítás fájlokként
Ha adatbázis helyett .bak fájlként szeretné visszaállítani a biztonsági mentési adatokat, válassza a Visszaállítás fájlként lehetőséget. A biztonsági másolatban szereplő SQL DB bármely cél virtuális gépre visszaállítható, amely regisztrálva van a tárolóban.
$TargetContainer= Get-AzRecoveryServicesBackupContainer -ContainerType AzureVMAppContainer -FriendlyName "VM name" -VaultId $vaultID
Visszaállítás különálló helyreállítási ponttal rendelkező fájlokként
$FileRestoreWithFullConfig = Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -RecoveryPoint $FullRP -TargetContainer $TargetContainer -RestoreAsFiles -FilePath "<>" -VaultId $testVault.ID
Visszaállítás fájlokként a legújabb teljes naplóponttal
$FileRestoreWithLogConfig = Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -PointInTime $PointInTime -TargetContainer $TargetContainer -RestoreAsFiles -FilePath "<>" -VaultId $testVault.ID
Visszaállítás a megadott teljes naplóponttal rendelkező fájlokként
Ha egy adott teljes értéket szeretne megadni a visszaállításhoz, használja a következő parancsot:
$FileRestoreWithLogAndSpecificFullConfig = Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -PointInTime $PointInTime -FromFull $FullRP -TargetContainer $TargetContainer -RestoreAsFiles -FilePath "<>" -VaultId $testVault.ID
A Get-AzRecoveryServicesBackupWorkloadRecoveryConfig PowerShell-parancsmagból beszerzett végső helyreállításipont-konfigurációs objektum tartalmazza a visszaállításhoz szükséges összes releváns információt, és az alább látható módon.
TargetServer : <SQL server name>
TargetInstance : <Target Instance name>
RestoredDBName : <Target Instance name>/azurebackup1_restored_3_19_2019_1850
OverwriteWLIfpresent : No
NoRecoveryMode : Disabled
targetPhysicalPath : {azurebackup1, azurebackup1_log}
ContainerId : /Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/vmappcontainer;compute;computeRG;SQLVMName
SourceResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/computeRG/VMAppContainer/SQLVMName
RestoreRequestType : Alternate WL Restore
RecoveryPoint : Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models.AzureWorkloadRecoveryPoint
PointInTime : 1/1/0001 12:00:00 AM
Szerkesztheti a visszaállított ADATBÁZIS nevét, az OverwriteWLIfpresent, a NoRecoveryMode és a targetPhysicalPath mezőket. További részletek a célfájl elérési útjairól az alábbiakban látható módon.
$AnotherInstanceWithFullConfig.targetPhysicalPath
MappingType SourceLogicalName SourcePath TargetPath
----------- ----------------- ---------- ----------
Data azurebackup1 F:\Data\azurebackup1.mdf F:\Data\azurebackup1_1553001753.mdf
Log azurebackup1_log F:\Log\azurebackup1_log.ldf F:\Log\azurebackup1_log_1553001753.ldf
Állítsa be a megfelelő PowerShell-tulajdonságokat sztringértékekként az alább látható módon.
$AnotherInstanceWithFullConfig.OverwriteWLIfpresent = "Yes"
$AnotherInstanceWithFullConfig | fl
TargetServer : <SQL server name>
TargetInstance : <Target Instance name>
RestoredDBName : <Target Instance name>/azurebackup1_restored_3_19_2019_1850
OverwriteWLIfpresent : Yes
NoRecoveryMode : Disabled
targetPhysicalPath : {azurebackup1, azurebackup1_log}
ContainerId : /Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/vmappcontainer;compute;computeRG;SQLVMName
SourceResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/computeRG/VMAppContainer/SQLVMName
RestoreRequestType : Alternate WL Restore
RecoveryPoint : Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models.AzureWorkloadRecoveryPoint
PointInTime : 1/1/0001 12:00:00 AM
Fontos
Győződjön meg arról, hogy a végső helyreállítási konfigurációs objektum rendelkezik az összes szükséges és megfelelő értékkel, mivel a visszaállítási művelet a konfigurációs objektumon alapul.
Feljegyzés
Ha nem szeretné visszaállítani a teljes láncot, csak a fájlok egy részhalmazát, kövesse az itt ismertetett lépéseket.
Másodlagos számítási feladatok visszaállítása egy tárolóba a másodlagos régióban
Fontos
Az SQL másodlagos régióbeli visszaállításának támogatása a PowerShellből az Az 6.0.0-tól érhető el
Ha engedélyezte a régiók közötti visszaállítást, akkor a helyreállítási pontok a másodlagos, párosított régióba is replikálódnak. Ezután lekérheti ezeket a helyreállítási pontokat, és elindíthat egy visszaállítást egy olyan gépre, amely az adott párosított régióban található. A normál visszaállításhoz hasonlóan a célgépet is regisztrálni kell a másodlagos régió céltartójában. A következő lépéssorozatnak tisztáznia kell a végpontok közötti folyamatot.
- A másodlagos régióba replikált biztonsági mentési elemek beolvasása
- Ilyen elem esetén kérje le a másodlagos régióba replikált helyreállítási pontokat (különálló és/vagy naplókat).
- Ezután válasszon ki egy célkiszolgálót, amely regisztrálva van egy tárolóban a másodlagos párosított régión belül
- Indítsa el a visszaállítást a kiszolgálóra, és kövesse nyomon a JobId használatával.
Biztonsági mentési elemek lekérése a másodlagos régióból
A szokásos paranccsal, de egy további paraméterrel kérje le az ÖSSZES SQL biztonsági mentési elemet a másodlagos régióból, amely azt jelzi, hogy ezeket az elemeket le kell kérni a másodlagos régióból.
$secondaryBkpItems = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureWorkload -WorkloadType MSSQL -VaultId $testVault.ID -UseSecondaryRegion
Eltérő helyreállítási pontok beolvasása a másodlagos régióból
A Get-AzRecoveryServicesBackupRecoveryPoint használatával lekérhet különálló (teljes/különbözeti) helyreállítási pontokat egy biztonsági mentési SQL DB-hez, és adjon hozzá egy paramétert, amely jelzi, hogy ezek a másodlagos régióból lekért helyreállítási pontok
$startDate = (Get-Date).AddDays(-7).ToUniversalTime()
$endDate = (Get-Date).ToUniversalTime()
Get-AzRecoveryServicesBackupRecoveryPoint -Item $secondaryBkpItems[0] -VaultId $testVault.ID -StartDate $startdate -EndDate $endDate -UseSecondaryRegion
A kimenet hasonló az alábbi példához
RecoveryPointId RecoveryPointType RecoveryPointTime ItemName BackupManagemen
tType
--------------- ----------------- ----------------- -------- ---------------
6660368097802 Full 3/18/2019 8:09:35 PM MSSQLSERVER;model AzureWorkload
A megfelelő helyreállítási pont beolvasásához használja a "RecoveryPointId" szűrőt vagy egy tömbszűrőt.
$FullRPFromSec = Get-AzRecoveryServicesBackupRecoveryPoint -Item $secondaryBkpItems[0] -VaultId $testVault.ID -RecoveryPointId "6660368097802" -UseSecondaryRegion
Napló-helyreállítási pontok lekérése a másodlagos régióból
Használja a Get-AzRecoveryServicesBackupRecoveryLogChain PowerShell-parancsmagot a "-UseSecondaryRegion" paraméterrel, amely a másodlagos régióból származó SQL biztonsági mentési elem töretlen, folyamatos naplóláncának kezdő és záró idejét adja vissza. A kívánt időpontnak ebben a tartományban kell lennie.
Get-AzRecoveryServicesBackupRecoveryLogChain -Item $secondaryBkpItems[0] -VaultId $testVault.ID -UseSecondaryRegion
A kimenet az alábbi példához hasonló lesz.
ItemName StartTime EndTime
-------- --------- -------
SQLDataBase;MSSQLSERVER;azu... 3/18/2019 8:09:35 PM 3/19/2019 12:08:32 PM
A fenti kimenet azt jelenti, hogy bármikor visszaállítható a megjelenített kezdési és befejezési idő között. Az időpontok UTC-ben vannak. A PowerShellben bármilyen időponthoz kötött pontot hozhat létre, amely a fent látható tartományon belül található.
Célkiszolgáló lekérése a másodlagos régióból
A másodlagos régióban szükségünk van egy tárolóra és egy, a tárolóban regisztrált célkiszolgálóra. Miután rendelkezünk a másodlagos régió céltárolóval és az SQL-példánysal, a meglévő parancsmagokkal újra létrehozhatjuk a visszaállítási számítási feladatok konfigurációját. Ebben a dokumentumban tegyük fel, hogy a virtuális gép neve "secondaryVM", a virtuális gépen belüli példánynév pedig "MSSQLInstance"
Először lekérjük a másodlagos régióban található megfelelő tárolót, majd lekérjük a regisztrált tárolókat a tárolón belül.
$PairedRegionVault = Get-AzRecoveryServicesVault -ResourceGroupName SecondaryRG -Name PairedVault
$secContainer = Get-AzRecoveryServicesBackupContainer -ContainerType AzureVMAppContainer -Status Registered -VaultId $PairedRegionVault.ID -FriendlyName "secondaryVM"
Miután kiválasztotta a regisztrált tárolót, lekérjük azon a tárolón belüli SQL-példányokat, amelyekre az adatbázist vissza kell állítani. Itt feltételezzük, hogy a "secondaryVM"-ben 1 SQL-példány található, és lekéri a példányt.
$secSQLInstance = Get-AzRecoveryServicesBackupProtectableItem -WorkloadType MSSQL -ItemType SQLInstance -VaultId $PairedRegionVault.ID -Container $secContainer
A helyreállítási konfiguráció előkészítése
A normál SQL-visszaállítás esetében a fentiekben leírtaknak megfelelően ugyanez a parancs újra használható a megfelelő helyreállítási konfiguráció létrehozásához.
Teljes visszaállítás a másodlagos régióból
Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -RecoveryPoint $FullRPFromSec[0] -TargetItem $secSQLInstance -AlternateWorkloadRestore -VaultId $vault.ID -TargetContainer $secContainer
A naplópont időponthoz kötött visszaállítása másodlagos régióból
Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -PointInTime $PointInTime -Item $secondaryBkpItems[0] -TargetItem $secSQLInstance -AlternateWorkloadRestore -VaultId $vault.ID -TargetContainer $secContainer
Miután beszerezte a megfelelő konfigurációt az elsődleges régió visszaállításához vagy a másodlagos régió visszaállításához, ugyanaz a visszaállítási parancs használható a visszaállítások aktiválására, és később nyomon követhető a feladatazonosítók használatával.
Visszaállítás megfelelő konfigurációval
A megfelelő helyreállítási konfigurációs objektum beszerzése és ellenőrzése után a Restore-AzRecoveryServicesBackupItem PowerShell-parancsmaggal indítsa el a visszaállítási folyamatot.
Restore-AzRecoveryServicesBackupItem -WLRecoveryConfig $AnotherInstanceWithLogConfig -VaultId $testVault.ID -RestoreToSecondaryRegion
A visszaállítási művelet egy nyomon követendő feladatot ad vissza.
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
MSSQLSERVER/m... Restore InProgress 3/17/2019 10:02:45 AM 3274xg2b-e4fg-5952-89b4-8cb566gc1748
SQL-biztonsági mentések kezelése
Igény szerinti biztonsági mentés
Miután engedélyezte a biztonsági mentést egy adatbázishoz, igény szerinti biztonsági mentést is indíthat a adatbázishoz a Backup-AzRecoveryServicesBackupItem PowerShell-parancsmaggal. Az alábbi példa egy csak másolással teljes körű biztonsági mentést indít el egy olyan SQL DB-n, amelyen engedélyezve van a tömörítés, és a csak másolási teljes biztonsági mentést 60 napig meg kell őrizni.
Feljegyzés
A csak másolásra alkalmas teljes biztonsági másolatok ideálisak a hosszú távú megőrzéshez, mivel nincsenek függőségeik más biztonsági mentési típusoktól, például naplóktól. A "Teljes" biztonsági másolatok a későbbi napló biztonsági másolatainak szülőjeként lesznek kezelve, ezért a megőrzés a szabályzatban szereplő naplómegőrzéshez van kötve. Ezért az ügyfél által megadott lejárati idő a csak másolásra csak teljes biztonsági másolatokra vonatkozik, a "teljes" biztonsági mentésekre nem. A teljes biztonsági mentés megőrzési ideje automatikusan be van állítva az aktuális időponttól számított 45 napig. Itt is dokumentálva van.
$bkpItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureWorkload -WorkloadType MSSQL -Name "<backup item name>" -VaultId $testVault.ID
$endDate = (Get-Date).AddDays(45).ToUniversalTime()
Backup-AzRecoveryServicesBackupItem -Item $bkpItem -BackupType CopyOnlyFull -EnableCompression -VaultId $testVault.ID -ExpiryDateTimeUTC $endDate
Az igény szerinti biztonsági mentési parancs egy nyomon követendő feladatot ad vissza.
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
MSSQLSERVER/m... Backup InProgress 3/18/2019 8:41:27 PM 2516bb1a-d3ef-4841-97a3-9ba455fb0637
Ha a kimenet elveszik, vagy le szeretné szerezni a megfelelő feladatazonosítót, kérje le a feladatok listáját az Azure Backup szolgáltatásból, majd kövesse nyomon a feladatokat és annak részleteit.
Biztonsági mentési elemek házirendjének módosítása
A biztonsági mentési elem házirendje a következőre Policy1
Policy2
módosítható: . Ha biztonsági mentési elem házirendjeire szeretne váltani, kérje le a vonatkozó szabályzatot és készítsen biztonsági másolatot az elemet, és használja az Enable-AzRecoveryServices parancsot biztonsági mentési elemként paraméterként.
$TargetPol1 = Get-AzRecoveryServicesBackupProtectionPolicy -Name <PolicyName>
$anotherBkpItem = Get-AzRecoveryServicesBackupItem -WorkloadType MSSQL -BackupManagementType AzureWorkload -Name "<BackupItemName>"
Enable-AzRecoveryServicesBackupProtection -Item $anotherBkpItem -Policy $TargetPol1
A parancs megvárja, amíg a biztonsági mentési konfiguráció befejeződik, és a következő kimenetet adja vissza.
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
master ConfigureBackup Completed 3/18/2019 8:00:21 PM 3/18/2019 8:02:16 PM 654e8aa2-4096-402b-b5a9-e5e71a496c4e
Meglévő biztonsági mentési szabályzat szerkesztése
Meglévő szabályzat szerkesztéséhez használja a Set-AzRecoveryServicesBackupProtectionPolicy parancsot.
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $Pol -SchedulePolicy $SchPol -RetentionPolicy $RetPol
A hibák nyomon követéséhez ellenőrizze a biztonsági mentési feladatokat egy idő után. Ha vannak ilyenek, ki kell javítania a problémákat. Ezután futtassa újra a szerkesztési házirend parancsot a FixForInconsistentItems paraméterrel, és próbálkozzon újra a szabályzat szerkesztésével azon biztonsági mentési elemeken, amelyeknél a művelet korábban meghiúsult.
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $Pol -FixForInconsistentItems
SQL virtuális gépek újbóli regisztrálása
Figyelmeztetés
Az újraregisztráció megkísérlése előtt mindenképpen olvassa el ezt a dokumentumot a hiba tüneteinek és okainak megértéséhez
Az SQL virtuális gép újraregisztrációjának aktiválásához kérje le a megfelelő biztonsági mentési tárolót, és adja át a regisztrációs parancsmagnak.
$SQLContainer = Get-AzRecoveryServicesBackupContainer -ContainerType AzureVMAppContainer -FriendlyName <VM name> -VaultId $testVault.ID
Register-AzRecoveryServicesBackupContainer -Container $SQLContainer -BackupManagementType AzureWorkload -WorkloadType MSSQL -VaultId $testVault.ID
Védelem leállítása
Adatok megőrzése
Ha le szeretné állítani a védelmet, használhatja a Disable-AzRecoveryServicesBackupProtection PowerShell-parancsmagot. Ez leállítja az ütemezett biztonsági mentéseket, de az eddig biztonsági másolatban tárolt adatok örökre megmaradnak.
$bkpItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureWorkload -WorkloadType MSSQL -Name "<backup item name>" -VaultId $testVault.ID
Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $testVault.ID
Biztonsági mentési adatok törlése
A tárolóban tárolt biztonsági mentési adatok teljes eltávolításához egyszerűen adja hozzá a "-RemoveRecoveryPoints" jelzőt/kapcsolót a "disable" védelmi parancshoz.
Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $testVault.ID -RemoveRecoveryPoints
Automatikus védelem letiltása
Ha az automatikus védelem sqlInstance-en lett konfigurálva, letilthatja a Disable-AzRecoveryServicesBackupAutoProtection PowerShell-parancsmaggal.
Keresse meg azokat a példányokat, ahol az automatikus védelem engedélyezve van a következő PowerShell-paranccsal.
Get-AzRecoveryServicesBackupProtectableItem -WorkloadType MSSQL -VaultId $testVault.ID | Where-Object {$_.IsAutoProtected -eq $true}
Ezután válassza ki a megfelelő védhető elemnevet és kiszolgálónevet a kimenetből, és tiltsa le az automatikus védelmet az ilyen példányok esetében.
$SQLInstance = Get-AzRecoveryServicesBackupProtectableItem -workloadType MSSQL -ItemType SQLInstance -VaultId $testVault.ID -Name "<Protectable Item name>" -ServerName "<Server Name>"
Disable-AzRecoveryServicesBackupAutoProtection -InputItem $SQLInstance -BackupManagementType AzureWorkload -WorkloadType MSSQL -VaultId $testVault.ID
SQL-alapú virtuális gép regisztrációja törlése
Ha egy SQL-kiszolgáló összes adatbázisa már nem védett, és nincsenek biztonsági mentési adatok, megszüntetheti az SQL virtuális gép regisztrációját ebből a tárolóból. Csak ezután védheti meg a DBs-eket egy másik tárolóban. Az SQL virtuális gép regisztrációjának törléséhez használja a Unregister-AzRecoveryServicesBackupContainer PowerShell-parancsmagot.
$SQLContainer = Get-AzRecoveryServicesBackupContainer -ContainerType AzureVMAppContainer -FriendlyName <VM name> -VaultId $testVault.ID
Unregister-AzRecoveryServicesBackupContainer -Container $SQLContainer -VaultId $testVault.ID
Azure Backup-feladatok nyomon követése
Fontos megjegyezni, hogy az Azure Backup csak a felhasználó által aktivált feladatokat követi nyomon az SQL Backupban. Az ütemezett biztonsági másolatok (beleértve a naplók biztonsági mentéseit) nem láthatók a portálon vagy a PowerShellben. Ha azonban az ütemezett feladatok sikertelenek, biztonsági mentési riasztás jön létre és jelenik meg a portálon. Az Azure Monitor használatával nyomon követheti az összes ütemezett feladatot és egyéb releváns információt.
A felhasználók nyomon követhetik az igény szerinti/felhasználó által aktivált műveleteket az aszinkron feladatok, például a biztonsági mentés kimenetében visszaadott JobID azonosítóval. A Get-AzRecoveryServicesBackupJobDetail PowerShell-parancsmaggal nyomon követheti a feladatot és annak részleteit.
Get-AzRecoveryServicesBackupJobDetails -JobId 2516bb1a-d3ef-4841-97a3-9ba455fb0637 -VaultId $testVault.ID
Az igény szerinti feladatok és állapotuk azure backup szolgáltatásból való lekéréséhez használja a Get-AzRecoveryServicesBackupJob PowerShell-parancsmagot. Az alábbi példa az összes folyamatban lévő SQL-feladatot visszaadja.
Get-AzRecoveryServicesBackupJob -Status InProgress -BackupManagementType AzureWorkload
Folyamatban lévő feladat megszakításához használja a Stop-AzRecoveryServicesBackupJob PowerShell-parancsmagot.
SQL Always On rendelkezésre állási csoportok kezelése
Az SQL Always On rendelkezésre állási csoportok esetében mindenképpen regisztrálja a rendelkezésre állási csoport (AG) összes csomópontját . Ha a regisztráció minden csomóponton megtörtént, a rendszer logikailag létrehoz egy SQL rendelkezésre állási csoportobjektumot a védhető elemek alatt. Az SQL AG-ben lévő adatbázisok "SQLDatabase" néven jelennek meg. A csomópontok önálló példányként jelennek meg, és az alattuk lévő alapértelmezett SQL-adatbázisok IS SQL-adatbázisokként lesznek felsorolva.
Tegyük fel például, hogy az SQL AG-nek két csomópontja van: sql-server-0 és sql-server-1 és 1 SQL AG DB. Ha mindkét csomópont regisztrálva van, a védett elemek listázásakor a következő összetevőket sorolja fel:
- SQL AG-objektum – védhető elemtípus SQLAvailabilityGroup néven
- SQL AG DB – védhető elemtípus SQLDatabase-ként
- sql-server-0 – védhető elemtípus SQLInstance-ként
- sql-server-1 – védhető elemtípus SQLInstance-ként
- Bármely alapértelmezett SQL DBs (master, model, msdb) az sql-server-0 alatt – sqlDatabase-ként védhető elemtípus
- Bármely alapértelmezett SQL DBs (master, model, msdb) az SQL-Server-1 alatt – sqlDatabase-ként védhető elemtípus
az sql-server-0, sql-server-1 az "AzureVMAppContainer" néven is megjelenik a biztonsági mentési tárolók listájában.
Egyszerűen kérje le a megfelelő adatbázist a biztonsági mentés engedélyezéséhez, és az igény szerinti biztonsági mentés és a PowerShell-parancsmagok visszaállítása megegyezik.