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


PostgreSQL-adatbázisok biztonsági mentése az Azure PowerShell használatával

Ez a cikk azt ismerteti, hogyan lehet biztonsági másolatot készíteni az Azure Database for PostgreSQL-ről az Azure PowerShell használatával. A biztonsági mentést az Azure Portal, az Azure CLI és a REST API for PostgreSQL-adatbázisok használatával is konfigurálhatja.

További információ a támogatott forgatókönyvekről és a PostgreSQL-adatbázisok Azure Database for PostgreSQL-ben történő biztonsági mentésével kapcsolatos gyakori kérdésekről .

Backup-tároló létrehozása

A Backup-tároló egy azure-beli tároló entitás. Tárolja a biztonsági mentési adatokat az Azure Backup által támogatott új számítási feladatokhoz, például az Azure Database for PostgreSQL-kiszolgálókhoz, az Azure-lemezekhez és az Azure-blobokhoz. A biztonsági mentési tárolók segítenek a biztonsági mentési adatok rendszerezésében, miközben minimalizálják a felügyeleti többletterhelést. A biztonsági mentési tárolók az Azure Azure Resource Manager-modelljén alapulnak, amely továbbfejlesztett képességeket biztosít a biztonsági mentési adatok védelméhez.

A Backup-tároló létrehozása előtt válassza ki a tárolón belüli adatok tárolóredundanciát. Ezután hozza létre a biztonsági mentés tárolót a megadott tárredundanciával és ezen a helyen.

Ebben a cikkben egy biztonsági mentési tárolót TestBkpVaulthoz létre a westus régióban, az erőforráscsoport testBkpVaultRGalatt. New-AzDataProtectionBackupVault A paranccsal hozzon létre egy Backup-tárolót. További információ a Backup-tárolók létrehozásáról.

$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag                :
Id                  : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity            : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId    :
IdentityType        :
Location            : westus
Name                : TestBkpVault
ProvisioningState   : Succeeded
StorageSetting      : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData          : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag                 : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type                : Microsoft.DataProtection/backupVaults

Biztonsági mentési szabályzat létrehozása

A tároló létrehozása után létrehozhat egy biztonsági mentési szabályzatot a PostgreSQL-adatbázisok védelméhez. A REST API használatával a PostgreSQL-adatbázisokhoz biztonsági mentési szabályzatot is létrehozhat.

A PostgreSQL biztonsági mentési szabályzatának ismertetése

Míg a lemezes biztonsági mentés naponta több biztonsági mentést is biztosít, a blobok biztonsági mentése pedig folyamatos biztonsági mentés eseményindító nélkül, a PostgreSQL biztonsági mentése archív védelmet nyújt. Az elsőként a tárolóba küldött biztonsági mentési adatok egy meghatározott szabály vagy életciklus alapján áthelyezhetők az archív szintre.

Ebben a kontextusban a következő hierarchia segíthet megérteni a PostgreSQL biztonsági mentési házirend-objektumát:

  • Szabályzatszabály
    • Biztonsági mentési szabály
      • Biztonsági mentési paraméter
        • Biztonsági mentés típusa (ebben az esetben teljes adatbázis biztonsági mentése)
        • Kezdeti adattár (ahol a biztonsági másolatok kezdetben kerülnek)
        • Eseményindító (a biztonsági mentés aktiválása)
          • Időbeosztás
          • Alapértelmezett címkézési feltételek (alapértelmezett címke, amely az összes ütemezett biztonsági mentést az adatmegőrzési szabályhoz kapcsolja)
    • Alapértelmezett adatmegőrzési szabály (a kezdeti adattárban alapértelmezés szerint az összes biztonsági mentésre alkalmazott szabály)

A szabályzatobjektum határozza meg, hogy milyen típusú biztonsági mentések aktiválódnak, hogyan aktiválódnak (ütemezés szerint), mivel vannak megjelölve, hová kerülnek (adattár), és hogy milyen életciklussal rendelkeznek adataik egy adattárban.

A PostgreSQL alapértelmezett PowerShell-objektuma azt mondja, hogy minden héten teljes biztonsági mentést kell indítania. A biztonsági másolatok elérik a tárolót, ahol három hónapig vannak tárolva.

