Mencadangkan dan memulihkan data menggunakan RPM Orchestrator

Pilih versi dokumentasi:

Untuk melindungi data Anda, AlloyDB Omni menyediakan pencadangan dan pemulihan data otomatis menggunakan manifes deklaratif. Orchestrator AlloyDB Omni bekerja dengan alloydbctl dan Ansible untuk menerapkan konfigurasi manifes ini dan mengotomatiskan pencadangan ke Cloud Storage, bucket Amazon S3 standar, atau software yang kompatibel dengan S3 seperti MinIO.

Untuk mengaktifkan pencadangan dan pemulihan berkelanjutan AlloyDB Omni, Anda harus membuat rencana pencadangan untuk setiap cluster database. Pencadangan dilakukan berdasarkan jadwal pencadangan yang ditentukan dalam resource BackupPlan. Anda dapat memulihkan menggunakan resource Cadangan atau stempel waktu apa pun dalam periode pemulihan dengan tingkat perincian detik.

AlloyDB Omni mengelola pencadangan dan pemulihan otomatis melalui manifes:

  • BackupPlan: setiap cluster database dapat memiliki satu atau beberapa manifes BackupPlan dengan konfigurasi dan jadwal yang berbeda di seluruh tingkat pencadangan.
  • Backup: memulai pencadangan penuh, diferensial, atau inkremental berdasarkan manifes BackupPlan Anda.
  • Restore: memulai pemulihan di tempat cluster database Anda menggunakan cadangan tertentu atau titik waktu.

Sebelum memulai

Sebelum menyiapkan dan mengonfigurasi rencana pencadangan, pastikan Anda memiliki hal berikut:

  • Lokasi penyimpanan untuk cadangan Anda: AlloyDB Omni menyimpan cadangan di salah satu opsi penyimpanan berikut:

    • Cloud Storage: Bucket Cloud Storage. Untuk mengetahui informasi tentang cara membuat bucket, lihat Membuat bucket.
    • Amazon S3: Bucket Amazon S3. Untuk mengetahui informasi tentang cara membuat bucket S3, lihat Membuat bucket.
    • Penyimpanan yang kompatibel dengan S3: Bucket dalam software yang kompatibel dengan S3, seperti MinIO. Untuk mengetahui informasi tentang cara membuat bucket MinIO, lihat dokumentasi MinIO.
  • Kredensial autentikasi: Jika opsi penyimpanan Anda memerlukan kunci autentikasi seperti Amazon S3, MinIO, atau Cloud Storage dengan akun layanan tertentu, Anda harus membuat resource Secret yang berisi kredensial ini sebelum membuat rencana pencadangan. Untuk mengetahui petunjuknya, lihat Membuat resource Secret untuk mengautentikasi penyimpanan.

Membuat resource Secret untuk mengautentikasi penyimpanan

Jika penyimpanan yang Anda gunakan memerlukan autentikasi, Anda harus membuat resource Secret sebelum membuat rencana pencadangan.

Membuat resource Secret untuk Cloud Storage

  1. Buat akun layanan untuk menambahkan cadangan ke bucket.
  2. Berikan peran Identity and Access Management roles/storage.objectAdmin ke akun layanan di bucket.
  3. Buat kunci akun layanan dalam format JSON.
  4. Enkode konten file kunci JSON yang didownload dalam base64. Jalankan base64 -w 0 atau pastikan teks yang dienkode adalah satu baris berkelanjutan.
  5. Buat manifes resource Secret. Nama kunci di bagian data harus berupa key.json.

    Secret:
      metadata:
        name: SECRET_NAME
      spec:
        type: Opaque
        data:
          key.json: "BASE64_ENCODED_JSON_KEY"
    

    Ganti kode berikut:

    • SECRET_NAME: nama untuk resource Secret Anda.
    • BASE64_ENCODED_JSON_KEY: konten file kunci JSON akun layanan Anda yang dienkode base64.

