Mencadangkan dan memulihkan AlloyDB Omni ke penyimpanan yang kompatibel dengan S3 menggunakan orchestrator RPM

1. Pengantar

Dalam codelab ini, Anda akan mencadangkan cluster ketersediaan tinggi (HA) ke penyimpanan objek yang kompatibel dengan S3 untuk AlloyDB Omni menggunakan orchestrator RPM.

Codelab ini menggunakan cluster dari codelab Men-deploy cluster ketersediaan tinggi AlloyDB Omni di VM GCE menggunakan RPM Orchestrator untuk membuat cluster HA di virtual machine (VM) Compute Engine. Dalam codelab ini, Anda akan menambahkan server penyimpanan objek yang kompatibel dengan S3 di salah satu VM. Anda menggunakan server penyimpanan objek untuk cluster HA guna mencadangkan data ke dan memulihkan cluster dari server.

Cloud Shell terhubung ke VM kontrol. VM kontrol menjalankan Ansible dan MinIO. psql terhubung ke cluster melalui IP virtual VM HAProxy. VM database mengirimkan cadangan ke MinIO di port 9000.

Prasyarat

  • Project Google Cloud yang mengaktifkan penagihan.
  • Peran IAM yang tercantum dalam codelab HA.
  • Pengetahuan dasar tentang perintah Linux dan SQL.

Yang akan Anda pelajari

  • Cara menginstal dan menjalankan server penyimpanan objek yang kompatibel dengan S3 untuk pencadangan.
  • Cara membuat rencana cadangan yang menulis cadangan ke penyimpanan yang kompatibel dengan S3.
  • Cara membuat cadangan on-demand.
  • Cara memulihkan cluster dari cadangan dan ke titik waktu.

Yang Anda butuhkan

2. Penyiapan dan Persyaratan

  1. Pada langkah ini, Anda akan membuat cluster HA menggunakan codelab Men-deploy cluster ketersediaan tinggi AlloyDB Omni di VM GCE menggunakan RPM Orchestrator. Selesaikan langkah-langkah berikut. Jika Anda sudah memiliki cluster dari codelab, lanjutkan ke langkah berikutnya.
  2. Catatan: Jangan jalankan langkah "Bersihkan Resource" pada tahap ini. Anda akan melakukan langkah tersebut di akhir codelab ini.
  3. Kembali ke codelab ini

3. Hubungkan ke cluster dan tambahkan data sampel

Pada langkah ini, Anda akan memuat setelan cluster di VM kontrol. Kemudian, Anda terhubung ke cluster dan menambahkan tabel dengan data sampel.

  1. Jika Anda tidak terhubung ke VM kontrol, hubungkan ke VM tersebut dari Cloud Shell:
    gcloud compute ssh "$CLUSTER-control" --zone="$ZONE" --project="$PROJECT"
    
    Variabel CLUSTER, ZONE, dan PROJECT berasal dari langkah Siapkan VM untuk deployment di codelab Men-deploy cluster ketersediaan tinggi AlloyDB Omni di VM GCE menggunakan RPM Orchestrator. Jika Cloud Shell tidak memiliki variabel ini, tetapkan lagi.
  2. Di VM kontrol, pindah ke direktori utama Anda dan muat variabel lingkungan. Kemudian, tambahkan nama cluster dan pengguna SSH ke file lingkungan:
    cd ~
    source /tmp/cluster.conf
    cat >> ~/.codelab.env <<EOF
    export CLUSTER="$cluster"
    export SSH_USER="$service_account"
    EOF
    source ~/.codelab.env
    env | grep -E '^(CLUSTER|SSH_USER|VIRTUAL_IP)='
    
    Pastikan output menampilkan CLUSTER, SSH_USER, dan VIRTUAL_IP. Catatan: Jika Anda terhubung ke VM kontrol lagi nanti, jalankan cd ~ dan source ~/.codelab.env sebelum melanjutkan.
  3. Tambahkan setelan koneksi ke file lingkungan. Saat perintah read meminta sandi, masukkan sandi pengguna postgres. Anda menetapkan sandi ini di langkah Bootstrap AlloyDB Omni Cluster dalam codelab Deploy AlloyDB Omni cluster ketersediaan tinggi di VM GCE menggunakan RPM Orchestrator
    cat >> ~/.codelab.env <<'EOF'
    export PATH="/usr/pgsql-18/bin:$PATH"
    export PGHOST="$VIRTUAL_IP"
    export PGUSER="postgres"
    EOF
    read -rsp "Password of the postgres user: " PGPASSWORD; echo
    printf 'export PGPASSWORD=%q\n' "$PGPASSWORD" >> ~/.codelab.env
    source ~/.codelab.env
    env | grep -E '^(PGHOST|PGUSER|PGPASSWORD)='
    
  4. Buat tabel dan tambahkan 1.000 baris:
    psql <<'SQL'
    CREATE TABLE public.orders (
      id integer PRIMARY KEY,
      item text NOT NULL,
      created_at timestamptz NOT NULL DEFAULT pg_catalog.now()
    );
    INSERT INTO public.orders (id, item)
    SELECT g, 'item-' || g FROM pg_catalog.generate_series(1, 1000) AS g;
    SQL
    
  5. Menghitung baris:
    psql -c "SELECT pg_catalog.count(*) FROM public.orders;"
    
    Pastikan output menampilkan 1000.

