Mencadangkan instance Cloud SQL ke vault cadangan

Halaman ini menjelaskan cara mencadangkan instance Cloud SQL ke vault cadangan, yang memberikan keabadian dan retensi yang diterapkan.

Di konsol Google Cloud , Anda dapat mencadangkan instance Cloud SQL ke brankas cadangan dengan menerapkan rencana pencadangan. Anda dapat mencadangkan dengan salah satu dari dua cara ini. Kedua metode ini memungkinkan Anda menyimpan cadangan dengan aman di vault cadangan, sehingga memberikan cara yang andal untuk memulihkan instance Cloud SQL jika terjadi kehilangan data atau peristiwa tak terduga lainnya.

  • Pencadangan terjadwal: mencadangkan instance Cloud SQL secara otomatis pada interval tertentu, seperti harian, mingguan, bulanan, atau tahunan.
  • Pencadangan on-demand. Anda dapat membuat pencadangan on-demand kapan pun diperlukan. Pencadangan on-demand berguna untuk membuat cadangan sebelum melakukan perubahan signifikan pada database Anda atau untuk perlindungan data ad hoc.

Sebelum memulai

  1. Aktifkan Backup and DR API di tempat instance Cloud SQL berada.

    Mengaktifkan API

  2. Membuat vault cadangan.

  3. Membuat rencana cadangan.

  4. Menetapkan peran dan izin IAM kepada pengguna cadangan.

  5. Memberikan akses vault cadangan di project Cloud SQL.

  6. Siapkan Observability Analytics di bucket Anda untuk memantau tugas pencadangan Backup and DR.

  7. Untuk instance yang mendukung CMEK: jika instance Cloud SQL sumber dilindungi dengan kunci enkripsi yang dikelola pelanggan (CMEK), Anda harus memberikan peran Identity and Access Management roles/cloudkms.cryptoKeyEncrypterDecrypter kepada agen layanan Backup and DR. Izin ini diperlukan pada kunci Cloud Key Management Service yang digunakan oleh instance Cloud SQL sumber.

    Agen layanan Backup and DR Service berada dalam project tempat vault cadangan berada. Berikan peran ini ke akun layanan sebelum mencoba melindungi instance Cloud SQL yang mendukung CMEK.

Peran dan izin IAM untuk pengguna cadangan

Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi pencadangan terjadwal atau menjalankan pencadangan on-demand, minta administrator untuk memberi Anda peran IAM berikut pada project brankas cadangan:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengonfigurasi pencadangan terjadwal atau menjalankan pencadangan on-demand. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengonfigurasi pencadangan terjadwal atau menjalankan pencadangan on-demand:

  • backupdr.backupPlans.list
  • backupdr.backupPlanAssociations.createForCloudSqlInstance
  • backupdr.backupPlanAssociations.fetchForCloudSqlInstance
  • backupdr.backupPlanAssociations.updateForCloudSqlInstance
  • backupdr.backupPlanAssociations.list
  • backupdr.backupPlanAssociations.getForCloudSqlInstance
  • backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance
  • backupdr.backupPlanAssociations.deleteForCloudSqlInstance
  • backupdr.backupPlans.useForCloudSqlInstance
  • backupdr.locations.list
  • backupdr.operations.get
  • cloudasset.assets.searchAllResources

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Izin dinamis yang diperlukan untuk setiap panggilan API

Tabel berikut mencantumkan izin dinamis yang diperlukan untuk setiap panggilan API:

