Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yedekleme ilkeniz, yedeklemelerinizin saklanmasını ve zamanlamasını yönetir. Azure PostgreSQL veritabanı Yedeklemesi uzun süreli saklama sunar ve günlük yedeklemeyi destekler.
PostgreSQL veritabanları için yedeklemeyi bir kasaya yapılandırmak için mevcut yedekleme ilkesini yeniden kullanabilir veya REST API kullanarak Azure Kurtarma Hizmetleri kasası için bir yedekleme ilkesi oluşturabilirsiniz.
PostgreSQL yedekleme ilkesini anlama
Disk yedekleme günde birden çok yedekleme sunarken ve blob yedekleme tetikleyicisi olmayan sürekli bir yedekleme olsa da PostgreSQL yedeklemesi Arşiv koruması sunar. Kasaya ilk gönderilen yedekleme verileri, tanımlı bir kural veya bir yaşam döngüsü uyarınca arşiv katmanına taşınabilir. Bu bağlamda PostgreSQL için yedekleme ilkesi nesnesini anlayalım.
- Politika Kuralı
- BackupRule
- BackupParameter
- BackupType (Bu örnekte tam veritabanı yedeklemesi)
- İlk Veri Deposu (Yedeklemeler başlangıçta nereye indirilecek)
- Tetikleyici (Yedekleme nasıl tetikleniyor)
- Zamanlama bazlı
- Varsayılan Etiketleme Ölçütleri (Zamanlanan tüm yedeklemeler için varsayılan bir 'etiket'. Bu etiket, yedeklemeleri bekletme kuralına bağlar)
- BackupParameter
- Varsayılan Bekletme Kuralı (Varsayılan olarak ilk veri deposundaki tüm yedeklemelere uygulanacak bir kural)
- BackupRule
Bu nedenle, bu nesne ne tür yedeklemelerin tetiklendiklerini, nasıl tetiklendiklerini (zamanlamaya göre), nelerle etiketlendiklerini, nereye indiklerini (veri deposu) ve bir veri deposundaki yedekleme verilerinin yaşam döngüsünü tanımlar. PostgreSQL için varsayılan PowerShell nesnesi, her hafta bir tam yedekleme yapılacak şekilde ayarlanmıştır ve bunlar üç aylık bir süre için depolandıkları kasada tutulacaktır.
Arşiv katmanını ilkeye eklemek istiyorsanız verilerin kasadan arşive ne zaman taşınacağını, verilerin arşivde ne kadar süreyle kalacağına ve zamanlanmış yedeklemelerden hangisinin arşivlenebilir olarak etiketlenmesi gerektiğine karar vermeniz gerekir. Bu nedenle, yedekleme verilerinin yaşam döngüsünün kasa veri deposundan arşiv veri deposuna nasıl aktarılacağını ve arşiv veri deposunda ne kadar süre kalacaklarını belirten bir bekletme kuralı eklemeniz gerekir. Ardından zamanlanmış yedeklemeleri arşivlenebilir olarak işaretleyecek bir 'etiket' eklemeniz gerekir. Sonuçta elde edilen PowerShell nesnesi aşağıdaki gibidir:
- Politika Kuralı
- BackupRule
- BackupParameter
- BackupType (Bu örnekte tam veritabanı yedeklemesi)
- İlk Veri Deposu (Yedeklemeler başlangıçta nereye indirilecek)
- Tetikleyici (Yedekleme nasıl tetikleniyor)
- Zamanlama tabanlı
- Varsayılan Etiketleme Ölçütleri (Zamanlanan tüm yedeklemeler için varsayılan bir 'etiket'. Bu etiket, yedeklemeleri bekletme kuralına bağlar)
- 'X' adlı yeni saklama kuralı için yeni etiketleme kriterleri
- BackupParameter
- Varsayılan Bekletme Kuralı (Varsayılan olarak ilk veri deposundaki tüm yedeklemelere uygulanacak bir kural)
- 'X' olarak adlandırılan yeni bir Bekletme kuralı
- Yaşam Döngüsü
- Kaynak veri deposu
- Süre sonunda kaynak veri deposunda sil
- Hedef veri deposuna kopyalama
- Yaşam Döngüsü
- BackupRule
PostgreSQL veritabanlarını yedeklemeye yönelik bir ilke oluşturmak için aşağıdaki eylemleri gerçekleştirin:
Bir ilke oluşturun
Önemli
Şu anda mevcut bir ilkenin güncelleştirilmesi veya değiştirilmesi desteklenmez. Alternatif olarak, gerekli ayrıntıları içeren yeni bir ilke oluşturabilir ve bunu ilgili yedekleme örneğine atayabilirsiniz.
Azure Backup ilkesi oluşturmak için aşağıdaki PUT işlemini kullanın:
PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{policyName}?api-version=2021-01-01
{policyName}
ve {vaultName}
URI'de sağlanır. İstek gövdesinde ek bilgiler sağlanır.
İstek gövdesini oluşturma
Örneğin, PostgreSQL yedeklemesi için bir ilke oluşturmak için istek gövdesi aşağıdaki bileşenlere ihtiyaç duyar:
İsim | Gerekli | Türü | Açıklama |
---|---|---|---|
özellikler | Doğru | BaseBackupPolicy:BackupPolicy | BaseBackupPolicyResource özellikleri |
İstek gövdesindeki tanımların tam listesi için yedekleme ilkesi REST API belgesine bakın.
Örnek istek içeriği
İlke şöyle diyor:
- Haftalık yedekleme için bir tetikleyici zamanlayın ve başlangıç saatini seçin. (Zaman + 1 Hafta).
- Veri deposu, yedeklemeler doğrudan kasaya aktarıldığı için kasa deposudur.
- Yedeklemeler kasada üç ay (P3M) saklanır.
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"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"
}
]
}
Önemli
Saat biçimleri yalnızca DateTime'ı destekler; yalnızca Saat desteklenmez. Günün saati, yedeklemenin tamamlanma zamanını değil yedekleme başlangıç saatini gösterir.
Yukarıdaki JSON dosyasını iki değişiklikle güncelleştirelim: Haftanın birden çok gününde yapılan yedeklemeler ve PostgreSQL veritabanı yedeklemelerinin uzun süreli saklaması için bir arşiv veri deposu ekleyelim.
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 tarihleri dizisi tarihlerden bahseder ve bu tarihlerin günleri, haftanın günleri olarak kabul edilir. Ayrıca bu zamanlamaların her hafta yineleneceğini belirtmeniz gerekir. Bu nedenle, zamanlama aralığı 1 ve aralık türü Haftalık olur.
Zamanlanmış tetikleyici:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"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"
],
"timeZone": "UTC"
}
Arşiv korumasını eklemek istiyorsanız, ilke JSON'unu aşağıdaki gibi değiştirmeniz gerekir:
Yukarıdaki JSON,varsayılan saklama kuralı altında ilk veri deposu için bir yaşam döngüsüne sahiptir. Bu senaryoda kural, yedekleme verilerinin üç ay sonra silinmesini söyler. Verilerin arşiv veri deposuna ne zaman taşındığını tanımlayan yeni bir bekletme kuralı eklemelisiniz; yani yedekleme verileri önce arşiv veri deposuna kopyalanır ve sonra kasa veri deposunda silinir. Ayrıca, kuralın verileri arşiv* veri deposunda tutmak için gereken süreleri tanımlaması gerekir. Şimdi bu yeni kuralı Aylık olarak adlandıralım ve yedeklemelerin kasa veri deposunda 6 ay boyunca saklanması ve ardından arşiv veri deposuna kopyalanması gerektiğini tanımlayalım. Ardından kasa veri deposundaki sil seçeneği, verileri arşiv veri deposunda 24 ay boyunca tutar ve ardından arşiv veri deposundaki verileri siler.
Bekletme yaşam döngüsü:
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P6M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": {
"copyAfter": {
"objectType": "CopyOnExpiryOption"
},
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
},
{
"deleteAfter": {
"duration": "P24M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
}
Her bekletme kuralı eklediğinizde, politikanın Trigger özelliğinde karşılık gelen bir etiket eklemeniz gerekir. Aşağıdaki örnek, uygulanacak bekletme kuralıyla tam olarak aynı ada sahip ve ayın ilk başarılı yedeklemesi olan kriterleri içeren yeni bir etiket oluşturur.
Bu örnekte, etiket ölçütleri Aylık olarak adlandırılmalıdır.
Etiketleme ölçütleri:
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
Tüm değişiklikleri ekledikten sonra JSON ilkesi aşağıdaki gibi görünür:
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"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-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
},
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P6M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": {
"copyAfter": {
"objectType": "CopyOnExpiryOption"
},
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
},
{
"deleteAfter": {
"duration": "P24M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
}
]
}
İlke oluşturma hakkında daha fazla ayrıntı için PostgreSQL veritabanı Yedekleme ilkesi belgesine bakın.
Yanıtlar
Yedekleme ilkesi oluşturma/güncelleştirme zaman uyumlu bir işlemdir ve işlem başarılı olduktan sonra Tamam'ı döndürür.
Adı | Türü | Açıklama |
---|---|---|
200 Tamam | BaseBackupPolicyResource | Tamam |
Örnek yanıtlar
İşlem tamamlandıktan sonra, yanıt gövdesinde ilke içeriğiyle birlikte 200 (Tamam) döndürür.
{
"properties": {
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"trigger": {
"schedule": {
"repeatingTimeIntervals": [
"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"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"tagInfo": {
"tagName": "Monthly",
"id": "Monthly_"
},
"taggingPriority": 15,
"isDefault": false,
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
]
},
{
"tagInfo": {
"tagName": "Default",
"id": "Default_"
},
"taggingPriority": 99,
"isDefault": true
}
],
"objectType": "ScheduleBasedTriggerContext"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule"
},
{
"lifecycles": [
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P6M"
},
"targetDataStoreCopySettings": [
{
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"copyAfter": {
"objectType": "CopyOnExpiryOption"
}
}
],
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
}
},
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P24M"
},
"targetDataStoreCopySettings": [],
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
],
"isDefault": false,
"name": "Monthly",
"objectType": "AzureRetentionRule"
},
{
"lifecycles": [
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P3M"
},
"targetDataStoreCopySettings": [],
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
}
}
],
"isDefault": true,
"name": "Default",
"objectType": "AzureRetentionRule"
}
],
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"objectType": "BackupPolicy"
},
"id": "/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/DebRG1/providers/Microsoft.DataProtection/backupVaults/DebBackupVault/backupPolicies/OssPolicy1",
"name": "OssPolicy1",
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Sonraki adımlar
Azure Diskleri için korumayı etkinleştirme
Azure Backup REST API'leri hakkında daha fazla bilgi için aşağıdaki makalelere bakın: