Freigeben über


Sichern der Azure-Datenbank für PostgreSQL – Flexibler Server mit Azure CLI

In diesem Artikel wird beschrieben, wie Sie Azure-Datenbank für PostgreSQL sichern – flexibler Server mit Azure CLI.

Voraussetzungen

Bevor Sie Azure-Datenbank für PostgreSQL sichern – Flexible Server, überprüfen Sie die unterstützten Szenarien und Einschränkungen für die Sicherung der Azure-Datenbank für PostgreSQL – Flexible Server.

Erstellen eines Backup-Tresors für PostgreSQL – Flexible Server-Backup

Der Sicherungstresor ist eine Speicherentität in Azure. Dadurch werden die Sicherungsdaten für neue von Azure Backup unterstützte Workloads gespeichert. Zum Beispiel Azure Database for PostgreSQL – Flexible Server, Blobs in einem Speicherkonto und Azure Disks. Sicherungstresore vereinfachen die Organisation Ihrer Sicherungsdaten und minimieren gleichzeitig den Verwaltungsaufwand. Sicherungstresore basieren auf dem Azure Resource Manager-Modell von Azure, das erweiterte Funktionen bietet, die das Schützen von Sicherungsdaten erleichtern.

Bevor Sie einen Sicherungstresor erstellen, wählen Sie die Speicherredundanz der Daten im Tresor aus. Anschließend erstellen Sie den Sicherungstresor mit der ausgewählten Speicherredundanz und dem angegebenen Speicherort.

In diesem Artikel erstellen wir einen Sicherungstresor TestBkpVault in der Region westus unter der Ressourcengruppe testBkpVaultRG. Verwenden Sie den az dataprotection vault create Befehl, um einen Backupspeicher zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Sicherungstresors.

az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"

{
  "eTag": null,
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
  "identity": {
    "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "type": "SystemAssigned"
  },
  "location": "westus",
  "name": "TestBkpVault",
  "properties": {
    "provisioningState": "Succeeded",
    "storageSettings": [
      {
        "datastoreType": "VaultStore",
        "type": "LocallyRedundant"
      }
    ]
  },
  "resourceGroup": "testBkpVaultRG",
  "systemData": null,
  "tags": null,
  "type": "Microsoft.DataProtection/backupVaults"
}

Konfigurieren der Sicherung für PostgreSQL – Flexibler Server

Bevor Sie den Schutz für die Datenbank konfigurieren, stellen Sie sicher, dass Sie eine Sicherungsrichtlinie erstellen. Nachdem der Tresor und die Richtlinie erstellt wurden, schützen Sie die Azure-Datenbank für PostgreSQL – Flexible Server, indem Sie die folgenden Schritte ausführen:

  • Abrufen der ARM-ID des zu schützenden flexiblen PostgreSQL-Servers
  • Gewähren des Zugriffs auf den Sicherungstresor
  • Vorbereiten der Sicherungskonfigurationsanforderung

Abrufen der ARM-ID des zu schützenden PostgreSQL-Flexible Servers

Rufen Sie die Azure Resource Manager ID (ARM ID) von PostgreSQL ab – Flexibler Server, der geschützt werden soll. Diese ID dient als Bezeichner der Datenbank. Nehmen wir ein Beispiel einer Datenbank namens empdb11 auf einem PostgreSQL - Flexible Server testposgresql, der in der Ressourcengruppe ossrg unter einem anderen Abonnement vorhanden ist.

Das folgende Beispiel verwendet bash.

ossId="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/flexibleServers/archive-postgresql-ccy/databases/empdb11"

Gewähren des Zugriffs auf den Sicherungstresor

Der Sicherungstresor muss eine Verbindung mit PostgreSQL – Flexibler Server herstellen und dann über die im Schlüsseltresor enthaltenen Schlüssel auf die Datenbank zugreifen. Deshalb erfordert es Zugriff auf PostgreSQL, Flexible Server, und den Schlüsseltresor. Gewähren Sie der verwalteten Dienstidentität (Managed-Service Identity, MSI) des Sicherungstresors Zugriff.

Überprüfen Sie die Berechtigungen, die für die verwaltete Dienstidentität (MSI) des Sicherungstresors für PostgreSQL – Flexibler Server und die Azure Key Vault-Instanz, in der die Schlüssel für die Datenbank gespeichert sind, erforderlich sind.

Vorbereiten der Sicherungskonfigurationsanforderung

Nachdem alle relevanten Berechtigungen festgelegt wurden, konfigurieren Sie die Sicherung, indem Sie die folgenden Befehle ausführen:

  1. Bereiten Sie die erforderlichen Anforderung mithilfe des relevanten Tresors, der Richtlinie und der Datenbank mit PostgreSQL – Flexibler Server mit dem Befehl az dataprotection backup-instance initialize vor.

    az dataprotection backup-instance initialize --datasource-id $ossId --datasource-type AzureDatabaseForPostgreSQLFlexibleServer -l <vault-location> --policy-id <policy_arm_id>  --secret-store-type AzureKeyVault --secret-store-uri $keyURI > OSSBkpInstance.JSON
    
  2. Senden Sie die Anforderung, um die Datenbank mithilfe des az dataprotection backup-instance create Befehls zu schützen.

    az dataprotection backup-instance create --resource-group testBkpVaultRG --vault-name TestBkpVault TestBkpvault --backup-instance .\OSSBkpInstance.JSON
    