Resource Tindakan yang akan dilakukan pada resource Izin yang diperlukan untuk setiap panggilan API Project yang akan diberi izin
Vault cadangan Membuat vault cadangan backupdr.backupVaults.create Project admin
Menghapus vault cadangan backupdr.backupVaults.delete Project admin
Memperbarui vault cadangan backupdr.backupVaults.update Project admin
Mencantumkan vault cadangan backupdr.backupVaults.list Project admin
Mendapatkan vault cadangan backupdr.backupVaults.get Project admin
Rencana cadangan Buat rencana cadangan backupdr.backupPlans.create Project admin
Menghapus rencana pencadangan backupdr.backupPlans.delete Project admin
Mendapatkan rencana pencadangan backupdr.backupPlans.get Project admin
Mencantumkan rencana pencadangan backupdr.backupPlans.list Project admin
Memperbarui rencana pencadangan backupdr.backupPlans.update Project admin
Mendapatkan revisi rencana pencadangan backupdr.backupPlanRevisions.get Project admin
Mencantumkan revisi rencana pencadangan backupdr.backupPlanRevisions.list Project admin
Membuat revisi rencana pencadangan backupdrproducer.backupPlanRevisions.create Project admin
Menghapus revisi paket pencadangan backupdrproducer.backupPlanRevisions.delete Project admin
Pengaitan rencana pencadangan Membuat pengaitan rencana pencadangan cloudsql.instances.updateBackupDrConfig
backupdr.backupPlanAssociations.createForCloudSqlInstance
backupdr.backupPlans.useForCloudSqlInstance
Project workload
Project workload
Project admin
Menghapus pengaitan paket pencadangan backupdr.backupPlanAssociations.deleteForCloudSqlInstance
cloudsql.instances.updateBackupDrConfig
Project workload
Project workload
Memicu pencadangan on-demand pada pengaitan rencana pencadangan backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance Project workload
Mendapatkan pengaitan rencana pencadangan backupdr.backupPlanAssociations.getForCloudSqlInstance Project workload
Mencantumkan pengaitan rencana pencadangan backupdr.backupPlanAssociations.list Project workload
Mengambil pengaitan rencana pencadangan backupdr.backupPlanAssociations.fetchForCloudSqlInstance Project workload
Mengubah pengaitan rencana pencadangan backupdr.backupPlanAssociations.updateForCloudSqlInstance Project workload
Sumber data Mendapatkan sumber data backupdr.bvdataSources.get Project admin
Mencantumkan sumber data backupdr.backupPlanAssociations.list Project admin
Pemulihan point-in-time backupdr.bvdataSources.useReadOnlyForCloudSqlInstance Project admin
Cadangan Mendapatkan cadangan backupdr.bvbackups.get Project admin
Mencantumkan cadangan backupdr.bvbackups.list Project admin
Mengambil cadangan backupdr.bvbackups.fetchForCloudSqlInstance Project admin
Menghapus cadangan backupdr.bvbackups.delete Project admin
Memulihkan cadangan backupdr.bvbackups.useReadOnlyForCloudSqlInstance Project admin
Referensi sumber data Mendapatkan referensi sumber data backupdr.dataSourceReferences.getForCloudSqlInstance Project workload
Mencantumkan referensi sumber data backupdr.dataSourceReferences.list Project workload
Mengambil referensi sumber data backupdr.dataSourceReferences.fetchForCloudSqlInstance Project workload
Operasi Mencantumkan operasi backupdr.operations.list Project masing-masing
Mendapatkan operasi backupdr.operations.get Project masing-masing

Memberikan akses vault cadangan di project Cloud SQL

Untuk mencadangkan instance Cloud SQL di project yang berbeda dengan tempat pembuatan vault cadangan, Anda harus memberikan peran IAM Backup and DR Cloud SQL Operator (roles/backupdr.cloudSqlOperator) ke agen layanan vault cadangan dalam project Cloud SQL. Jika project vault cadangan tempat cadangan akan disimpan berbeda dengan project Cloud SQL, tetapkan peran ke agen layanan vault cadangan dalam project Cloud SQL.

Untuk mencadangkan instance Cloud SQL dalam project yang sama tempat vault cadangan dibuat, tidak ada peran yang perlu diberikan.

Untuk mengetahui informasi tentang cara memberikan peran kepada agen layanan vault cadangan dalam project yang ingin Anda cadangkan, lihat Memberikan peran kepada agen layanan.

Mengonfigurasi pencadangan terjadwal

Gunakan petunjuk berikut untuk mengonfigurasi pencadangan terjadwal untuk instance Cloud SQL.

Konsol

  1. Di konsol Google Cloud , buka halaman Vaulted backups.

    Buka Vaulted backups

  2. Klik Schedule backup.

  3. Dari daftar Resource Type, pilih Cloud SQL.

  4. Dari daftar Project, pilih project tempat instance Cloud SQL berada.

  5. Dari daftar Region, pilih region tempat instance Anda berada.

  6. Dari daftar Fasilitas, klik Jelajahi. Pilih instance Cloud SQL yang ingin Anda cadangkan, lalu klik Done.

  7. Klik Lanjutkan.

  8. Dari daftar Backup plan, klik Select.

  9. Pilih rencana pencadangan yang ingin Anda gunakan untuk melindungi instance Cloud SQL.

  10. Klik Done.

  11. Tinjau detail pencadangan, lalu klik Schedule.

