Aracılığıyla paylaş


Hızlı Başlangıç: Azure CLI kullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucu için yedekleme ilkesi oluşturma

Bu hızlı başlangıçta, Azure CLI kullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucu'yu korumak için bir yedekleme ilkesinin nasıl oluşturulacağı açıklanmaktadır.

PostgreSQL için Azure Veritabanı - Esnek Sunucu için Azure Backup ilkesi, yedeklemelerin nasıl ve ne zaman oluşturulduğunu, kurtarma noktaları için saklama süresini ve veri koruma ve kurtarma kurallarını tanımlar. Azure Backup, Azure portal, PowerShell, CLI, Azure Resource Manager, Bicep, Terraform gibi birden çok istemciyi kullanarak Azure PostgreSQL - Esnek Sunucunuzu yedeklemenizi sağlar.

Önkoşullar

PostgreSQL için Azure Veritabanı - Esnek Sunucu için bir yedekleme ilkesi oluşturmadan önce aşağıdaki önkoşulların karşılandığından emin olun:

Yedekleme ilkesi oluşturma

Yedekleme ilkesi oluşturmak için şu adımları izleyin:

  1. PostgreSQL - Esnek Sunucu yedekleme ilkesini anlama
  2. İlke şablonunu alma
  3. İlke şablonunu değiştirme
  4. İlkeyi oluşturma

PostgreSQL - Esnek Sunucu yedekleme ilkesini anlama

Disk yedekleme günde birden çok yedekleme sunar ve blob yedekleme tetikleyicisi olmayan sürekli bir yedeklemedir. Şimdi PostgreSQL – Esnek Sunucu için yedekleme ilkesi nesnesini anlayalım.

  • Politika Kuralı
    • BackupRule
      • BackupParameter
        • BackupType (Bu senaryoda tam veritabanı yedeklemesi)
        • İlk Veri Deposu (Yedeklemelerin başlangıçta inmesi gereken yer)
        • Tetikleyici (Yedekleme nasıl tetikleniyor)
          • Program bazlı
          • Varsayılan etiketleme ölçütleri (zamanlanmış tüm yedeklemeler için varsayılan bir 'etiket'. Bu etiket, yedeklemeleri bekletme kuralına bağlar)
    • Varsayılan Bekletme Kuralı (Varsayılan olarak ilk veri deposundaki tüm yedeklemelere uygulanan bir kural)

Bu nedenle, bu nesne şunları tanımlar:

  • Tetiklenen yedeklemelerin türü
  • İlkenin tetiklenme şekli (bir zamanlama aracılığıyla)
  • Yedekleme ilkesine uygulanan etiketler
  • Verilerin depolandığı konum (veri deposu)
  • Veri deposundaki yedekleme verilerinin yaşam döngüsü

PostgreSQL – Esnek Sunucu için varsayılan PowerShell komutu, her hafta bir tam yedekleme tetikler ve depolandıkları alana ulaşır, burada üç ay boyunca saklanırlar.

İlke şablonunu alma

Azure PostgreSQL – Esnek Sunucu veritabanı yedeklemesi için yedekleme ilkesinin iç bileşenlerini anlamak için komutunu kullanarak az dataprotection backup-policy get-default-policy-template ilke şablonunu alın. Bu komut, belirli bir veri kaynağı türü için varsayılan ilke şablonunu döndürür. Yeni bir ilke oluşturmak için bu ilke şablonunu kullanın.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQLFlexibleServer

{
  "datasourceTypes": [
    "Microsoft.DBforPostgreSQL/flexibleServers"
  ],
  "name": "OssFlexiblePolicy1",
  "objectType": "BackupPolicy",
  "policyRules": [
    {
      "backupParameters": {
        "backupType": "Full",
        "objectType": "AzureBackupParams"
      },
      "dataStore": {
        "dataStoreType": "VaultStore",
        "objectType": "DataStoreInfoBase"
      },
      "name": "BackupWeekly",
      "objectType": "AzureBackupRule",
      "trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2021-08-15T06:30:00+00:00/P1W"
          ],
          "timeZone": "UTC"
        },
        "taggingCriteria": [
          {
            "isDefault": true,
            "tagInfo": {
              "id": "Default_",
              "tagName": "Default"
            },
            "taggingPriority": 99
          }
        ]
      }
    },
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P3M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": []
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]
}

İlke şablonu bir tetikleyiciden (yedeklemeyi neyin tetikleeceğine karar verir) ve bir yaşam döngüsünden (yedeklemenin ne zaman silineceğine, kopyalanıp taşıneceğine karar verir) oluşur. Azure PostgreSQL – Esnek Sunucu veritabanı yedeklemesinde tetikleyici için varsayılan değer, zamanlanmış haftalık tetikleyicidir (7 günde bir yedekleme) ve her yedeklemeyi üç ay boyunca saklamaktır.

Zamanlanmış tetikleyici:

"trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2021-08-15T06:30:00+00:00/P1W"
          ],
          "timeZone": "UTC"
        }

Varsayılan bekletme kuralı yaşam döngüsü:


{
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P3M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": []
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }

Önemli