Membuat resource Secret untuk penyimpanan yang kompatibel dengan S3 atau S3

  1. Enkode ID kunci akses S3 Anda menggunakan base64.
  2. Enkode kunci akses rahasia S3 Anda menggunakan base64.
  3. Buat manifes resource Secret. Nama kunci di bagian data harus berupa access-key-id dan access-key.

    Secret:
      metadata:
        name: SECRET_NAME
      spec:
        type: Opaque
        data:
          access-key-id: "BASE64_ENCODED_ACCESS_KEY_ID"
          access-key: "BASE64_ENCODED_SECRET_ACCESS_KEY"
    

    Ganti kode berikut:

    • SECRET_NAME: nama untuk resource Secret Anda.
    • BASE64_ENCODED_ACCESS_KEY_ID: ID kunci akses S3 berenkode base64.
    • BASE64_ENCODED_SECRET_ACCESS_KEY: kunci akses rahasia S3 berenkode base64.

Terapkan resource Secret

Terapkan manifes resource Secret sebelum Anda menerapkan manifes BackupPlan. Anda dapat menerapkan manifes resource Secret menggunakan salah satu metode berikut:

alloydbctl

Untuk menerapkan manifes resource Secret menggunakan alloydbctl, jalankan perintah berikut:

alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "SECRET_MANIFEST"

Ganti variabel berikut:

  • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.
  • SECRET_MANIFEST: jalur ke manifes resource Secret yang Anda buat.

Ansible

Untuk menerapkan manifes resource Secret menggunakan Ansible, selesaikan langkah-langkah berikut:

  1. Buat playbook untuk manifes resource Secret Anda:

    - name: Create Secret
      hosts: localhost
      become: true
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.backup
    

    Ganti variabel berikut:

    • ANSIBLE_USER: Pengguna OS yang digunakan Ansible untuk login ke node AlloyDB Omni.
    • ANSIBLE_SSH_PRIVATE_KEY_FILE: kunci pribadi yang digunakan Ansible untuk terhubung ke node AlloyDB Omni Anda menggunakan SSH.
  2. Terapkan manifes resource Secret:

    ansible-playbook SECRET_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="SECRET_MANIFEST"

    Ganti variabel berikut:

    • SECRET_PLAYBOOK: jalur ke playbook yang Anda buat untuk manifes resource Secret.
    • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.
    • SECRET_MANIFEST: jalur ke manifes resource Secret yang Anda buat.