4. Menginstal dan menjalankan penyimpanan objek yang kompatibel dengan S3

Pada langkah ini, Anda akan menulis playbook Ansible yang menginstal server MinIO di VM kontrol. Playbook ini juga membuat bucket dan pengguna untuk cadangan, serta memastikan bahwa VM database dapat terhubung ke MinIO. Jalankan semua perintah dalam langkah ini di VM kontrol.

  1. Di VM kontrol, tambahkan setelan penyimpanan ke file lingkungan. Perintah openssl membuat sandi acak.
    MD=http://metadata.google.internal/computeMetadata/v1/instance
    S3_IP=$(curl -s -H "Metadata-Flavor: Google" "$MD/network-interfaces/0/ip")
    cat >> ~/.codelab.env <<EOF
    export S3_IP="$S3_IP"
    export S3_HOST="$CLUSTER-control"
    export S3_BUCKET="alloydb-backups"
    export S3_REGION="us-east-1"
    export MINIO_ROOT_USER="s3admin"
    export MINIO_ROOT_PASSWORD="$(openssl rand -hex 16)"
    export S3_ACCESS_KEY_ID="alloydb-backup"
    export S3_SECRET_ACCESS_KEY="$(openssl rand -hex 16)"
    export MINIO_URL="https://github.com/minio/minio/releases/download/RELEASE.2024-05-10T01-41-38Z/minio.linux-amd64.RELEASE.2024-05-10T01-41-38Z"
    export MC_URL="https://github.com/minio/mc/releases/download/RELEASE.2024-05-09T17-04-24Z/mc.linux-amd64.RELEASE.2024-05-09T17-04-24Z"
    EOF
    source ~/.codelab.env
    echo "$S3_HOST $S3_IP"
    
    Pastikan output menampilkan nama dan alamat IP internal VM kontrol, misalnya my-cluster-control 10.1.0.2. VM database menggunakan nama host dan alamat IP ini untuk terhubung ke MinIO. Server metadata VM memberikan alamat IP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi metadata VM.Nilai MINIO_URL dan MC_URL adalah URL download server MinIO dan klien MinIO (mc).
  2. Instal koleksi Ansible community.crypto yang diperlukan di VM kontrol:
    ansible-galaxy collection install community.crypto
    
  3. Buat playbook s3_server.yaml:
    cat > s3_server.yaml <<EOF
    - name: Install and run MinIO on the control VM
      hosts: localhost
      connection: local
      become: true
      gather_facts: false
      tasks:
        - name: Create MinIO directories
          ansible.builtin.file:
            path: "{{ item }}"
            state: directory
            mode: "0755"
          loop:
            - /var/lib/minio/data
            - /var/lib/minio/certs
    
        - name: Download MinIO server and client
          ansible.builtin.get_url:
            url: "{{ item.url }}"
            dest: "{{ item.dest }}"
            mode: "0755"
          loop:
            - url: "$MINIO_URL"
              dest: /usr/local/bin/minio
            - url: "$MC_URL"
              dest: /usr/local/bin/mc
    
        - name: Generate MinIO TLS private key
          community.crypto.openssl_privatekey:
            path: /var/lib/minio/certs/private.key
            size: 2048
            mode: "0600"
    
        - name: Generate MinIO certificate signing request
          community.crypto.openssl_csr_pipe:
            privatekey_path: /var/lib/minio/certs/private.key
            common_name: "$S3_HOST"
            subject_alt_name:
              - "DNS:$S3_HOST"
              - "DNS:$S3_BUCKET.$S3_HOST"
              - "DNS:localhost"
              - "IP:127.0.0.1"
              - "IP:$S3_IP"
          register: minio_csr
    
        - name: Generate self-signed MinIO TLS certificate
          community.crypto.x509_certificate:
            path: /var/lib/minio/certs/public.crt
            csr_content: "{{ minio_csr.csr }}"
            privatekey_path: /var/lib/minio/certs/private.key
            provider: selfsigned
            selfsigned_not_after: "+365d"
            mode: "0644"
    
        - name: Create MinIO systemd service unit
          ansible.builtin.copy:
            dest: /etc/systemd/system/minio.service
            mode: "0600"
            content: |
              [Unit]
              Description=MinIO Object Storage
              After=network.target
    
              [Service]
              Environment="MINIO_ROOT_USER=$MINIO_ROOT_USER"
              Environment="MINIO_ROOT_PASSWORD=$MINIO_ROOT_PASSWORD"
              Environment="MINIO_DOMAIN=$S3_HOST"
              ExecStart=/usr/local/bin/minio server /var/lib/minio/data --certs-dir /var/lib/minio/certs
              Restart=on-failure
    
              [Install]
              WantedBy=multi-user.target
    
        - name: Start and enable MinIO service
          ansible.builtin.systemd_service:
            name: minio
            daemon_reload: true
            state: started
            enabled: true
    
        - name: Add storage host names to /etc/hosts on the control VM
          ansible.builtin.lineinfile:
            path: /etc/hosts
            line: "$S3_IP $S3_HOST $S3_BUCKET.$S3_HOST"
            state: present
    
        - name: Wait for MinIO health endpoint
          ansible.builtin.uri:
            url: "https://$S3_HOST:9000/minio/health/live"
            ca_path: /var/lib/minio/certs/public.crt
            status_code: 200
          register: minio_health
          until: minio_health.status == 200
          retries: 6
          delay: 5
    
        - name: Create backup bucket and user in MinIO
          ansible.builtin.command:
            argv: "{{ item }}"
          loop:
            - - /usr/local/bin/mc
              - --insecure
              - alias
              - set
              - s3repo
              - "https://$S3_HOST:9000"
              - "$MINIO_ROOT_USER"
              - "$MINIO_ROOT_PASSWORD"
            - - /usr/local/bin/mc
              - --insecure
              - mb
              - --ignore-existing
              - "s3repo/$S3_BUCKET"
            - - /usr/local/bin/mc
              - --insecure
              - admin
              - user
              - add
              - s3repo
              - "$S3_ACCESS_KEY_ID"
              - "$S3_SECRET_ACCESS_KEY"
            - - /usr/local/bin/mc
              - --insecure
              - admin
              - policy
              - attach
              - s3repo
              - readwrite
              - --user
              - "$S3_ACCESS_KEY_ID"
          become: false
          no_log: true
    
    - name: Configure database VMs for MinIO
      hosts: primary_instance_nodes
      become: true
      gather_facts: false
      vars:
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      tasks:
        - name: Set SELinux to permissive mode
          ansible.builtin.command:
            cmd: setenforce 0
    
        - name: Add storage host names to /etc/hosts
          ansible.builtin.lineinfile:
            path: /etc/hosts
            line: "$S3_IP $S3_HOST $S3_BUCKET.$S3_HOST"
            state: present
    
        - name: Verify storage host resolution
          ansible.builtin.getent:
            database: hosts
            key: "$S3_BUCKET.$S3_HOST"
    
        - name: Verify connection to MinIO
          ansible.builtin.uri:
            url: "https://$S3_HOST:9000/minio/health/live"
            validate_certs: false
            status_code: 200
    EOF
    
    Variabel MINIO_DOMAIN memungkinkan MinIO menerima permintaan gaya virtual host. Pengelola RPM menggunakan pengguna alloydb-backup untuk menulis cadangan. Kebijakan readwrite adalah kebijakan bawaan MinIO.
  4. Jalankan playbook:
    ansible-playbook s3_server.yaml -i deployment_spec.yaml
    
    Verifikasi bahwa output PLAY RECAP menampilkan failed=0 untuk localhost dan untuk setiap VM database.
  5. Pastikan bucket ada:
    mc --insecure ls s3repo
    
    Pastikan output menampilkan bucket alloydb-backups/.