Yedekleme zamanlaması ISO 8601 süre biçimini izler. Ancak, yedeklemeler süresiz olarak çalışacak şekilde yapılandırıldığından yinelenen aralık ön eki R desteklenmez. ** R ile belirtilen herhangi bir değer yoksayılacaktır.

İlke şablonunu değiştirme

Önemli

Azure PowerShell'de nesneler, tüm değişiklikleri gerçekleştirmek için hazırlama konumları olarak kullanılabilir. Azure CLI'da, Nesneler diye bir şey olmadığından dosyaları kullanmamız gerekir. Her düzenleme işlemi, içeriğin giriş dosyasından okunduğu ve çıkış dosyasına yönlendirildiği yeni bir dosyaya yeniden yönlendirilmelidir. Daha sonra betikte kullanırken dosyayı gerektiği gibi yeniden adlandırabilirsiniz.

Zamanlamayı değiştirme

Varsayılan ilke şablonu haftada bir yedekleme sunar. Yedekleme zamanlamasını haftada birden çok gün olacak şekilde değiştirebilirsiniz. Zamanlamayı değiştirmek için komutunu kullanın az dataprotection backup-policy trigger set .

Aşağıdaki örnek, haftalık yedeklemeyi her haftanın Pazar, Çarşamba ve Cuma günleri gerçekleştirilecek şekilde değiştirir. Zamanlama tarihi dizisi tarihleri belirtir ve bu tarihlerdeki günler haftanın günleri olarak değerlendirilir. Ayrıca, bu zamanlamaların her hafta tekrarlanması gerektiğini belirtin. Bu nedenle, zamanlama aralığı 1 ve aralık türü Haftalık olur.

az dataprotection backup-policy trigger create-schedule --interval-type Weekly --interval-count 1 --schedule-days 2021-08-15T22:00:00 2021-08-18T22:00:00 2021-08-20T22:00:00
[
  "R/2021-08-15T22:00:00+00:00/P1W",
  "R/2021-08-18T22:00:00+00:00/P1W",
  "R/2021-08-20T22:00:00+00:00/P1W"
]

az dataprotection backup-policy trigger set --policy .\OSSPolicy.json  --schedule R/2021-08-15T22:00:00+00:00/P1W R/2021-08-18T22:00:00+00:00/P1W R/2021-08-20T22:00:00+00:00/P1W > EditedOSSPolicy.json

Yeni bekletme kuralı ekleme

Varsayılan şablon, varsayılan saklama kuralı altında ilk veri deposu için bir yaşam döngüsüne sahiptir. Bu senaryoda, kural yedekleme verilerini üç ay sonra siler. az dataprotection backup-policy retention-rule create-lifecycle Komutunu kullanarak yeni yaşam döngüleri oluşturun ve komutunu kullanarak az dataprotection backup-policy retention-rule set bunları yeni kurallarla veya mevcut kurallarla ilişkilendirin.

Aşağıdaki örnek, Monthly adlı yeni bir bekletme kuralı oluşturur, bu kurala göre her ayın ilk başarılı yedeklemesinin altı ay boyunca kasada tutulması gerekir.

az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 6 --retention-duration-type Months --source-datastore VaultStore > VaultLifeCycle.JSON

az dataprotection backup-policy retention-rule set --lifecycles .\VaultLifeCycle.JSON --name Monthly --policy .\EditedOSSPolicy.json > AddedRetentionRulePolicy.JSON

Etiket ve ilgili ölçütleri ekleme

Bekletme kuralı oluşturulduktan sonra, Yedekleme ilkesinin Tetikleyici özelliğinde karşılık gelen bir etiket oluşturmanız gerekir. az dataprotection backup-policy tag create-absolute-criteria Komutunu kullanarak yeni bir etiketleme ölçütü oluşturun ve mevcut etiketi güncelleştirmek veya yeni bir etiket oluşturmak için komutunu kullanınaz dataprotection backup-policy tag set.

Aşağıdaki örnek, ayın ilk başarılı yedeklemesi ile ilgili kriterlere sahip yeni bir etiket oluşturur. Etiket, uygulanacak ilgili bekletme kuralıyla aynı adı taşır.

Bu örnekte, etiket ölçütleri Aylık olarak adlandırılmalıdır.

az dataprotection backup-policy tag create-absolute-criteria --absolute-criteria FirstOfMonth > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON

Örneğin, zamanlama haftada birden çok yedeklemeyse (örnekte belirtildiği gibi her Pazar, Çarşamba, Perşembe) ve Pazar ve Cuma yedeklemelerini arşivleme istiyorsanız, etiketleme ölçütleri komutu kullanılarak az dataprotection backup-policy tag create-generic-criteria aşağıdaki gibi değiştirilebilir.

az dataprotection backup-policy tag create-generic-criteria --days-of-week Sunday Friday > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON

İlkeyi oluşturma

Şablon gereksinimlere göre değiştirildikten sonra, değiştirilen şablonu kullanarak bir ilke oluşturmak için komutunu kullanın az dataprotection backup-policy create .

az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault

Sonraki adımlar

Azure CLI kullanarak PostgreSQL için Azure Veritabanı - esnek sunucu için yedeklemeyi yapılandırın.