Buat rencana cadangan

  1. Buat manifes BackupPlan menggunakan format untuk opsi penyimpanan Anda:

    Cloud Storage

    Kolom gcsOptions wajib diisi.

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            secretRef:
              name: SECRET_NAME
        backupRetainDays: RETAIN_DAYS
        backupSchedules:
          full: "FULL_SCHEDULE"
          differential: "DIFF_SCHEDULE"
          incremental: "INC_SCHEDULE"
    

    Ganti variabel berikut:

    • BACKUP_PLAN_NAME: nama manifes BackupPlan. Misalnya, my-backup-plan-1.

    • DBCLUSTER_NAME: nama cluster database yang Anda tentukan di Membuat cluster.

    • BUCKET_NAME: nama bucket Cloud Storage yang Anda buat.

    • BUCKET_PATH: jalur ke direktori di Cloud Storage tempat cadangan harus ditulis. Anda harus memberikan jalur absolut yang dimulai dengan /. Misalnya, /backups.

    • SECRET_NAME (Opsional): nama resource Secret yang menyimpan kunci autentikasi.

    • RETAIN_DAYS (Opsional): jumlah hari untuk mempertahankan cadangan sebelum cadangan tersebut dihapus secara otomatis.

    • FULL_SCHEDULE (Opsional): ekspresi jadwal cron untuk cadangan penuh. Contoh, 0 2 * * *.

    • DIFF_SCHEDULE (Opsional): ekspresi jadwal cron untuk cadangan diferensial. Contoh, 0 2 * * *.

    • INC_SCHEDULE (Opsional): ekspresi jadwal cron untuk cadangan inkremental. Contoh, 0 2 * * *.

    Amazon S3 atau yang kompatibel dengan S3

    Kolom s3Options wajib diisi.

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: S3
          s3Options:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            endpoint: ENDPOINT_URL
            region: REGION
            secretRef:
              name: SECRET_NAME
        backupRetainDays: RETAIN_DAYS
        backupSchedules:
          full: "FULL_SCHEDULE"
          differential: "DIFF_SCHEDULE"
          incremental: "INC_SCHEDULE"
    

    Ganti variabel berikut:

    • BACKUP_PLAN_NAME: nama manifes BackupPlan. Misalnya, my-backup-plan-1.

    • DBCLUSTER_NAME: nama cluster database yang Anda tentukan di Membuat cluster.

    • BUCKET_NAME: nama bucket S3 yang Anda buat.

    • BUCKET_PATH: jalur ke direktori di bucket S3 tempat cadangan harus ditulis. Anda harus memberikan jalur absolut yang dimulai dengan /. Contoh, /backups.

    • ENDPOINT_URL: URL endpoint kustom untuk terhubung ke software yang kompatibel dengan S3 seperti MinIO. Contoh, http://minio.example.com:9000. Untuk bucket Amazon S3, Anda tidak perlu memberikan URL endpoint apa pun.

    • REGION_ (Opsional): region bucket penyimpanan. Wajib diisi saat terhubung ke bucket Amazon S3 standar atau software yang kompatibel dengan S3 yang menerapkan validasi region.

    • SECRET_NAME: referensi ke resource Secret yang Anda buat sebelumnya, dan yang berisi ACCESS_KEY_ID dan SECRET_ACCESS_KEY Anda.

    • RETAIN_DAYS (Opsional): jumlah hari untuk mempertahankan cadangan sebelum cadangan tersebut dihapus secara otomatis.

    • FULL_SCHEDULE (Opsional): ekspresi jadwal cron untuk cadangan penuh. Contoh, 0 2 * * *.

    • DIFF_SCHEDULE (Opsional): ekspresi jadwal cron untuk cadangan diferensial. Contoh, 0 2 * * *.

    • INC_SCHEDULE (Opsional): ekspresi jadwal cron untuk cadangan inkremental. Contoh, 0 2 * * *.

  2. Terapkan rencana pencadangan menggunakan salah satu metode berikut:

    alloydbctl

    1. Terapkan resource BackupPlan Anda:

      alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"

      Ganti variabel berikut:

      • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

      • BACKUP_PLAN_MANIFEST: jalur ke manifes BackupPlan yang Anda buat sebelumnya.

    2. Pastikan kolom status, status.phase, untuk manifes BackupPlan Anda adalah Ready. Jika manifes belum siap, tunggu hingga siap:

      alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml

    Ansible

    1. Buat playbook untuk manifes BackupPlan Anda:

      - name: BACKUP_PLAN_PLAYBOOK_NAME
        hosts: localhost
        vars:
          ansible_user: ANSIBLE_USER
          ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
        roles:
          - role: google.alloydbomni_orchestrator.backup
      

      Ganti variabel berikut:

      • BACKUP_PLAN_PLAYBOOK_NAME: nama playbook Ansible Anda. Contoh, My BackupPlan. Catat jalur ke playbook karena diperlukan pada langkah berikutnya.

      • ANSIBLE_USER: nama pengguna OS yang digunakan Ansible untuk login ke node AlloyDB Omni.

      • ANSIBLE_SSH_PRIVATE_KEY_FILE: kunci pribadi yang digunakan Ansible untuk terhubung ke node AlloyDB Omni Anda menggunakan SSH.

    2. Terapkan resource BackupPlan Anda:

      ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
        -e resource_spec="BACKUP_PLAN_MANIFEST"

      Ganti variabel berikut:

      • BACKUP_PLAN_PLAYBOOK: jalur ke playbook yang Anda buat untuk manifes BackupPlan sebelumnya.

      • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

      • BACKUP_PLAN_MANIFEST: jalur ke manifes BackupPlan yang Anda buat sebelumnya.

    3. Buat playbook status.yaml jika Anda belum melakukannya. Untuk informasi tentang cara membuat playbook, lihat Melihat status dan mencantumkan resource cadangan.

    4. Pastikan kolom status, status.phase, untuk manifes BackupPlan Anda adalah Ready. Jika manifes belum siap, tunggu hingga siap:

      ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
        -e resource_name=BACKUP_PLAN_NAME

