Megosztás a következőn keresztül:


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

Recovery Services-objektumhierarchia

Az objektumhierarchiát az alábbi diagram foglalja össze.

Recovery Services object hierarchy

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:

  1. Töltse le az Az PowerShell legújabb verzióját. A minimálisan szükséges verzió az 1.5.0.

  2. Keresse meg az Azure Backup PowerShell-parancsmagokat a következő paranccsal:

    Get-Command *azrecoveryservices*
    
  3. 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.

    List of Recovery Services cmdlets

  4. Jelentkezzen be azure-fiókjába az Csatlakozás-AzAccount használatával.

  5. 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 az Csatlakozás-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 Csatlakozás-AzAccount -Tenant fabrikam.com.
  6. 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
    
  7. 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"
    
  8. Ellenőrizze, hogy a szolgáltatók sikeresen regisztráltak-e:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  9. 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.

  1. 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"
    
  2. 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"
    
  3. Adja meg a tárolótárolóhoz használandó redundancia típusát.

    $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 MSSQL Standard kiadás RVER 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 Policy1Policy2mó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.