gcloud

  1. Buat rencana cadangan dan instance Cloud SQL.

  2. Konfigurasikan pencadangan terjadwal menggunakan perintah gcloud backup-dr backup-plan-associations create:

      gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \
          --location=CSQL_REGION \
          --project=CSQL_PROJECT_ID \
          --resource=projects/CSQL_PROJECT_ID/instances/CSQL_INSTANCE_ID \
          --resource-type=sqladmin.googleapis.com/Instance \
          --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN
    

    Ganti kode berikut:

    • BACKUP_PLAN_ASSOCIATION_NAME: nama pengaitan rencana pencadangan.

    • CSQL_REGION: region tempat instance Cloud SQL berada.

    • CSQL_PROJECT_ID: nama project tempat instance Cloud SQL berada.

    • CSQL_INSTANCE_ID: ID instance Cloud SQL.

    • PROJECT_ID: nama project tempat rencana pencadangan berada.

    • LOCATION: lokasi instance.

    • BACKUP_PLAN: nama rencana cadangan.

Terraform

Anda dapat menggunakan resource Terraform untuk mengonfigurasi pencadangan terjadwal.


# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
# and Cloud SQL Instance (google_sql_database_instance).
resource "google_backup_dr_backup_plan_association" "csql_association" {
  provider                   = google-beta
  location                   = "us-central1"
  backup_plan_association_id = "my-csql-bpa"
  resource                   = "projects/${google_sql_database_instance.default.project}/instances/${google_sql_database_instance.default.name}"
  resource_type              = "sqladmin.googleapis.com/Instance"
  backup_plan                = google_backup_dr_backup_plan.csql_default.name
}

Mengubah paket cadangan terkait untuk instance Cloud SQL

Anda dapat menukar rencana pencadangan yang diterapkan ke instance Cloud SQL dengan rencana pencadangan lain. Paket cadangan yang ingin Anda gunakan harus memenuhi kriteria berikut:

  • Paket pencadangan berada di vault cadangan yang sama.

  • Paket pencadangan berada di region yang sama dengan instance Cloud SQL.

Gunakan petunjuk berikut untuk mengubah rencana pencadangan yang terkait dengan instance Cloud SQL.

Konsol

  1. Di konsol Google Cloud , buka halaman Vaulted backups Backup and DR.

    Buka Vaulted backups

    Halaman Cadangan yang disimpan hanya mencantumkan instance yang memiliki (atau sebelumnya memiliki) rencana cadangan yang diterapkan atau cadangannya disimpan di brankas cadangan dalam project.

  2. Pilih sumber data yang akan mendapatkan paket berbeda. Dari halaman detail cadangan untuk cadangan, atau dari menu , pilih Change backup plan. Jendela Select a backup plan hanya mencantumkan rencana pencadangan yang valid untuk instance ini.

  3. Pilih rencana pencadangan, lalu klik Terapkan.

gcloud

  • Mengubah rencana pencadangan yang ditetapkan.

      gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \
      --workload-project=INSTANCE_PROJECT_ID \
      --location=INSTANCE_REGION \
      --backup-plan=BACKUP_PLAN \
      --project=SELECTED_BACKUP_PLAN_PROJECT_ID
    

    Ganti kode berikut:

    • BACKUP_PLAN_ASSOCIATION_NAME: nama resource pengaitan rencana pencadangan.

    • INSTANCE_PROJECT_ID: project ID instance Cloud SQL.

    • INSTANCE_REGION: lokasi instance Cloud SQL.

    • BACKUP_PLAN: nama rencana cadangan yang ingin Anda gunakan.

    • SELECTED_BACKUP_PLAN_PROJECT_ID: project ID dari rencana pencadangan yang dipilih.

Mencantumkan instance yang pencadangannya dijadwalkan

Gunakan petunjuk berikut untuk mencantumkan instance Cloud SQL yang pencadangannya dijadwalkan.

Konsol

  1. Di konsol Google Cloud , buka halaman Vaulted backups.

    Buka Vaulted backups

  2. Di bagian atas tabel, pilih Filter table > Resource type. Pilih Cloud SQL. Tindakan ini membatasi tampilan hanya untuk instance Cloud SQL yang memiliki paket cadangan yang diterapkan dan cadangannya disimpan di vault cadangan dalam project.