Memperbarui rencana cadangan

Untuk memperbarui rencana cadangan guna mengubah jadwal pencadangan, mengubah periode retensi, atau menjeda pencadangan terjadwal, ubah manifes BackupPlan, lalu terapkan kembali.

  1. Buka manifes BackupPlan yang Anda buat di Buat rencana cadangan.

  2. Ubah kolom yang ingin Anda perbarui.

    • Untuk memperbarui jadwal pencadangan, ubah ekspresi cron di bagian backupSchedules.
    • Untuk memperbarui periode retensi data, ubah backupRetainDays.
    • Untuk menjeda pencadangan terjadwal, tambahkan kolom paused ke bagian spec dan tetapkan ke true. Untuk melanjutkan pencadangan, setel kolom ke false atau hapus kolom.

    Misalnya, contoh berikut mengupdate hari retensi menjadi 30, mengubah jadwal full dan differential, menambahkan jadwal incremental, dan menjeda rencana pencadangan:

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            secretRef:
              name: SECRET_NAME
        backupRetainDays: 30
        backupSchedules:
          full: "0 4 * * *"
          differential: "0 0 * * 0"
          incremental: "0 12 * * *"
        paused: true
    
  3. Terapkan rencana cadangan yang diperbarui menggunakan salah satu metode berikut:

    alloydbctl

    1. Terapkan resource BackupPlan Anda:

      alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"

      Ganti variabel berikut:

      • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

      • BACKUP_PLAN_MANIFEST: jalur ke manifes BackupPlan yang Anda ubah.

    2. Pastikan kolom status, status.phase, untuk manifes BackupPlan Anda adalah Ready. Jika manifes belum siap, tunggu hingga siap:

      alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml

    Ansible

    1. Terapkan resource BackupPlan yang telah diupdate menggunakan playbook yang Anda buat di Membuat rencana cadangan:

      ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
        -e resource_spec="BACKUP_PLAN_MANIFEST"

      Ganti variabel berikut:

      • BACKUP_PLAN_PLAYBOOK: jalur ke playbook yang Anda buat untuk manifes BackupPlan.

      • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

      • BACKUP_PLAN_MANIFEST: jalur ke manifes BackupPlan yang Anda ubah.

    2. Buat playbook status.yaml jika Anda belum melakukannya. Untuk informasi tentang cara membuat playbook, lihat Melihat status dan mencantumkan resource cadangan.

    3. Pastikan kolom status, status.phase, untuk manifes BackupPlan Anda adalah Ready. Jika manifes belum siap, tunggu hingga siap sebelum melakukan verifikasi:

      ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
        -e resource_name=BACKUP_PLAN_NAME

Menghapus rencana cadangan

Untuk menghapus rencana cadangan, gunakan salah satu metode berikut:

alloydbctl

alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME

Ganti variabel berikut:

  • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

  • BACKUP_PLAN_NAME: nama manifes BackupPlan yang akan dihapus.

