Halaman ini menunjukkan cara meng-clone cluster database di satu server menggunakan cadangan Cloud Storage.
Alur kerja berikut menjelaskan langkah-langkah cloning:
- Konfigurasikan file
pgbackrest.conf
untuk mengakses cadangan Cloud Storage. - Gunakan perintah
pgBackRest
untuk memverifikasi bahwa cadangan sumber dapat diakses. - Gunakan perintah
pgBackRest
untuk memulihkan cadangan ke server target.
Sebelum memulai
- Akses ke jalur lengkap bucket Cloud Storage tempat cadangan cluster database sumber Anda berada. Ini adalah jalur yang sama dengan yang Anda gunakan saat membuat resource
BackupPlan
untuk cluster database sumber. - Cluster database AlloyDB Omni target server tunggal dibuat. Untuk 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
Konfigurasikan 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
pgBackRest
untuk 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=auto
Ganti kode berikut:
- GCS_SOURCE_BACKUP_BUCKET_NAME: nama bucket
pgBackRest
Cloud Storage yang Anda buat di cluster database sumber. Ini bukan URL lengkap ke bucket; jangan beri awalan nama bucket dengangs://
. - GCS_SOURCE_BACKUP_BUCKET_PATH: jalur direktori tempat
operator AlloyDB Omni menulis cadangan, dalam
bucket Cloud Storage untuk cluster database sumber. Jalur
harus absolut, dimulai dengan
/
.
repo1-gcs-key-type
ditetapkan keauto
untuk menggunakan akun layanan instance. Untuk informasi selengkapnya tentang opsi lainnya, lihat Opsi Jenis Kunci Repositori GCS.- GCS_SOURCE_BACKUP_BUCKET_NAME: nama bucket
Memverifikasi pencadangan 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 info
Podman
sudo podman exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 info
Ganti 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 lengkap atau memulihkan dari titik waktu dari periode pemulihan.
Memulihkan cadangan di server target
Setelah Anda mengidentifikasi cadangan atau titik waktu yang ingin Anda pulihkan, jalankan perintah pgBackRest
di server target. Untuk informasi selengkapnya
tentang perintah ini, lihat Perintah
Pemulihan.
Berikut adalah 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=info
Memulihkan 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_NAME
Podman
podman stop CONTAINER_NAME
Ganti nama direktori data saat ini menjadi nama lain sebagai praktik terbaik:
mv ~/alloydb-data/data ~/alloydb-data/data-old
Ganti nama direktori sementara
data-restored
menjadi direktori data saat ini:mv ~/alloydb-data/data-restored ~/alloydb-data/data
Perbarui nilai
pg1-path
dalam filepostgresql.auto.conf
untuk 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_NAME
Podman
podman start CONTAINER_NAME
Setelah layanan database dimulai, Anda dapat terhubung ke instance utama dan menjalankan kueri untuk memverifikasi bahwa data dipulihkan dari pencadangan. Untuk informasi selengkapnya, lihat Menghubungkan ke AlloyDB Omni di satu server.