Memulihkan cluster AlloyDB Omni menggunakan pgBackRest

Halaman ini menunjukkan cara memulihkan cluster AlloyDB Omni menggunakan cadangan yang dibuat dengan pgBackRest, solusi pencadangan open source yang disertakan dengan penampung 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.

Untuk 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:

  • Siapkan dan konfigurasikan pgBackRest untuk instance AlloyDB Omni Anda.

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

  • Versi utama AlloyDB Omni yang sama digunakan untuk penampung pemulihan sebagai penampung sumber asli.

    Untuk memeriksa versi PostgreSQL, 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 penampung. Contoh, my-omni-1.

    Untuk memeriksa versi pgBackRest, 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 penampung. Contoh, my-omni-1.

    Jika penampung target Anda memiliki versi PostgreSQL, pgBackRest, atau keduanya yang berbeda, Anda harus membuat penampung target baru dengan versi yang cocok. Jika tidak memungkinkan, Anda harus menggunakan metode alternatif, seperti utilitas pg_dump atau pg_dumpall yang disertakan PostgreSQL untuk menyalin database di seluruh versi. Untuk mengetahui informasi selengkapnya, lihat Mengekspor file DMP.

Menghentikan penampung AlloyDB Omni

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

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 penampung. Contoh, my-omni-1.

Membuat penampung AlloyDB Omni yang tidak ada aktivitas

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 penampung. Contoh, 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 penampung harus memublikasikan port 5432-nya sendiri. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.

Menghapus direktori data

Untuk menghapus cluster database AlloyDB Omni, 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 penampung. Contoh, 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 penampung. Contoh, my-omni-1.
  • STANZA_NAME: Nama stanza yang Anda buat. Contoh, my-stanza.

Memulihkan cadangan

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 penampung. Contoh, my-omni-1.
  • STANZA_NAME: Nama stanza yang Anda buat. Contoh, my-stanza.

Menghapus penampung AlloyDB Omni yang tidak ada aktivitas

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 penampung. Contoh, my-omni-1.

Membuat penampung 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 penampung. Contoh, 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 penampung harus memublikasikan port 5432-nya sendiri. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.

Memvalidasi bahwa AlloyDB Omni 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 penampung. Contoh, my-omni-1.

Opsi lain

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