5. Buat rencana cadangan

Rencana pencadangan berisi lokasi penyimpanan, jadwal, dan periode retensi untuk pencadangan cluster. Pada langkah ini, Anda akan membuat rencana pencadangan untuk bucket MinIO.

  1. Di VM kontrol, buat playbook pencadangan dan playbook status. Anda menggunakan playbook pencadangan untuk resource Secret, BackupPlan, dan Backup. Anda menggunakan playbook status untuk menampilkan status resource.
    cat > backup.yaml <<EOF
    - name: Manage AlloyDB Omni backups
      hosts: localhost
      roles:
        - role: google.alloydbomni_orchestrator.backup
    EOF
    cat > status.yaml <<EOF
    - name: Get resource status
      hosts: localhost
      roles:
        - role: google.alloydbomni_orchestrator.status
    EOF
    
  2. Buat resource Secret untuk kredensial S3. Kemudian, terapkan resource:
    S3_KEY_ID_B64=$(printf '%s' "$S3_ACCESS_KEY_ID" | base64 -w 0)
    S3_KEY_B64=$(printf '%s' "$S3_SECRET_ACCESS_KEY" | base64 -w 0)
    cat > s3_secret.yaml <<EOF
    Secret:
      metadata:
        name: s3-backup-secret
      spec:
        type: Opaque
        data:
          access-key-id: "$S3_KEY_ID_B64"
          access-key: "$S3_KEY_B64"
    EOF
    ansible-playbook backup.yaml -i deployment_spec.yaml \
        -e resource_spec=s3_secret.yaml
    
    Nama kunci di bagian data harus berupa access-key-id dan access-key. Anda harus menerapkan resource Secret sebelum menerapkan resource BackupPlan.
  3. Buat resource BackupPlan, lalu terapkan resource:
    cat > backup_plan.yaml <<EOF
    BackupPlan:
      metadata:
        name: s3-backup-plan
      spec:
        dbclusterRef: $CLUSTER
        backupLocation:
          type: S3
          s3Options:
            bucket: $S3_BUCKET
            key: /backups
            endpoint: https://$S3_HOST:9000
            region: $S3_REGION
            secretRef:
              name: s3-backup-secret
            caBundle:
              - |
    $(sed 's/^/            /' /var/lib/minio/certs/public.crt)
    EOF
    ansible-playbook backup.yaml -i deployment_spec.yaml \
        -e resource_spec=backup_plan.yaml
    
    Nilai key adalah jalur untuk cadangan di bucket. Jalur ini harus dimulai dengan garis miring (/). Kolom caBundle berisi sertifikat CA berenkode PEM yang memvalidasi sertifikat server penyimpanan S3.
  4. Pastikan rencana pencadangan sudah siap:
    ansible-playbook status.yaml -i deployment_spec.yaml \
        -e resource_type=BackupPlan -e resource_name=s3-backup-plan
    
    Pastikan kolom phase menampilkan Ready. Jika fase tidak Ready, tunggu satu menit, lalu jalankan kembali perintah.
  5. Saat rencana pencadangan dibuat, orkestrator RPM akan memulai pencadangan penuh awal secara otomatis. Pastikan cadangan awal ini selesai sebelum Anda membuat cadangan on-demand:
    ansible-playbook status.yaml -i deployment_spec.yaml \
        -e resource_type=Backup
    
    Pastikan fase pencadangan awal berhasil.

