Memulihkan cluster AlloyDB Omni menggunakan pgBackRest

Pilih versi dokumentasi:

Halaman ini menunjukkan cara memulihkan cluster AlloyDB Omni menggunakan cadangan yang dibuat dengan pgBackRest, solusi pencadangan open source yang disertakan dengan AlloyDB Omni.

Karena AlloyDB Omni kompatibel dengan PostgreSQL, perintah dan teknik pemulihan data yang dijelaskan oleh panduan pgBackRest juga berlaku untuk AlloyDB Omni. Halaman ini menunjukkan pilihan tugas pemulihan umum, dengan contoh perintah yang relevan.

Cluster yang mendukung TDE juga mendukung pencadangan dan pemulihan menggunakan pgBackRest. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster yang mendukung TDE.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi pgBackRest agar berfungsi dengan AlloyDB Omni, lihat Menyiapkan pgBackRest untuk AlloyDB Omni.

Untuk informasi berbasis Kubernetes, lihat Mencadangkan dan memulihkan di Kubernetes.

Sebelum memulai

Sebelum memulihkan cluster AlloyDB Omni, pastikan Anda memiliki hal berikut:

  • Ruang disk yang cukup pada sistem file tujuan untuk menyimpan cluster database AlloyDB Omni yang dipulihkan.

  • Versi utama AlloyDB Omni yang sama digunakan untuk instance database pemulihan seperti instance database sumber asli.

    Untuk memeriksa versi PostgreSQL Anda, jalankan perintah berikut:

    Docker

    docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Docker

    docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Podman

    podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Podman

    podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.

    Untuk memeriksa versi pgBackRest Anda, jalankan perintah berikut:

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest version
    

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest version
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest version
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest version
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.

    Jika container target Anda memiliki versi PostgreSQL, pgBackRest, atau keduanya yang berbeda, Anda harus membuat container target baru dengan versi yang cocok. Jika hal ini tidak memungkinkan, Anda harus menggunakan metode alternatif, seperti utilitas pg_dump atau pg_dumpall yang disertakan PostgreSQL untuk menyalin database Anda di berbagai versi.

  • Menghentikan container AlloyDB Omni

    Untuk menyimulasikan cluster database AlloyDB Omni Anda yang tidak tersedia, hentikan container.

    Docker

    docker stop CONTAINER_NAME
    docker rm CONTAINER_NAME

    Docker

    docker stop CONTAINER_NAME
    docker rm CONTAINER_NAME

    Podman

    podman stop CONTAINER_NAME
    podman rm CONTAINER_NAME

    Podman

    podman stop CONTAINER_NAME
    podman rm CONTAINER_NAME

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.

    Membuat container AlloyDB Omni yang tidak digunakan

    Docker

    docker run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest sleep infinity
    

    Docker

    docker run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest sleep infinity
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest sleep infinity
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest sleep infinity
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.
    • DATA_DIR: Jalur direktori host tempat data Anda disimpan.
    • BACKUP_DIR: Jalur direktori eksternal tempat cadangan Anda disimpan.
    • HOST_PORT: Port TCP di mesin host tempat container harus memublikasikan portnya sendiri 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.

    Menghapus direktori data

    Untuk menghapus cluster database AlloyDB Omni Anda, hapus direktori data.

    Docker

    docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
    

    Docker

    docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
    

    Podman

    podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
    

    Podman

    podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.

    Memvalidasi bahwa cadangan Anda terlihat

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    info
    

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    info
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    info
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    info
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.
    • STANZA_NAME: Nama stanza yang Anda buat. Misalnya, my-stanza.

    Memulihkan cadangan Anda

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    restore
    

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    restore
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    restore
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    restore
    

    Ganti variabel berikut:

    * CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1. * STANZA_NAME: Nama stanza yang Anda buat. Misalnya, my-stanza.

    Menghapus container AlloyDB Omni yang tidak digunakan

    Docker

    docker kill CONTAINER_NAME
    docker rm CONTAINER_NAME

    Docker

    docker kill CONTAINER_NAME
    docker rm CONTAINER_NAME

    Podman

    podman kill CONTAINER_NAME
    podman rm CONTAINER_NAME

    Podman

    podman kill CONTAINER_NAME
    podman rm CONTAINER_NAME

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.

    Membuat container AlloyDB Omni

    Docker

    docker run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest
    

    Docker

    docker run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.
    • DATA_DIR: Jalur direktori host tempat data Anda disimpan.
    • BACKUP_DIR: Jalur direktori eksternal tempat cadangan Anda disimpan.
    • HOST_PORT: Port TCP di mesin host tempat container harus memublikasikan portnya sendiri 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.

      Memvalidasi bahwa AlloyDB Omni telah dimulai

      Docker

      docker logs -f CONTAINER_NAME
      

      Docker

      docker logs -f CONTAINER_NAME
      

      Podman

      podman logs -f CONTAINER_NAME
      

      Podman

      podman logs -f CONTAINER_NAME
      

      Ganti variabel berikut:

      • CONTAINER_NAME: Nama yang Anda gunakan untuk container Anda. Misalnya, my-omni-1.

      Opsi lain

      Perintah restore pgBackRest sangat fleksibel, dengan berbagai opsi dan fitur yang dapat Anda kontrol dengan meneruskan opsi command line yang berbeda. Untuk panduan lengkap tentang cara melakukan pemulihan, lihat Memulihkan.