Ausführen einer On-Demand-Sicherung für PostgreSQL – Flexibler Server

Geben Sie eine Aufbewahrungsregel an, während Sie die Sicherung auslösen. Um die Aufbewahrungsregeln anzuzeigen, wechseln Sie zur JSON-Datei der Richtlinie für Aufbewahrungsregeln. Im folgenden Beispiel gibt es zwei Aufbewahrungsregeln mit den Namen Standard und Monatlich. Verwenden wir die Monatliche Regel für die On-Demand-Sicherung.

az dataprotection backup-policy show  -g ossdemorg --vault-name ossdemovault-1 --subscription e3d2d341-4ddb-4c5d-9121-69b7e719485e --name osspol5

{
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-69b7e719485e/resourceGroups/ossdemorg/providers/Microsoft.DataProtection/backupVaults/ossdemovault-1/backupPolicies/osspol5",
  "name": "osspol5",
  "properties": {
    "datasourceTypes": [
      " Microsoft.DBforPostgreSQL/flexibleServers/databases" 
    ],
    "objectType": "BackupPolicy",
    "policyRules": [
      {
        "backupParameters": {
          "backupType": "Full",
          "objectType": "AzureBackupParams"
        },
        "dataStore": {
          "dataStoreType": "VaultStore",
          "objectType": "DataStoreInfoBase"
        },
        "name": "BackupWeekly",
        "objectType": "AzureBackupRule",
        "trigger": {
          "objectType": "ScheduleBasedTriggerContext",
          "schedule": {
            "repeatingTimeIntervals": [
              "R/2020-04-04T20:00:00+00:00/P1W",
              "R/2020-04-01T20:00:00+00:00/P1W"
            ],
            "timeZone": "UTC"
          },
          "taggingCriteria": [
            {
              "criteria": [
                {
                  "absoluteCriteria": [
                    "FirstOfMonth"
                  ],
                  "daysOfMonth": null,
                  "daysOfTheWeek": null,
                  "monthsOfYear": null,
                  "objectType": "ScheduleBasedBackupCriteria",
                  "scheduleTimes": null,
                  "weeksOfTheMonth": null
                }
              ],
              "isDefault": false,
              "tagInfo": {
                "eTag": null,
                "id": "Monthly_",
                "tagName": "Monthly"
              },
              "taggingPriority": 15
            },
            {
              "criteria": null,
              "isDefault": true,
              "tagInfo": {
                "eTag": null,
                "id": "Default_",
                "tagName": "Default"
              },
              "taggingPriority": 99
            }
          ]
        }
      },
      {
        "isDefault": false,
        "lifecycles": [
          {
            "deleteAfter": {
              "duration": "P10Y",
              "objectType": "AbsoluteDeleteOption"
            },
            "sourceDataStore": {
              "dataStoreType": "VaultStore",
              "objectType": "DataStoreInfoBase"
            },
            "targetDataStoreCopySettings": []
          }
        ],
        "name": "Monthly",
        "objectType": "AzureRetentionRule"
      },
      {
        "isDefault": true,
        "lifecycles": [
          {
            "deleteAfter": {
              "duration": "P1Y",
              "objectType": "AbsoluteDeleteOption"
            },
            "sourceDataStore": {
              "dataStoreType": "VaultStore",
              "objectType": "DataStoreInfoBase"
            },
            "targetDataStoreCopySettings": []
          }
        ],
        "name": "Default",
        "objectType": "AzureRetentionRule"
      }
    ]
  },
  "resourceGroup": "ossdemorg",
  "systemData": null,
  "type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}

Verwenden Sie den az dataprotection backup-instance adhoc-backup Befehl, um eine On-Demand-Sicherung auszulösen.

az dataprotection backup-instance adhoc-backup --name "ossrg-empdb11" --rule-name "Monthly" --resource-group testBkpVaultRG --vault-name TestBkpVault

Nachverfolgen von Aufträgen für PostgreSQL – Flexible Server backup

Verfolgen Sie alle Aufträge mithilfe des az dataprotection job list Befehls. Sie können alle Aufträge auflisten und ein bestimmtes Auftragsdetail abrufen.

Sie können auch „Az.ResourceGraph“ verwenden, um alle Aufträge für alle Backup-Tresore nachzuverfolgen. Verwenden Sie den Befehl az dataprotection job list-from-resourcegraph, um die relevanten Aufträge aus den verschiedenen Sicherungstresoren abzurufen.

az dataprotection job list-from-resourcegraph --datasource-type AzureDatabaseForPostgreSQLFlexibleServer --status Completed

Nächster Schritt