6. Membuat Pencadangan Sesuai Permintaan

Pada langkah ini, Anda akan membuat cadangan on-demand cluster.

  1. Di VM kontrol, buat resource Backup. Kemudian, terapkan resource:
    cat > create_backup.yaml <<EOF
    Backup:
      metadata:
        name: s3-backup-1
      spec:
        backupPlanRef: s3-backup-plan
        dbclusterRef: $CLUSTER
    EOF
    ansible-playbook backup.yaml -i deployment_spec.yaml \
        -e resource_spec=create_backup.yaml
    
    Kolom backupPlanRef adalah nama rencana pencadangan. Kolom dbclusterRef adalah nama cluster.
  2. Pastikan pencadangan selesai:
    ansible-playbook status.yaml -i deployment_spec.yaml \
        -e resource_type=Backup -e resource_name=s3-backup-1
    
    Pastikan kolom phase menampilkan Succeeded. Jika fase tidak Succeeded, tunggu satu menit, lalu jalankan kembali perintah.
  3. Pastikan file cadangan ada di bucket:
    mc --insecure tree "s3repo/$S3_BUCKET"
    
    Verifikasi bahwa output menampilkan folder backup yang berisi folder db.

7. Memulihkan cluster dari cadangan

Pengelola RPM memulihkan cluster di tempatnya. Pada langkah ini, Anda akan menghapus tabel dan memulihkannya dari cadangan. Kemudian, Anda dapat memulihkan cluster ke titik waktu tertentu secara opsional.