Ha hozzá szeretné adni az archív szintet a szabályzathoz, el kell döntenie, hogy mikor kerülnek át az adatok a tárolóból az archívumba, mennyi ideig maradnak az adatok az archívumban, és hogy az ütemezett biztonsági másolatok közül melyik legyen archiválható. Hozzá kell adnia egy adatmegőrzési szabályt, amely meghatározza a tárolóadattárban lévő biztonsági mentési adatok életciklusát az archív adattárban. Az adatmegőrzési szabály azt is meghatározza, hogy a biztonsági mentési adatok mennyi ideig maradnak az archív adattárban. Ezután fel kell vennie egy címkét, amely az ütemezett biztonsági másolatokat archiválásra jogosultként jelöli meg.

Az eredményül kapott PowerShell-objektum a következő:

  • Szabályzatszabály
    • Biztonsági mentési szabály
      • Biztonsági mentési paraméter
        • Biztonsági mentés típusa (ebben az esetben teljes adatbázis biztonsági mentése)
        • Kezdeti adattár (ahol a biztonsági másolatok kezdetben kerülnek)
        • Eseményindító (a biztonsági mentés aktiválása)
          • Időbeosztás
          • Alapértelmezett címkézési feltételek (alapértelmezett címke, amely az összes ütemezett biztonsági mentést az adatmegőrzési szabályhoz kapcsolja)
          • Új címkézési feltételek az azonos nevű új adatmegőrzési szabályhoz
    • Alapértelmezett adatmegőrzési szabály (a kezdeti adattárban alapértelmezés szerint az összes biztonsági mentésre alkalmazott szabály)
    • Új adatmegőrzési szabály
      • Életciklus
        • Forrásadattár
        • A forrásadattárban történő törlés időtartama
        • Másolás a céladattárba

A szabályzatsablon lekérése

A PostgreSQL-adatbázis biztonsági mentési szabályzatának belső összetevőinek megismeréséhez kérje le a szabályzatsablont a Get-AzDataProtectionPolicyTemplate parancs használatával. Ez a parancs egy adatforrástípus alapértelmezett szabályzatsablonjának visszaadása. Ezzel a szabályzatsablonnal új szabályzatot hozhat létre.

$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPostgreSQL
$policyDefn | fl


DatasourceType : {Microsoft.DBforPostgreSQL/servers/databases}
ObjectType     : BackupPolicy
PolicyRule     : {BackupWeekly, Default}

$policyDefn.PolicyRule | fl


BackupParameter           : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType       : DataStoreInfoBase
DataStoreType             : VaultStore
Name                      : BackupWeekly
ObjectType                : AzureBackupRule
Trigger                   : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.ScheduleBasedTriggerCo
                            ntext
TriggerObjectType         : ScheduleBasedTriggerContext

IsDefault  : True
Lifecycle  : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.SourceLifeCycle}
Name       : Default
ObjectType : AzureRetentionRule

A szabályzatsablon egy eseményindítóból (amely dönti el, hogy mi aktiválja a biztonsági mentést) és egy életciklusból (amely dönti el, hogy mikor törli, másolja vagy helyezze át a biztonsági mentést). A PostgreSQL-adatbázisok biztonsági mentésében az eseményindító alapértelmezett értéke egy ütemezett heti eseményindító (hét naponta egy biztonsági mentés). Minden biztonsági mentést három hónapig őrizünk meg.

 $policyDefn.PolicyRule[0].Trigger | fl


ObjectType                    : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2021-08-22T02:00:00+00:00/P1W}
ScheduleTimeZone              : UTC
TaggingCriterion              : {Default}
$policyDefn.PolicyRule[1].Lifecycle | fl


DeleteAfterDuration        : P3M
DeleteAfterObjectType      : AbsoluteDeleteOption
SourceDataStoreObjectType  : DataStoreInfoBase
SourceDataStoreType        : VaultStore
TargetDataStoreCopySetting : {}

A szabályzatsablon módosítása

Az ütemezés módosítása

Az alapértelmezett szabályzatsablon hetente egyszer nyújt biztonsági másolatot. Módosíthatja a biztonsági mentés ütemezését úgy, hogy hetente több napig történjen. Az ütemezés módosításához használja a Edit-AzDataProtectionPolicyTriggerClientObject parancsot.