gcloud

Cantumkan instance Cloud SQL yang pencadangannya dijadwalkan menggunakan perintah gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type:

  gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type sqladmin.googleapis.com/Instance \
  --location=LOCATION \
  --project=PROJECT_ID

Ganti kode berikut:

  • LOCATION: lokasi pencadangan terjadwal.

  • PROJECT_ID: nama project tempat instance Cloud SQL berada.

Pencadangan sesuai permintaan

Anda dapat memulai pencadangan on-demand untuk instance Cloud SQL dengan rencana pencadangan dengan memicu aturan pencadangan pilihan Anda untuk segera dijalankan. Pencadangan sesuai permintaan biasanya hanya mencakup data yang berubah sejak pencadangan inkremental terakhir.

Saat membuat cadangan on-demand, Anda dapat memilih aturan dari rencana cadangan yang terkait dengan instance Cloud SQL. Aturan ini menentukan kapan cadangan on-demand dihapus. Anda dapat memeriksa status tugas pencadangan dari halaman Jobs. Untuk mengetahui informasi selengkapnya, lihat Memantau tugas pencadangan dan pemulihan di konsol Google Cloud .

Membuat Pencadangan Sesuai Permintaan

Gunakan petunjuk berikut untuk membuat cadangan on-demand.

Konsol

  1. Di konsol Google Cloud , buka halaman Vaulted backups.

    Buka Vaulted backups

    Halaman Vaulted backups hanya mencantumkan resource data yang memiliki rencana pencadangan yang diterapkan dan cadangannya disimpan di vault cadangan dalam project.

  2. Pilih resource yang akan dicadangkan. Dari menu , atau dari halaman detail untuk resource, pilih Create on-demand backup.

  3. Di jendela Create an on-demand backup, pilih aturan pencadangan yang akan digunakan, lalu klik Create.

  4. Untuk melihat status tugas pencadangan on-demand, klik Notifications.

gcloud

  1. Membuat pencadangan on-demand. Memulai pencadangan on-demand menggunakan pengaitan rencana pencadangan yang ada. Tentukan ID aturan untuk menentukan masa berlaku untuk satu pencadangan on demand ini:

    gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
    --backup-rule-id=RULE_ID \
    --project=PROJECT_ID \
    --location=LOCATION \
    [--no-async]
    

    Ganti kode berikut:

    • BACKUP_PLAN_ASSOCIATION_NAME: nama pengaitan rencana pencadangan.

    • RULE_ID: nama aturan pencadangan yang ingin Anda kaitkan untuk menjalankan pencadangan on-demand.

    • PROJECT_ID: nama project.

    • LOCATION: lokasi pencadangan terjadwal.

Menghapus perlindungan dari instance Cloud SQL

Anda dapat menghapus perlindungan dari instance Cloud SQL dengan menghapus rencana cadangan yang diterapkan ke instance. Menghapus rencana pencadangan dari instance Cloud SQL tidak akan menghapus cadangan yang dibuat saat rencana pencadangan digunakan. Anda masih dapat mengakses dan mengelola cadangan yang ada ini hingga masa berlakunya habis.

Gunakan petunjuk berikut untuk menghapus perlindungan dari instance Cloud SQL:

Konsol

  1. Di konsol Google Cloud , buka halaman Vaulted backups.

    Buka Vaulted backups

  2. Klik nama database yang ingin Anda hapus rencana pencadangannya.

  3. Pilih Remove backup plan.

gcloud

Membatalkan perlindungan instance Cloud SQL.

  gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
  --project=PROJECT_ID \
  --location=LOCATION

Ganti kode berikut:

  • BACKUP_PLAN_ASSOCIATION_NAME: nama pengaitan rencana cadangan yang ingin Anda hapus.

  • PROJECT_ID: nama project.

  • LOCATION: lokasi pencadangan terjadwal.

Batasan

Untuk instance Cloud SQL yang dienkripsi dengan CMEK, Backup and DR secara proaktif memvalidasi izin. Jika agen layanan Backup and DR dari project vault cadangan tidak memiliki peran roles/cloudkms.cryptoKeyEncrypterDecrypter yang diperlukan pada kunci KMS instance sumber, pembuatan pengaitan rencana cadangan akan gagal. Pastikan izin IAM yang diperlukan sudah ada sebelum mengaitkan rencana pencadangan.

Langkah berikutnya