Perhatian: Operasi pemulihan akan menimpa semua data dalam cluster database.

Memulihkan dari cadangan

  1. Di VM kontrol, hapus tabel orders. Kemudian, hitung baris:
    psql -c "DROP TABLE public.orders;"
    psql -c "SELECT pg_catalog.count(*) FROM public.orders;"
    
    Pastikan perintah kedua gagal dengan error. Pesan error menunjukkan bahwa relasi tidak ada. Misalnya, 'ERROR: table "orders" does not exist' (ERROR: tabel "orders" tidak ada)
  2. Buat playbook pemulihan:
    cat > restore.yaml <<EOF
    - name: Restore AlloyDB Omni cluster
      hosts: localhost
      roles:
        - role: google.alloydbomni_orchestrator.restore
    EOF
    
  3. Buat resource Restore untuk cadangan s3-backup-1. Kemudian, terapkan resource:
    cat > restore_backup.yaml <<EOF
    Restore:
      metadata:
        name: s3-restore-1
      spec:
        sourceDBCluster: $CLUSTER
        backup: s3-backup-1
    EOF
    ansible-playbook restore.yaml -i deployment_spec.yaml \
        -e resource_spec=restore_backup.yaml
    
  4. Verifikasi bahwa operasi pemulihan telah selesai:
    ansible-playbook status.yaml -i deployment_spec.yaml \
        -e resource_type=Restore -e resource_name=s3-restore-1
    
    Pastikan kolom phase menampilkan ProvisionSucceeded. Jika fase tidak ProvisionSucceeded, tunggu satu menit, lalu jalankan kembali perintah.
  5. Hitung baris dalam tabel yang dipulihkan:
    psql -c "SELECT pg_catalog.count(*) FROM public.orders;"
    
    Pastikan output menampilkan 1000.

(Opsional) Memulihkan ke titik waktu

Pemulihan point-in-time menggunakan cadangan dan write-ahead log (WAL) yang diarsipkan. Anda dapat memulihkan cluster ke waktu kapan saja dalam periode pemulihan rencana pencadangan.

Aturan untuk waktu target

Anda harus mengikuti semua aturan untuk memilih nilai dan format waktu target:

  • Gunakan format RFC 3339 dalam UTC: YYYY-MM-DDThh:mm:ssZ. Misalnya, 2026-06-19T14:30:00Z adalah 14.30.00 UTC pada 19 Juni 2026. Huruf T memisahkan tanggal dan waktu. Huruf Z menunjukkan UTC.
  • Gunakan waktu di masa lalu.
  • Gunakan waktu setelah nilai begin dari kolom recoveryWindow CRD BackupPlan.

Untuk menampilkan waktu saat ini dalam format RFC 3339, jalankan perintah ini:

date -u +%Y-%m-%dT%H:%M:%SZ

Untuk mengubah waktu lokal ke format ini, tambahkan selisih UTC waktu lokal ke perintah date. Misalnya, perintah berikut mengubah 16:30:00 di 19 June 2026 pada UTC+02:00:

date -u -d "2026-06-19 16:30:00 +0200" +%Y-%m-%dT%H:%M:%SZ

Perintah akan menampilkan 2026-06-19T14:30:00Z.

Memulihkan ke waktu yang direkam