Az alábbi példa a heti biztonsági mentést minden hét vasárnapjára, szerdára és péntekére módosítja. Az ütemezési dátum tömb megemlíti a dátumokat, és ezeknek a dátumoknak a hét napjait úgy veszi figyelembe, mint a hét napjai. Azt is meg kell adnia, hogy ezek az ütemezések hetente ismétlődjenek. Tehát az ütemezési időköz 1, és az intervallum típusa Weekly.

$schDates = @(
  (
    (Get-Date -Year 2021 -Month 08 -Day 15 -Hour 22 -Minute 0 -Second 0)
  ), 
  (
    (Get-Date -Year 2021 -Month 08 -Day 18 -Hour 22 -Minute 0 -Second 0)
  ),
  (
    (Get-Date -Year 2021 -Month 08 -Day 20 -Hour 22 -Minute 0 -Second 0)
  )
)
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $schDates -IntervalType Weekly -IntervalCount 1 
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $policyDefn   

Új adatmegőrzési szabály hozzáadása

Ha archív védelmet szeretne hozzáadni, módosítania kell a szabályzatsablont.

Az alapértelmezett sablon életciklussal rendelkezik a kezdeti adattárhoz az alapértelmezett adatmegőrzési szabály szerint. Ebben a forgatókönyvben a szabály azt mondja, hogy három hónap után törölje a biztonsági mentési adatokat. Adjon hozzá egy új adatmegőrzési szabályt, amely meghatározza, hogy az adatok mikor kerülnek át az archív adattárba. Vagyis a biztonsági mentési adatok először az archív adattárba lesznek másolva, majd törlődnek a tárolóadattárban.

A szabálynak azt is meg kell határoznia, hogy mennyi ideig őrizze meg az adatokat az archív adattárban. Új életciklusok létrehozásához használja a New-AzDataProtectionRetentionLifeCycleClientObject parancsot. Ha ezeket az életciklusokat új vagy meglévő szabályokhoz szeretné társítani, használja a Edit-AzDataProtectionPolicyRetentionRuleClientObject parancsot.

Az alábbi példa egy új adatmegőrzési szabályt hoz létre.Monthly Ebben a szabályban minden hónap első sikeres biztonsági mentése hat hónapig megmarad a tárolóban, átkerül az archív szintre, és 24 hónapig az archív szinten marad.

$VaultToArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6 -TargetDataStore ArchiveStore -CopyOption CopyOnExpiryOption

$OnArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore ArchiveStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 24

Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultToArchiveLifeCycle, $OnArchiveLifeCycleLifeCycle -IsDefault $false

Címke és a vonatkozó feltételek hozzáadása

Miután létrehozott egy adatmegőrzési szabályt, létre kell hoznia egy megfelelő címkét a Trigger biztonsági mentési szabályzat tulajdonságában. Új címkézési feltételek létrehozásához használja a New-AzDataProtectionPolicyTagCriteriaClientObject parancsot. A meglévő címke frissítéséhez vagy új címke létrehozásához használja az Edit-AzDataProtectionPolicyTagClientObject parancsot.

Az alábbi példa egy új címkét hoz létre a feltételekkel együtt, amely a hónap első sikeres biztonsági mentése. A címke neve megegyezik az alkalmazandó megőrzési szabály nevével.

Ebben a példában a címkefeltételek neve Monthly:

$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria

Ha az ütemezés hetente több biztonsági mentés (minden vasárnap, szerdán és csütörtökön, az előző példában meghatározottak szerint), és archiválni szeretné a vasárnapi és a pénteki biztonsági mentéseket, a címkézési feltételeket az alábbiak szerint módosíthatja:

$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria

Új PostgreSQL biztonsági mentési szabályzat létrehozása

Miután módosította a sablont a követelményeknek megfelelően, a New-AzDataProtectionBackupPolicy parancs használatával hozzon létre egy szabályzatot a módosított sablon használatával:

$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn

Biztonsági mentés konfigurálása

A tároló és a szabályzat létrehozása után három kritikus szempontot kell figyelembe vennie egy PostgreSQL-adatbázis biztonsági mentéséhez az Azure Database for PostgreSQL-ben.

