Aracılığıyla paylaş


PostgreSQL için Azure Veritabanı - Azure CLI kullanarak Esnek Sunucuyu yedekleme

Bu makale, Azure CLI kullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucusu'nun nasıl yedekleneceğini açıklar.

Önkoşullar

PostgreSQL için Azure Veritabanı - Esnek Sunucuyu yedeklemeden önce, PostgreSQL için Azure Veritabanı - Esnek Sunucular yedeklemek için desteklenensenaryoları ve sınırlamaları gözden geçirin.

Backup kasası oluşturma

Yedekleme kasası, Azure'daki bir depolama varlığıdır. Bu, Azure Backup'ın desteklediği yeni iş yükleri için yedekleme verilerini depolar. Örneğin PostgreSQL için Azure Veritabanı : Esnek sunucular, depolama hesabındaki bloblar ve Azure Diskler. Yedekleme kasaları, yedekleme verilerinizi düzenlemeye yardımcı olurken yönetim ek yükünü en aza indirir. Yedekleme kasaları, yedekleme verilerinin güvenliğini sağlamaya yardımcı olmak için gelişmiş özellikler sağlayan Azure Resource Manager modelini temel alır.

Backup kasası oluşturmadan önce kasadaki verilerin depolama yedekliliğini seçin. Ardından bu depolama yedekliliği ve konumuyla Backup kasasını oluşturmaya devam edin.

Bu makalede, TestBkpVaultkaynak grubunun altında westusbölgesinde testBkpVaultRGbir Backup kasası oluşturalım. Backup kasası oluşturmak için az dataprotection vault create komutunu kullanın. Backup kasası oluşturma hakkında daha fazla bilgi edinin.

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"
}

Yedeklemeyi yapılandırma

Veritabanı için korumayı yapılandırmadan önce, bir Yedekleme ilkesi oluşturduğunuzdan emin olun. Kasa ve ilke oluşturulduktan sonra, aşağıdaki adımları izleyerek PostgreSQL için Azure Veritabanı - Esnek Sunucuyu koruyun:

  • Korunacak PostgreSQL - Esnek Sunucunun ARM Kimliğini alın
  • Backup kasasına erişim izni verme
  • Yedekleme yapılandırma isteğini hazırlama

Korunacak PostgreSQL - Esnek Sunucunun ARM Kimliğini alın

Korumak için PostgreSQL – Esnek Sunucunun Azure Resource Manager Kimliğini (ARM Kimliği) getirin. Bu kimlik, veritabanının tanımlayıcısı olarak görev alır. Farklı bir abonelik altında empdb11 kaynak grubunda bulunan PostgreSQL - Esnek Sunucu testposgresqlaltında ossrg adlı bir veritabanı örneği kullanalım.

Aşağıdaki örnekte bash kullanılır.

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

Backup kasasına erişim izni verme

Yedekleme kasasının PostgreSQL – Esnek Sunucu'ya bağlanması ve ardından anahtar kasasında bulunan anahtarlar aracılığıyla veritabanına erişmesi gerekir. Bu nedenle PostgreSQL – Esnek sunucuya ve anahtar kasasına erişim gerektirir. Yedekleme kasasının Yönetilen Hizmet Kimliğine (MSI) erişim izni verin.

PostgreSQL – Esnek Sunucu ve veritabanının anahtarlarını depolayan Azure Key kasasında, Yedekleme kasasının Managed-Service Kimliği (MSI) için gerekli olan izinlerini inceleyin.

Yedekleme yapılandırma isteğini hazırlama

Tüm ilgili izinler ayarlandıktan sonra aşağıdaki komutları çalıştırarak yedeklemeyi yapılandırın:

  1. az dataprotection backup-instance initialize komutunu kullanarak ilgili kasayı, ilkeyi, PostgreSQL – Esnek sunucu veritabanını kullanarak ilgili isteği hazırlayın.

    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. veritabanını korumak için az dataprotection backup-instance create komutunu kullanarak isteği gönderin.

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

İsteğe bağlı yedekleme çalıştırma

Yedeklemeyi tetiklerken bir bekletme kuralı belirtin. İlkedeki bekletme kurallarını görüntülemek için bekletme kuralları için ilkesi JSON dosyasına gidin. Aşağıdaki örnekte, Varsayılan ve Aylık adlarıyla iki bekletme kuralı vardır. İsteğe bağlı yedekleme için aylık kuralı kullanalım.

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"
}

İsteğe bağlı yedekleme tetikleme için az dataprotection backup-instance adhoc-backup komutunu kullanın.

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

İşleri takip et

az dataprotection job list komutunu kullanarak tüm işleri izleyin. Tüm işleri listeleyebilir ve belirli bir iş ayrıntısı getirebilirsiniz.

Tüm Backup kasalarında tüm işleri izlemek için Az.ResourceGraph'ı da kullanabilirsiniz. İlgili işleri yedekleme kasalarından getirmek için az dataprotection job list-from-resourcegraph komutunu kullanın.

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

Sonraki adımlar

  • Azure CLIkullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucuyu geri yükleyin.