Dalam prosedur ini, Anda akan menambahkan baris ke tabel dan mencatat waktu. Saat merekam waktu, Anda menandai momen saat database benar-benar utuh (memiliki tepat 1.500 baris). Kemudian,Anda menghapus baris dan memulihkan cluster ke waktu yang direkam.

  1. Tambahkan 500 baris ke tabel:
    psql <<'SQL'
    INSERT INTO public.orders (id, item)
    SELECT g, 'item-' || g FROM pg_catalog.generate_series(1001, 1500) AS g;
    SQL
    
  2. Mencatat waktu. Saat ini,tabel memiliki 1.500 baris.
    sleep 5
    PITR_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
    echo "export PITR_TIME=$PITR_TIME" >> ~/.codelab.env
    echo "$PITR_TIME"
    sleep 5
    
    Pastikan output menampilkan waktu dalam format YYYY-MM-DDThh:mm:ssZ, misalnya 2026-10-05T11:16:02Z.
  3. Hapus baris dari tabel untuk menyimulasikan penghapusan data yang tidak disengaja. Kemudian, mulai file WAL baru:
    psql -c "DELETE FROM public.orders WHERE id > 1000;"
    psql -c "SELECT pg_catalog.count(*) FROM public.orders;"
    psql -c "SELECT pg_catalog.pg_switch_wal();"
    
    Pastikan kueri count menampilkan 1000. Fungsi pg_switch_wal membuat server memulai file WAL baru. Kemudian, server dapat mengarsipkan file WAL yang berisi perubahan Anda.
  4. Pastikan periode pemulihan paket pencadangan berisi waktu yang direkam:
    test -n "$PITR_TIME" || { echo "PITR_TIME is not set. Run step 2 again."; exit 1; }
    echo "$PITR_TIME"
    ansible-playbook status.yaml -i deployment_spec.yaml \
        -e resource_type=BackupPlan -e resource_name=s3-backup-plan
    
    Verifikasi bahwa nilai PITR_TIME berada setelah nilai begin kolom recoveryWindow.
  5. Buat resource Restore untuk waktu yang direkam. Kemudian, terapkan resource:
    cat > restore_pitr.yaml <<EOF
    Restore:
      metadata:
        name: s3-restore-pitr
      spec:
        sourceDBCluster: $CLUSTER
        pointInTime: "$PITR_TIME"
    EOF
    ansible-playbook restore.yaml -i deployment_spec.yaml \
        -e resource_spec=restore_pitr.yaml
    
  6. Verifikasi bahwa operasi pemulihan telah selesai:
    ansible-playbook status.yaml -i deployment_spec.yaml \
        -e resource_type=Restore -e resource_name=s3-restore-pitr
    
    Pastikan kolom phase menampilkan ProvisionSucceeded. Jika fase tidak ProvisionSucceeded, tunggu satu menit, lalu jalankan kembali perintah.
  7. Menghitung baris:
    psql -c "SELECT pg_catalog.count(*) FROM public.orders;"
    
    Pastikan output menampilkan 1500.

8. Pembersihan

Untuk mencegah tagihan ke akun Google Cloud Anda, hapus resource codelab ini dan codelab Deploy AlloyDB Omni cluster ketersediaan tinggi di VM GCE menggunakan RPM Orchestrator. Pertama, hapus resource cadangan, lalu hapus cluster dan lingkungan komputasi.

  1. Di VM kontrol, buat playbook penghapusan:
    cat > delete.yaml <<EOF
    - name: Delete AlloyDB Omni resources
      hosts: localhost
      roles:
        - role: google.alloydbomni_orchestrator.delete
    EOF
    
  2. Mencantumkan cadangan:
    ansible-playbook status.yaml -i deployment_spec.yaml -e resource_type=Backup
    
    Verifikasi bahwa output menampilkan cadangan s3-backup-1.
  3. Menghapus cadangan s3-backup-1:
    ansible-playbook delete.yaml -i deployment_spec.yaml \
        -e resource_type=Backup -e resource_name=s3-backup-1
    
  4. Menghapus paket pencadangan:
    ansible-playbook delete.yaml -i deployment_spec.yaml \
        -e resource_type=BackupPlan -e resource_name=s3-backup-plan
    
  5. Hapus cluster dan lingkungan komputasi menggunakan langkah Clean up Resources dari codelab Deploy AlloyDB Omni cluster ketersediaan tinggi di GCE VM menggunakan RPM Orchestrator. Server MinIO dan cadangan di dalamnya ada di VM kontrol. Jika Anda menghapus lingkungan komputasi, Anda akan menghapus server dan cadangannya.

9. Selamat

Selamat. Anda mencadangkan cluster ketersediaan tinggi (HA) ke penyimpanan objek yang kompatibel dengan S3 untuk AlloyDB Omni menggunakan orchestrator RPM. Kemudian, Anda memulihkan cluster dari cadangan.

Yang telah kita bahas

  • Cara menginstal dan menjalankan MinIO sebagai penyimpanan objek yang kompatibel dengan S3.
  • Cara membuat rencana pencadangan dan pencadangan on-demand.
  • Cara memulihkan cluster dari cadangan dan ke titik waktu.

Untuk informasi lebih lanjut, lihat halaman berikut:

10. Survei

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membaca dan menyelesaikan latihannya