Ansible

  1. Buat playbook untuk menghapus manifes BackupPlan.

    - name: BACKUP_PLAN_DELETE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.delete
    

    Ganti variabel berikut:

    • BACKUP_PLAN_DELETE_PLAYBOOK_NAME: nama playbook Ansible Anda.

    • ANSIBLE_USER: Pengguna OS yang digunakan Ansible untuk login ke node AlloyDB Omni Anda.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: kunci pribadi yang digunakan Ansible untuk terhubung ke node AlloyDB Omni Anda menggunakan SSH.

  2. Jalankan ansible-playbook untuk menghapus manifes BackupPlan.

    ansible-playbook BACKUP_PLAN_DELETE_PLAYBOOK_NAME -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
      -e resource_name=BACKUP_PLAN_NAME

    Ganti variabel berikut:

    • BACKUP_PLAN_DELETE_PLAYBOOK_NAME: jalur ke playbook yang Anda buat untuk menghapus manifes BackupPlan pada langkah sebelumnya.

    • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

    • BACKUP_PLAN_NAME: nama manifes BackupPlan yang akan dihapus.

Membuat cadangan

Untuk membuat dan memulai pencadangan, gunakan salah satu metode berikut:

alloydbctl

  1. Buat manifes Backup menggunakan format berikut:

    Backup:
      metadata:
        name: BACKUP_NAME
      spec:
        backupPlanRef: BACKUP_PLAN_NAME
        dbclusterRef: DBCLUSTER_NAME
        type: full
    

    Ganti variabel berikut:

    • BACKUP_NAME: nama manifes Backup. Misalnya, my-backup-1.

    • BACKUP_PLAN_NAME: nama manifes BackupPlan yang Anda buat sebelumnya. Contohnya, my-backup-plan-1.

    • DBCLUSTER_NAME: nama cluster database yang Anda tentukan di Membuat cluster.

    • type (Opsional): jenis eksekusi pencadangan yang dapat disetel ke full, diff, atau incr. Nilai defaultnya adalah full.

  2. Terapkan manifes Backup Anda:

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_MANIFEST"

    Ganti variabel berikut:

    • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

    • BACKUP_MANIFEST: jalur ke manifes Backup yang Anda buat sebelumnya.

  3. Pastikan kolom status, status.phase, untuk manifes Backup Anda adalah Succeeded. Jika manifes belum berhasil, tunggu hingga berhasil:

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME -o yaml
  4. Pastikan file cadangan tersedia di bucket Anda dengan memverifikasi apakah folder /backup/db ada.

Ansible

  1. Buat manifes Backup menggunakan format berikut:

    Backup:
      metadata:
        name: BACKUP_NAME
      spec:
        backupPlanRef: BACKUP_PLAN_NAME
        dbclusterRef: DBCLUSTER_NAME
        type: full
    

    Ganti variabel berikut:

    • BACKUP_NAME: nama manifes Backup. Misalnya, my-backup-1.

    • BACKUP_PLAN_NAME: nama manifes BackupPlan yang Anda buat sebelumnya. Contohnya, my-backup-plan-1.

    • DBCLUSTER_NAME: nama cluster database yang Anda tentukan di Membuat cluster.

    • type (Opsional): jenis eksekusi pencadangan yang dapat disetel ke full, diff, atau incr. Nilai defaultnya adalah full.

  2. Buat playbook untuk manifes Backup Anda:

    - name: BACKUP_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.backup
    

    Ganti variabel berikut:

    • BACKUP_PLAYBOOK_NAME: nama playbook Ansible Anda. Contoh, My Backup.

    • ANSIBLE_USER: nama pengguna OS yang digunakan Ansible untuk login ke node AlloyDB Omni Anda.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: kunci pribadi yang digunakan Ansible untuk terhubung ke node AlloyDB Omni Anda menggunakan SSH.

  3. Terapkan manifes Backup Anda:

    ansible-playbook BACKUP_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="BACKUP_MANIFEST"

    Ganti variabel berikut:

    • BACKUP_PLAYBOOK: jalur ke playbook yang Anda buat untuk manifes Backup yang Anda buat sebelumnya.

    • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

    • BACKUP_MANIFEST: jalur ke manifes Backup yang Anda buat sebelumnya.

  4. Buat playbook status.yaml jika Anda belum melakukannya. Untuk informasi tentang cara membuat playbook, lihat Melihat status dan mencantumkan resource cadangan.

  5. Pastikan kolom status, status.phase, untuk manifes Backup Anda adalah Succeeded. Jika manifes belum berhasil, tunggu hingga berhasil sebelum verifikasi:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME
  6. Pastikan file cadangan tersedia di bucket Anda dengan memverifikasi apakah folder /backup/db ada.

