Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mencadangkan Azure Database for PostgreSQL dengan menggunakan Azure PowerShell. Anda juga dapat mengonfigurasi pencadangan menggunakan portal Microsoft Azure, Azure CLI, dan REST API untuk database PostgreSQL.
Pelajari selengkapnya tentang skenario yang didukung dan tanya jawab umum untuk mencadangkan database PostgreSQL di Azure Database for PostgreSQL.
Buat Pencadangan Vault
Vault Backup adalah entitas penyimpanan di Azure. Ini menyimpan data cadangan untuk berbagai beban kerja baru yang didukung Azure Backup, seperti server Azure Database for PostgreSQL, disk Azure, dan blob Azure. Brankas Azure Backup memudahkan untuk mengatur data cadangan Anda, sambil meminimalkan overhead manajemen. Brankas cadangan didasarkan pada model Azure Resource Manager dari Azure, yang menyediakan kemampuan yang ditingkatkan untuk membantu mengamankan data cadangan.
Sebelum Anda membuat brankas Backup, pilih redundansi penyimpanan data di dalam brankas. Kemudian lanjutkan untuk membuat brankas Backup dengan redundansi penyimpanan dan lokasinya.
Dalam artikel ini, Anda membuat Backup vault bernama TestBkpVault, di wilayah westus, di bawah grup testBkpVaultRG sumber daya. Gunakan perintah New-AzDataProtectionBackupVault untuk membuat vault Backup.
Pelajari selengkapnya tentang membuat vault Backup.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag :
Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId :
IdentityType :
Location : westus
Name : TestBkpVault
ProvisioningState : Succeeded
StorageSetting : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type : Microsoft.DataProtection/backupVaults
Buat kebijakan pencadangan
Setelah membuat vault, Anda dapat membuat kebijakan pencadangan untuk membantu melindungi database PostgreSQL. Anda juga dapat membuat kebijakan pencadangan untuk database PostgreSQL menggunakan REST API.
Memahami kebijakan pencadangan PostgreSQL
Sedangkan cadangan disk menawarkan beberapa cadangan per hari dan cadangan blob adalah cadangan berkelanjutan tanpa pemicu, cadangan PostgreSQL menawarkan perlindungan arsip. Data cadangan yang pertama kali dikirim ke vault dapat dipindahkan ke tingkat arsip sesuai dengan aturan yang ditentukan atau siklus hidup.
Dalam konteks ini, hierarki berikut dapat membantu Anda memahami objek kebijakan cadangan untuk PostgreSQL:
- Aturan kebijakan
- Aturan cadangan
- Parameter pencadangan
- Jenis cadangan (cadangan database lengkap dalam kasus ini)
- Datastore awal (tempat pencadangan awal ditempatkan)
- Pemicu (bagaimana cadangan diaktifkan)
- Jadwal
- Kriteria pemberian tag default (tag default yang menautkan semua cadangan terjadwal ke aturan retensi)
- Parameter pencadangan
- Aturan retensi bawaan (aturan yang diterapkan secara otomatis ke semua cadangan pada datastore awal)
- Aturan cadangan
Objek kebijakan mendefinisikan jenis cadangan yang dipicu, bagaimana mereka dipicu (melalui jadwal), dengan apa mereka diberi tag, di mana mereka ditempatkan (datastore), dan siklus hidup data tersebut di datastore.
Objek PowerShell bawaan untuk PostgreSQL menentukan pemicu pencadangan penuh setiap minggu. Cadangan mencapai brankas, tempat cadangan disimpan selama tiga bulan.
Jika Anda ingin menambahkan tingkat arsip ke kebijakan, Anda harus memutuskan kapan data akan dipindahkan dari vault ke arsip, berapa lama data akan tetap berada di arsip, dan cadangan terjadwal mana yang harus ditandai sebagai dapat diarsipkan. Anda harus menambahkan aturan retensi yang menentukan siklus hidup data cadangan dari datastore vault ke datastore arsip. Aturan retensi juga menentukan berapa lama data cadangan akan tetap berada di datastore arsip. Kemudian Anda perlu menambahkan tag yang menandai cadangan terjadwal sebagai memenuhi syarat untuk diarsipkan.
Objek PowerShell yang dihasilkan adalah sebagai berikut:
- Aturan kebijakan
- Aturan cadangan
- Parameter pencadangan
- Jenis cadangan (cadangan database lengkap dalam kasus ini)
- Datastore awal (tempat pencadangan awal ditempatkan)
- Pemicu (bagaimana cadangan diaktifkan)
- Jadwal
- Kriteria pemberian tag default (tag default yang menautkan semua cadangan terjadwal ke aturan retensi)
- Kriteria penandaan baru untuk aturan retensi baru dengan nama yang sama
- Parameter pencadangan
- Aturan retensi bawaan (aturan yang diterapkan secara otomatis ke semua cadangan pada datastore awal)
- Aturan retensi baru
- Siklus hidup
- Sumber datastore
- Periode waktu penghapusan di datastore sumber
- Salin ke penyimpanan data target
- Siklus hidup
- Aturan cadangan
Ambil templat kebijakan
Untuk memahami komponen dalam kebijakan cadangan untuk cadangan database PostgreSQL, ambil templat kebijakan dengan menggunakan Get-AzDataProtectionPolicyTemplate perintah . Perintah ini mengembalikan templat kebijakan default untuk jenis sumber data. Gunakan templat kebijakan ini untuk membuat kebijakan baru.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPostgreSQL
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/servers/databases}
ObjectType : BackupPolicy
PolicyRule : {BackupWeekly, Default}
$policyDefn.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : VaultStore
Name : BackupWeekly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.ScheduleBasedTriggerCo
ntext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
Templat kebijakan terdiri dari pemicu (yang memutuskan apa yang memicu cadangan) dan siklus hidup (yang memutuskan kapan harus menghapus, menyalin, atau memindahkan cadangan). Dalam cadangan database PostgreSQL, nilai default untuk pemicu adalah pemicu mingguan terjadwal (satu cadangan setiap tujuh hari). Setiap cadangan dipertahankan selama tiga bulan.
$policyDefn.PolicyRule[0].Trigger | fl
ObjectType : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2021-08-22T02:00:00+00:00/P1W}
ScheduleTimeZone : UTC
TaggingCriterion : {Default}
$policyDefn.PolicyRule[1].Lifecycle | fl
DeleteAfterDuration : P3M
DeleteAfterObjectType : AbsoluteDeleteOption
SourceDataStoreObjectType : DataStoreInfoBase
SourceDataStoreType : VaultStore
TargetDataStoreCopySetting : {}
Modifikasi templat kebijakan
Ubah jadwal
Templat kebijakan default menawarkan cadangan sekali seminggu. Anda dapat mengubah jadwal agar pencadangan dilakukan beberapa hari dalam seminggu. Untuk mengubah jadwal, gunakan Edit-AzDataProtectionPolicyTriggerClientObject perintah .
Contoh berikut memodifikasi cadangan mingguan menjadi Minggu, Rabu, dan Jumat setiap minggu. Array tanggal jadwal mencantumkan tanggal, dan hari dalam seminggu untuk tanggal tersebut dianggap sebagai hari dalam seminggu. Anda juga perlu menentukan bahwa jadwal ini harus diulang setiap minggu. Jadi, interval jadwal adalah 1 dan jenis intervalnya adalah Weekly.
$schDates = @(
(
(Get-Date -Year 2021 -Month 08 -Day 15 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 18 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 20 -Hour 22 -Minute 0 -Second 0)
)
)
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $schDates -IntervalType Weekly -IntervalCount 1
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $policyDefn
Tambahkan aturan retensi baru
Jika Anda ingin menambahkan perlindungan arsip, Anda perlu mengubah templat kebijakan.
Templat default memiliki siklus hidup untuk datastore awal di bawah aturan retensi default. Dalam skenario ini, aturan mengatakan untuk menghapus data cadangan setelah tiga bulan. Anda harus menambahkan aturan retensi baru yang menentukan kapan data dipindahkan ke datastore arsip. Artinya, data cadangan pertama kali disalin ke penyimpanan data arsip, lalu dihapus di datastore brankas.
Selain itu, aturan harus menentukan berapa lama untuk menyimpan data di datastore arsip. Untuk membuat siklus hidup baru, gunakan New-AzDataProtectionRetentionLifeCycleClientObject perintah . Untuk mengaitkan siklus hidup tersebut dengan aturan baru atau yang sudah ada, gunakan Edit-AzDataProtectionPolicyRetentionRuleClientObject perintah .
Contoh berikut membuat aturan retensi baru bernama Monthly. Dalam aturan ini, cadangan pertama yang berhasil setiap bulan disimpan di brankas selama enam bulan, dipindahkan ke tingkat arsip, dan disimpan di tingkat arsip selama 24 bulan.
$VaultToArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6 -TargetDataStore ArchiveStore -CopyOption CopyOnExpiryOption
$OnArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore ArchiveStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 24
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultToArchiveLifeCycle, $OnArchiveLifeCycleLifeCycle -IsDefault $false
Tambahkan tag dan kriteria yang relevan
Setelah membuat aturan retensi, Anda harus membuat tag yang sesuai pada properti Trigger dari kebijakan pencadangan. Untuk membuat kriteria pemberian tag baru, gunakan New-AzDataProtectionPolicyTagCriteriaClientObject perintah . Untuk memperbarui tag yang ada atau membuat tag baru, gunakan perintah Edit-AzDataProtectionPolicyTagClientObject .
Contoh berikut membuat tag baru dengan mempertimbangkan kriteria, yaitu cadangan pertama yang sukses bulan ini. Tag tersebut memiliki nama yang sama dengan aturan retensi terkait yang diterapkan.
Dalam contoh ini, kriteria tag diberi nama Monthly:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Jika jadwal adalah beberapa cadangan per minggu (setiap Minggu, Rabu, dan Kamis, seperti yang ditentukan dalam contoh sebelumnya) dan Anda ingin mengarsipkan cadangan Minggu dan Jumat, Anda dapat mengubah kriteria pemberian tag sebagai berikut:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Buat kebijakan cadangan PostgreSQL baru
Setelah Anda mengubah templat sesuai dengan persyaratan, gunakan New-AzDataProtectionBackupPolicy perintah untuk membuat kebijakan dengan menggunakan templat yang dimodifikasi:
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
Konfigurasikan pencadangan
Setelah membuat vault dan kebijakan, Anda perlu mempertimbangkan tiga langkah penting untuk mencadangkan database PostgreSQL di Azure Database for PostgreSQL.
Memahami entitas utama
Basis data PostgreSQL yang akan dicadangkan
Ambil ID Resource Manager dari database PostgreSQL untuk dibackup. ID ini berfungsi sebagai pengidentifikasi database. Contoh berikut menggunakan database bernama empdb11 di bawah server testposgresqlPostgreSQL , yang ada di grup ossrg sumber daya di bawah langganan yang berbeda:
$ossId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Penyimpanan kunci
Layanan Azure Backup tidak menyimpan nama pengguna dan kata sandi untuk tersambung ke database PostgreSQL. Sebagai gantinya, admin cadangan memasukkan kunci ke dalam brankas kunci. Layanan Azure Backup kemudian mengakses brankas kunci, membaca kunci, dan mengakses database. Catat pengidentifikasi rahasia dari kunci yang relevan.
$keyURI = "https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Kubah cadangan
Anda perlu menyambungkan vault Backup ke server PostgreSQL lalu mengakses database melalui kunci yang ada di brankas kunci. Jadi, vault Backup memerlukan akses ke server PostgreSQL dan brankas kunci. Akses diberikan ke identitas terkelola brankas Backup.
Baca tentang izin yang sesuai yang harus Anda berikan ke identitas terkelola brankas Backup di server PostgreSQL dan Azure Key Vault, tempat kunci ke database disimpan.
Siapkan permintaan
Setelah Anda mengatur semua izin yang relevan, lakukan konfigurasi cadangan dalam dua langkah:
- Siapkan permintaan dengan menggunakan vault, kebijakan, dan database PostgreSQL yang relevan dalam perintah
Initialize-AzDataProtectionBackupInstance. - Kirim permintaan untuk mencadangkan database dengan menggunakan perintah
New-AzDataProtectionBackupInstance.
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQL -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId -SecretStoreURI $keyURI -SecretStoreType AzureKeyVault
ConvertTo-Json -InputObject $instance -Depth 4
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
ossrg-empdb11 Microsoft.DataProtection/backupVaults/backupInstances ossrg-empdb11
Jalankan cadangan sesuai permintaan
Ambil instans cadangan yang relevan di mana Anda perlu memicu pencadangan dengan menggunakan perintah Get-AzDataProtectionBackupInstance.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Anda dapat menentukan aturan retensi saat memicu pencadangan. Untuk melihat aturan retensi dalam kebijakan, telusuri objek kebijakan. Dalam contoh berikut, aturan dengan nama Default ditampilkan. Artikel ini menggunakan contoh aturan tersebut untuk pencadangan sesuai permintaan.
$ossPol.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : OperationalStore
Name : BackupHourly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
Untuk memicu pencadangan sesuai permintaan, gunakan Backup-AzDataProtectionBackupInstanceAdhoc perintah :
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Pantau pekerjaan
Lacak semua pekerjaan dengan menggunakan perintah Get-AzDataProtectionJob. Anda dapat mencantumkan semua pekerjaan dan mengambil detail pekerjaan tertentu.
Anda juga dapat menggunakan Az.ResourceGraph untuk melacak semua tugas di semua Brankas Cadangan. Gunakan perintah Search-AzDataProtectionJobInAzGraph untuk mengambil pekerjaan yang relevan dari semua vault Backup:
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDisk -Operation OnDemandBackup
Konten terkait
- Memulihkan database PostgreSQL menggunakan Azure PowerShell.
- Pulihkan database PostgreSQL menggunakan portal Microsoft Azure, Azure CLI, dan REST API.
- Mengelola server Azure Database for PostgreSQL dengan menggunakan portal Microsoft Azure.