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.
PostgreSQL için Azure Veritabanı'nda PostgreSQL veritabanı yedeklemelerinizin tutulmasını ve zamanlamasını bir yedekleme ilkesi yönetir. PostgreSQL için Azure Veritabanı, veritabanı yedeklemelerinin uzun süreli saklamasını sağlar ve günlük yedeklemeyi destekler.
PostgreSQL veritabanları için yedeklemeleri bir kasaya yapılandırmak için mevcut bir yedekleme ilkesini yeniden kullanabilir veya Azure Backup için Data Protection REST API'sini kullanarak Azure Kurtarma Hizmetleri kasası için bir yedekleme ilkesi oluşturabilirsiniz. Bu makalede bir yedekleme ilkesi oluşturacaksınız.
PostgreSQL yedekleme ilkelerini 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 kurala veya yaşam döngüsüne uygun olarak arşiv katmanına taşınabilir.
Bu bağlamda, aşağıdaki hiyerarşi PostgreSQL için yedekleme ilkesi nesnesini anlamanıza yardımcı olabilir:
- İlke kuralı
- Yedekleme kuralı
- Yedekleme parametresi
- Yedekleme türü (bu örnekte tam veritabanı yedeklemesi)
- İlk veri deposu (yedeklemelerin başlangıçta geldiği yer)
- Tetikleyici (yedeklemenin tetikleme şekli)
- Schedule
- Varsayılan etiketleme ölçütleri (tüm zamanlanmış yedeklemeleri bekletme kuralına bağlayan varsayılan etiket)
- Yedekleme parametresi
- Varsayılan bekletme kuralı (varsayılan olarak ilk veri deposundaki tüm yedeklemelere uygulanan bir kural)
- Yedekleme kuralı
İlke nesnesi ne tür yedeklemelerin tetiklendiklerini, bunların nasıl tetiklendiklerini (bir zamanlama aracılığıyla), nelerle etiketlendiklerini, nereye indiklerini (veri deposu) ve veri deposundaki verilerinin yaşam döngüsünü tanımlar.
PostgreSQL için varsayılan PowerShell nesnesi her hafta tam yedekleme tetikle diyor. Yedeklemeler kasaya ulaşır ve burada üç ay boyunca depolanı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. Kasa veri deposundan arşiv veri deposuna yedekleme verilerinin yaşam döngüsünü tanımlayan bir bekletme kuralı eklemeniz gerekir. Bekletme kuralı, yedekleme verilerinin arşiv veri deposunda ne kadar süre kalacağını da tanımlar. Ardından zamanlanmış yedeklemeleri arşivlenebilir olarak işaretleyen bir etiket eklemeniz gerekir.
Sonuçta elde edilen PowerShell nesnesi aşağıdaki gibidir:
- İlke kuralı
- Yedekleme kuralı
- Yedekleme parametresi
- Yedekleme türü (bu örnekte tam veritabanı yedeklemesi)
- İlk veri deposu (yedeklemelerin başlangıçta geldiği yer)
- Tetikleyici (yedeklemenin tetikleme şekli)
- Schedule
- Varsayılan etiketleme ölçütleri (zamanlanmış tüm yedeklemeleri bekletme kuralına bağlayan varsayılan etiket)
- Aynı ada sahip yeni bekletme kuralı için yeni etiketleme ölçütleri
- Yedekleme parametresi
- Varsayılan bekletme kuralı (varsayılan olarak ilk veri deposundaki tüm yedeklemelere uygulanan bir kural)
- Yeni bekletme kuralı
- Yaşam çevrimi
- Kaynak veri deposu
- Kaynak veri deposunda silinme süresi
- Hedef veri deposuna kopyalama
- Yaşam çevrimi
- Yedekleme kuralı
Bir ilke oluşturun
Önemli
Şu anda mevcut bir ilkenin güncelleştirilmesi veya değiştirilmesi desteklenmez. Bunun yerine, gerekli ayrıntıları içeren yeni bir ilke oluşturun ve ilgili yedekleme örneğine atayın.
Yedekleme ilkesi oluşturmak için aşağıdaki PUT işlemi kullanın:
PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{policyName}?api-version=2021-01-01
URI, ve {vaultName} değerlerini sağlar{policyName}. İstek gövdesi ek bilgiler sağlar.
İstek gövdesini oluşturma
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 |
|---|---|---|---|
properties |
true |
BaseBackupPolicy: BackupPolicy |
BaseBackupPolicyResource özellikleri |
İstek gövdesindeki tanımların tam listesi için bkz. REST API yedekleme ilkeleri.
Örnek istek gövdesi
İlke şöyle diyor:
- Tetikleyici, seçilen başlangıç zamanında (time +
P1W) haftalık yedekleme için zamanlanır. - Yedeklemeler doğrudan kasaya aktarıldığından veri deposu bir kasa deposudur.
- Yedeklemeler kasada üç ay (
P3M) boyunca 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
Zaman biçimleri yalnızca DateTimedestekler.
Time desteklenmez. Günün saati, bitiş saatini değil yedekleme başlangıç saatini gösterir.
Önceki JSON dosyasını iki değişiklikle güncelleştirelim:
- Haftanın birden çok gününe yedekler ekleyin.
- PostgreSQL veritabanı yedeklemelerinin uzun süreli saklaması için bir arşiv veri deposu ekleyin.
Aşağıdaki örnek, haftalık yedeklemeyi her haftanın Pazar, Çarşamba ve Cuma günleri olarak değiştirir. Zamanlama tarihi dizisi tarihlerden bahseder ve bu tarihler için haftanın günleri haftanın günleri olarak alınır. Ayrıca bu zamanlamaların her hafta yineleneceğini belirtmeniz gerekir. Bu nedenle, zamanlama aralığı ve 1 aralık türü şeklindedir Weekly.
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, JSON ilkesini değiştirmeniz gerekir.
Bekletme yaşam döngüsü
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. Başka bir ifadeyle yedekleme verileri önce arşiv veri deposuna kopyalanır ve ardından 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ı Monthlyadlandıralım. Yedeklemelerin 6 ay boyunca kasa veri deposunda tutulması ve ardından arşiv veri deposuna kopyalanması gerektiğini tanımlar. Ardından kasa veri deposundaki yedekleri silin ve verileri arşiv veri deposunda 24 ay boyunca tutun. Son olarak arşiv veri deposundaki verileri silin.
"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"
}
Etiketleme ölçütleri
Her bekletme kuralı eklediğinizde, ilkenin özelliğine Trigger karşılık gelen bir etiket eklemeniz gerekir. Aşağıdaki örnek, uygulanacak ilgili bekletme kuralıyla tam olarak aynı ada sahip ölçütlerle (ayın ilk başarılı yedeklemesi olan) yeni bir etiket oluşturur.
Bu örnekte, etiket ölçütleri olarak adlandırılmalıdır Monthly:
{
"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 bilgi için bkz . Yedekleme ilkesi oluşturma.
Yanıtı denetleme
Yedekleme ilkesi oluşturma veya güncelleştirme zaman uyumlu bir işlemdir. İşlem başarılı olduktan sonra, yanıt gövdesindeki ilke içeriğiyle birlikte aşağıdaki durum yanıtını döndürür.
| İsim | Türü | Açıklama |
|---|---|---|
200 OK |
BaseBackupPolicyResource |
İşlem tamamlandı. |
Örnek yanıt
{
"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"
}
İlgili içerik
- Data Protection REST API'sini kullanarak Azure disklerini yedekleyin.
- Azure Backup Veri Koruması REST API'sini seçin.
- Azure REST API başvurusu.
- Azure Backup'ta REST API'sini kullanarak yedekleme ve geri yükleme işlerini izleyin.
- Azure portalını kullanarak PostgreSQL için Azure Veritabanı sunucusunu yönetin.