Menghapus cadangan

Untuk menghapus cadangan, jalankan salah satu perintah berikut:

alloydbctl

alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME

Ganti variabel berikut:

Ansible

  1. Buat playbook untuk menghapus manifes Backup.

    - name: BACKUP_DELETE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.delete
    

    Ganti variabel berikut:

    • BACKUP_DELETE_PLAYBOOK_NAME: nama playbook Ansible Anda.

    • ANSIBLE_USER: Pengguna OS yang digunakan Ansible untuk login ke node AlloyDB Omni Anda.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: kunci pribadi yang digunakan Ansible untuk terhubung ke node AlloyDB Omni Anda menggunakan SSH.

  2. Jalankan ansible-playbook untuk menghapus manifes Backup.

    ansible-playbook BACKUP_DELETE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME

    Ganti variabel berikut:

    • BACKUP_DELETE_PLAYBOOK: jalur ke playbook yang Anda buat untuk menghapus manifes Backup di langkah sebelumnya.

    • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

    • BACKUP_NAME: nama manifes Backup yang akan dihapus.

Memulihkan dari cadangan atau titik waktu (PITR)

Untuk memulihkan data dari cadangan, terapkan manifes Restore. Pengelola RPM melakukan pemulihan di tempat, yang memodifikasi cluster database target Anda secara langsung tanpa mengaktifkan cluster yang di-clone atau memerlukan eksekusi skrip manual.

Untuk memulihkan dari cadangan, gunakan salah satu metode berikut:

alloydbctl

  1. Buat manifes Restore menggunakan format berikut:

    • Untuk memulihkan dari cadangan bernama tertentu, jalankan:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • Untuk melakukan Pemulihan Point-in-Time (PITR):

      Restore:
        metadata:
          name: RESTORE_NAME
        spec:
          sourceDBCluster: DBCLUSTER_NAME
          pointInTime: "TIMESTAMP"
      

    Ganti variabel berikut:

    • RESTORE_NAME: nama untuk manifes Restore ini. Misalnya, my-restore-1.

    • DBCLUSTER_NAME: nama cluster database target untuk dipulihkan di tempat.

    • BACKUP_NAME: nama manifes Backup yang telah selesai untuk dipulihkan.

    • TIMESTAMP: Stempel waktu RFC 3339 yang mengidentifikasi titik waktu yang tepat untuk dipulihkan. Contoh, 2026-06-19T14:30:00Z.

  2. Terapkan manifes Restore Anda:

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "RESTORE_MANIFEST"

    Ganti variabel berikut:

    • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

    • RESTORE_MANIFEST: jalur ke file spesifikasi manifes Restore yang Anda buat di langkah 1.

  3. Konfirmasi bahwa transisi manifes status.phase untuk Restore Anda ke Succeeded:

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Restore -n RESTORE_NAME -o yaml