A legfontosabb entitások ismertetése

PostgreSQL-adatbázis biztonsági mentése

Kérje le a PostgreSQL-adatbázis Resource Manager-azonosítóját a biztonsági mentéshez. Ez az azonosító szolgál az adatbázis azonosítójaként. Az alábbi példa egy PostgreSQL-kiszolgáló empdb11alatt elnevezett testposgresql adatbázist használ, amely egy másik előfizetésben található az erőforráscsoportbanossrg:

$ossId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"

Kulcs tároló

Az Azure Backup szolgáltatás nem tárolja a felhasználónevet és a jelszót a PostgreSQL-adatbázishoz való csatlakozáshoz. Ehelyett a biztonsági mentési rendszergazda a kulcsokat a kulcstartóba helyezi. Az Azure Backup szolgáltatás ezután hozzáfér a kulcstartóhoz, beolvassa a kulcsokat, és hozzáfér az adatbázishoz. Jegyezze fel a megfelelő kulcs titkos azonosítóját.

$keyURI = "https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"

Biztonsági mentési tár

Csatlakoztatnia kell a Backup-tárolót a PostgreSQL-kiszolgálóhoz, majd a kulcstartóban található kulcsokkal kell elérnie az adatbázist. A Backup-tárolónak tehát hozzá kell férnie a PostgreSQL-kiszolgálóhoz és a kulcstartóhoz. A hozzáférés a Backup-tároló felügyelt identitásához engedélyezett.

Olvassa el a Biztonsági mentési tároló kezelt identitásához szükséges megfelelő engedélyeket a PostgreSQL-kiszolgálón és az Azure Key Vaultban, ahol az adatbázis kulcsait tárolják.

A kérés előkészítése

Miután beállította az összes vonatkozó engedélyt, hajtsa végre a biztonsági mentés konfigurálását két lépésben:

  1. Állítsa össze a kérést a megfelelő tároló, szabályzat és PostgreSQL-adatbázis használatával a Initialize-AzDataProtectionBackupInstance parancsban.
  2. Küldje el az adatbázis biztonsági mentésére vonatkozó kérést a New-AzDataProtectionBackupInstance parancs használatával.
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQL -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId -SecretStoreURI $keyURI -SecretStoreType AzureKeyVault
ConvertTo-Json -InputObject $instance -Depth 4 
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance

Name                        Type                                         BackupInstanceName
----                        ----                                          ------------------
ossrg-empdb11       Microsoft.DataProtection/backupVaults/backupInstances ossrg-empdb11

Igény szerinti biztonsági mentések futtatása

Kérje le a megfelelő biztonsági mentési példányt, amelyen biztonsági mentést kell aktiválnia a Get-AzDataProtectionBackupInstance parancs használatával:

$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"

Biztonsági mentés indításakor megadhatja a megőrzési szabályt. A szabályzat megőrzési szabályainak megtekintéséhez böngéssze át a szabályzat objektumát. Az alábbi példában a névvel Default ellátott szabály jelenik meg. Ez a cikk ezt a példaszabályt használja az igény szerinti biztonsági mentéshez.

$ossPol.PolicyRule | fl


BackupParameter           : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType       : DataStoreInfoBase
DataStoreType             : OperationalStore
Name                      : BackupHourly
ObjectType                : AzureBackupRule
Trigger                   : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType         : ScheduleBasedTriggerContext

IsDefault  : True
Lifecycle  : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name       : Default
ObjectType : AzureRetentionRule

Igény szerinti biztonsági mentés indításához használja a Backup-AzDataProtectionBackupInstanceAdhoc következő parancsot:

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"

Feladatok nyomon követése

Az összes feladat nyomon követése a Get-AzDataProtectionJob parancs használatával. Listázhatja az összes feladatot, és lekérhet egy adott feladatrészletet.

Az összes feladat nyomon követésére is használható Az.ResourceGraph az összes Backup-tárolóban. Search-AzDataProtectionJobInAzGraph A parancs használatával lekérje a megfelelő feladatokat bármely Backup-tárolóban:

  $job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDisk -Operation OnDemandBackup