Alur kerja berikut menjelaskan langkah-langkah cloning:
- Konfigurasi file
pgbackrest.confuntuk mengakses cadangan Cloud Storage. - Gunakan perintah
pgBackRestuntuk memverifikasi bahwa cadangan sumber dapat diakses. - Gunakan perintah
pgBackRestuntuk memulihkan cadangan ke server target.
Sebelum memulai
- Akses ke jalur lengkap bucket Cloud Storage tempat backup cluster database sumber Anda berada. Ini adalah jalur yang sama dengan yang Anda gunakan saat membuat resource
BackupPlanuntuk cluster database sumber. - Cluster database AlloyDB Omni target server tunggal dibuat. Untuk mengetahui informasi selengkapnya tentang cara menginstal AlloyDB Omni di Kubernetes, lihat Menginstal AlloyDB Omni.
- Pastikan Anda login ke database sebagai pengguna
postgres.
Mengonfigurasi file pgBackRest di server target
Konfigurasi file pgBackRest untuk memungkinkan cluster database target mengakses bucket Cloud Storage tempat cadangan sumber berada.
Di server target, buka direktori
alloydb-data.Buat file konfigurasi
pgBackRestuntuk mengakses cadangan yang disimpan di Cloud Storage:$ cat << EOF > /backup/pgbackrest.conf [db] pg1-path=/mnt/disks/pgsql/data-restored pg1-socket-path=/tmp pg1-user=pgbackrest [global] log-path=/obs/pgbackrest log-level-file=info repo1-type=gcs repo1-gcs-bucket=GCS_SOURCE_BACKUP_BUCKET_NAME repo1-path=GCS_SOURCE_BACKUP_BUCKET_PATH repo1-storage-ca-file=/etc/ssl/certs/ca-certificates.crt repo1-retention-full=9999999 repo1-gcs-key-type=autoGanti kode berikut:
- GCS_SOURCE_BACKUP_BUCKET_NAME: nama bucket Cloud Storage
pgBackRestyang Anda buat di cluster database sumber. Ini bukan URL lengkap ke bucket; jangan menambahkan awalangs://ke nama bucket. - GCS_SOURCE_BACKUP_BUCKET_PATH: jalur direktori tempat
AlloyDB Omni Operator menulis cadangan, dalam bucket
Cloud Storage untuk cluster database sumber. Jalur harus absolut, dimulai dengan
/.
repo1-gcs-key-typeditetapkan keautountuk menggunakan akun layanan instance. Untuk mengetahui informasi selengkapnya tentang opsi lainnya, lihat Opsi Jenis Kunci Repositori GCS.- GCS_SOURCE_BACKUP_BUCKET_NAME: nama bucket Cloud Storage
Memverifikasi cadangan sumber di server target
Login ke server target dan jalankan perintah pgBackRest untuk memverifikasi bahwa cadangan cluster database sumber dapat diakses di server target:
Docker
sudo docker exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 infoPodman
sudo podman exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 infoGanti CONTAINER_NAME dengan nama penampung AlloyDB Omni baru—misalnya, my-omni-1.
Berikut adalah contoh respons:
stanza: db
status: ok
cipher: none
db (current)
wal archive min/max (15): 000000010000000000000002/00000001000000000000000D
full backup: 20240213-231400F
timestamp start/stop: 2024-02-13 23:14:00+00 / 2024-02-13 23:17:14+00
wal start/stop: 000000010000000000000003 / 000000010000000000000003
database size: 38.7MB, database backup size: 38.7MB
repo1: backup set size: 4.6MB, backup size: 4.6MB
incr backup: 20240213-231400F_20240214-000001I
timestamp start/stop: 2024-02-14 00:00:01+00 / 2024-02-14 00:00:05+00
wal start/stop: 00000001000000000000000D / 00000001000000000000000D
database size: 38.7MB, database backup size: 488.3KB
repo1: backup set size: 4.6MB, backup size: 84.2KB
backup reference list: 20240213-231400F
Stempel waktu dalam respons digunakan untuk memulihkan cadangan penuh atau memulihkan dari titik waktu dalam periode pemulihan.
Pulihkan cadangan di server target
Setelah Anda mengidentifikasi cadangan atau titik waktu yang ingin dipulihkan, jalankan perintah pgBackRest di server target Anda. Untuk mengetahui informasi selengkapnya
tentang perintah ini, lihat Perintah
Restore.
Berikut beberapa contoh perintah pemulihan pgBackRest:
Memulihkan dari cadangan
pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --set=20240213-231400F --type=immediate --target-action=promote --delta --link-all --log-level-console=infoMemulihkan dari titik waktu
pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --target="2024-01-22 11:27:22" --type=time --target-action=promote --delta --link-all --log-level-console=info
Menyalin data ke server target
Setelah perintah pemulihan berhasil diselesaikan, Anda dapat menyalin data dari direktori sementara /mnt/disks/pgsql/data-restored ke direktori /alloydb-data/data saat ini.
- Di server target, hentikan layanan database:
Docker
docker stop CONTAINER_NAMEPodman
podman stop CONTAINER_NAMEGanti nama direktori data saat ini menjadi nama lain sebagai praktik terbaik:
mv ~/alloydb-data/data ~/alloydb-data/data-oldGanti nama direktori sementara
data-restoredmenjadi direktori data saat ini:mv ~/alloydb-data/data-restored ~/alloydb-data/dataPerbarui nilai
pg1-pathdalam filepostgresql.auto.confuntuk memuat data yang dipulihkan:
vim ~/alloydb-data/data/postgresql.auto.conf
# Verify postgresql.auto.conf.
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
# Recovery settings generated by pgBackRest restore on 2024-03-13 20:47:11
restore_command = 'pgbackrest --config-path=/mnt/disks/pgsql --pg1-path=/mnt/disks/pgsql/data --repo=1 --stanza=db archive-get %f "%p"'
recovery_target = 'immediate'
recovery_target_action = 'promote'
recovery_target_timeline = 'current'Di server target, mulai layanan database:
Docker
docker start CONTAINER_NAMEPodman
podman start CONTAINER_NAME
Setelah layanan database dimulai, Anda dapat terhubung ke instance utama dan menjalankan kueri untuk memverifikasi bahwa data dipulihkan dari cadangan. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan ke AlloyDB Omni di satu server.