Ansible

  1. Buat manifes Restore menggunakan format berikut:

    • Untuk memulihkan dari cadangan bernama tertentu, jalankan:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • Untuk melakukan Pemulihan Point-in-Time (PITR):

      Restore:
        metadata:
          name: RESTORE_NAME
        spec:
          sourceDBCluster: DBCLUSTER_NAME
          pointInTime: "TIMESTAMP"
      

    Ganti variabel berikut:

    • RESTORE_NAME: nama untuk manifes Restore ini. Misalnya, my-restore-1.

    • DBCLUSTER_NAME: nama cluster database target untuk dipulihkan di tempat.

    • BACKUP_NAME: nama manifes Backup yang telah selesai untuk dipulihkan.

    • TIMESTAMP: Stempel waktu RFC 3339 yang mengidentifikasi titik waktu yang tepat untuk dipulihkan. Contoh, 2026-06-19T14:30:00Z.

  2. Buat playbook untuk manifes Restore Anda:

    - name: RESTORE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.restore
    

    Ganti variabel berikut:

    • RESTORE_PLAYBOOK_NAME: nama playbook Ansible Anda.

    • ANSIBLE_USER: Pengguna OS yang digunakan Ansible untuk login ke node AlloyDB Omni Anda.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: kunci pribadi yang digunakan Ansible untuk terhubung ke node AlloyDB Omni Anda menggunakan SSH.

  3. Terapkan manifes Restore Anda:

    ansible-playbook RESTORE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="RESTORE_MANIFEST"

    Ganti variabel berikut:

    • RESTORE_PLAYBOOK: jalur ke playbook yang Anda buat untuk manifes Restore di langkah 2.

    • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment.

    • RESTORE_MANIFEST: jalur ke file spesifikasi manifes Restore yang Anda buat di langkah 1.

  4. Buat playbook status.yaml jika Anda belum melakukannya. Untuk informasi tentang cara membuat playbook, lihat Melihat status dan mencantumkan resource cadangan.

  5. Konfirmasi bahwa transisi manifes status.phase untuk Restore Anda ke Succeeded:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Restore \
      -e resource_name=RESTORE_NAME

Melihat status dan mencantumkan resource cadangan

Untuk melihat status atau mencantumkan resource BackupPlan, Backup, dan Restore, gunakan salah satu metode berikut:

alloydbctl

Untuk mencantumkan semua resource dari jenis tertentu, jalankan perintah alloydbctl get:

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE

Untuk melihat status resource tertentu, jalankan perintah alloydbctl get dengan nama resource dan format output yang ditetapkan ke yaml:

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE -n RESOURCE_NAME -o yaml

Ganti variabel berikut:

  • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment.
  • RESOURCE_TYPE: jenis resource. Tetapkan ini ke BackupPlan, Backup, atau Restore.
  • RESOURCE_NAME: nama resource yang statusnya ingin Anda lihat.

Ansible

Untuk melihat status atau mencantumkan resource menggunakan Ansible, gunakan peran google.alloydbomni_orchestrator.status.

  1. Buat playbook, misalnya status.yaml, menggunakan format berikut:

    - name: Get resource status
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
      - role: google.alloydbomni_orchestrator.status
    

    Ganti variabel berikut:

    • ANSIBLE_USER: Pengguna OS yang digunakan Ansible untuk login ke node Anda.
    • ANSIBLE_SSH_PRIVATE_KEY_FILE: kunci pribadi yang digunakan Ansible untuk terhubung ke node Anda menggunakan SSH.
  2. Jalankan playbook.

    Untuk mencantumkan semua resource dari jenis tertentu, jalankan playbook dengan variabel resource_type:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE

    Untuk melihat status resource tertentu, jalankan playbook dengan variabel resource_type dan resource_name:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE \
      -e resource_name=RESOURCE_NAME

    Ganti variabel berikut:

    • DEPLOYMENT_SPEC_PATH: jalur ke spesifikasi deployment.
    • RESOURCE_TYPE: jenis resource. Tetapkan ini ke BackupPlan, Backup, atau Restore.
    • RESOURCE_NAME: nama resource yang statusnya ingin Anda lihat.

Batasan

  • Jika status BackupPlan menampilkan ConfigurationFailed dengan failed to create stanza (kode keluar 39), Anda dapat melanjutkan rekonsiliasi dengan memberikan peran roles/storage.objectAdmin di bucket dan menerapkan ulang manifes. Anda tidak perlu menghapus BackupPlan.