1. Pengantar
Codelab ini menunjukkan cara mengonfigurasi pgBackRest untuk mencadangkan dan memulihkan deployment RPM AlloyDB Omni menggunakan penyimpanan objek yang kompatibel dengan S3.
Catatan: Dalam codelab ini, Anda akan men-deploy biner MinIO mandiri di VM untuk bertindak sebagai endpoint penyimpanan yang kompatibel dengan S3, ringan, dan lokal untuk tujuan tutorial dan pengujian. Untuk workload produksi, selalu gunakan solusi penyimpanan yang kompatibel dengan S3 atau penyimpanan objek cloud yang didukung dan dipertahankan secara aktif.
Prasyarat
- Akses ke Project Google Cloud dan Cloud Shell dari Konsol Cloud.
- Google Cloud SDK (
gcloud) diinstal dan dikonfigurasi.
Yang akan Anda pelajari
- Cara menyiapkan VM Compute Engine untuk RPM AlloyDB Omni.
- Cara menyiapkan server penyimpanan objek yang kompatibel dengan S3 lokal di VM.
- Cara mengonfigurasi pgBackRest untuk menggunakan penyimpanan objek yang kompatibel dengan S3 sebagai repositori cadangan.
- Cara melakukan, mencantumkan, dan memverifikasi cadangan.
- Cara memulihkan data dari cadangan.
Yang Anda butuhkan
- Dapatkan link URL ke RPM AlloyDB Omni. Link dikirim ke email Anda yang mencakup server URL repositori. Lakukan inisialisasi variabel lingkungan berikut agar URL siap digunakan selama codelab.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - Terminal yang berfungsi dengan akses ke Google Cloud. Anda dapat menggunakan Cloud Shell untuk tujuan ini.
2. Penyiapan dan Persyaratan
Penyiapan project
Buat Project Google Cloud
- Di Konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
Mulai Cloud Shell
Meskipun Anda dapat mengoperasikan Google Cloud dari jarak jauh menggunakan laptop, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di cloud.

- Buka Konsol Google Cloud, lalu klik ikon Cloud Shell di toolbar kanan atas.Anda juga dapat membuka Cloud Shell dengan salah satu cara berikut:
- Jika Anda menggunakan Konsol Google Cloud, tekan G, lalu S.
- Klik link ini.
Biasanya, perlu waktu beberapa saat untuk menyediakan dan terhubung ke lingkungan. Setelah operasi ini selesai, Anda akan melihat sesuatu yang mirip dengan berikut ini:
{: width="624"}
3. Membuat VM Compute Engine
Di bagian ini, Anda akan membuat satu virtual machine (VM) Compute Engine (GCE) menggunakan alat command line gcloud. Anda menggunakan image Rocky Linux 9, yang sepenuhnya kompatibel dengan RPM AlloyDB Omni.
- Tentukan variabel lingkungan untuk project ID, nama VM, jenis mesin, zona, dan region Anda.
export PROJECT="your-project-id" export INSTANCE_NAME="alloydb-omni-pgbackrest" export MACHINE_TYPE="e2-standard-4" export ZONE="us-central1-c" export REGION="us-central1" - Login menggunakan pengguna akun Google Cloud Anda, dan konfigurasi project default.
gcloud auth login gcloud config set project $PROJECT - Buat aturan firewall untuk mengizinkan koneksi SSH ke VM Anda.
gcloud compute firewall-rules create allow-ssh-alloydb-omni \ --project=$PROJECT \ --direction=INGRESS \ --action=allow \ --rules=tcp:22 \ --source-ranges="0.0.0.0/0" - Karena VM dibuat tanpa alamat IP publik, konfigurasi gateway Cloud Router dan Cloud NAT agar VM dapat mengakses repositori paket eksternal dan mendownload software yang diperlukan.
gcloud compute routers create alloydb-omni-router \ --project=$PROJECT \ --network=default \ --region=$REGION gcloud compute routers nats create alloydb-omni-nat \ --project=$PROJECT \ --router=alloydb-omni-router \ --region=$REGION \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips - Pastikan jaringan VPC Anda memiliki rute gateway internet default yang valid. Di beberapa lingkungan bersama atau uji coba, rute default terkadang dihapus oleh skrip pembersihan. Rute ini diperlukan agar Cloud NAT meneruskan traffic keluar ke internet.
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - Buat instance VM Compute Engine dengan Rocky Linux 9 dan persistent disk seimbang 20 GB. Untuk meningkatkan keamanan, gunakan flag
--no-addressagar VM tidak diberi alamat IP publik.gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=$MACHINE_TYPE \ --image-family=rocky-linux-9 \ --image-project=rocky-linux-cloud \ --boot-disk-size=20GB \ --boot-disk-type=pd-balanced \ --no-address - Setelah VM dibuat, verifikasi status VM.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. Menyiapkan penyimpanan objek yang kompatibel dengan S3
Di bagian ini, Anda akan terhubung ke VM, menyiapkan lingkungan, dan menyiapkan server penyimpanan objek yang kompatibel dengan S3 lokal (minio) beserta klien S3 (mc) untuk menghosting bucket cadangan Anda.
- Hubungkan ke VM melalui SSH menggunakan Identity-Aware Proxy (IAP). Karena VM tidak memiliki alamat IP publik,
gcloudakan otomatis melakukan tunneling koneksi SSH melalui IAP.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Instal paket
policycoreutils-python-utilsagar kebijakan SELinux dapat dikonfigurasi nanti jika diperlukan.sudo dnf install -y policycoreutils-python-utils - Download biner server yang kompatibel dengan S3 (
minio).curl -L -o minio \ https://github.com/minio/minio/releases/download/RELEASE.2024-05-10T01-41-38Z/minio.linux-amd64.RELEASE.2024-05-10T01-41-38Z chmod +x minio sudo mv minio /usr/local/bin/ - Buat direktori data untuk server penyimpanan objek.
sudo mkdir -p /var/lib/s3-storage/data - Mulai server yang kompatibel dengan S3 di latar belakang dengan contoh kredensial. Perhatikan bahwa kunci rahasia harus memiliki panjang minimal 8 karakter.
export MINIO_ROOT_USER="s3admin" export MINIO_ROOT_PASSWORD="s3password" nohup sudo env MINIO_ROOT_USER="$MINIO_ROOT_USER" \ MINIO_ROOT_PASSWORD="$MINIO_ROOT_PASSWORD" \ /usr/local/bin/minio server /var/lib/s3-storage/data \ --console-address ":9001" \ > s3-server.log 2>&1 & - Pastikan server yang kompatibel dengan S3 sedang berjalan.
ps aux | grep minio - Download dan instal klien S3 (
mc) untuk mengelola bucket.curl -L -o mc \ https://github.com/minio/mc/releases/download/RELEASE.2024-05-09T17-04-24Z/mc.linux-amd64.RELEASE.2024-05-09T17-04-24Z chmod +x mc sudo mv mc /usr/local/bin/ - Konfigurasi alias klien S3 (
s3repo) dan buat bucket bernamaalloydb-backups.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. Menginstal AlloyDB Omni
Di bagian ini, Anda akan menginstal dan mengonfigurasi AlloyDB Omni.
- Tentukan variabel lingkungan di VM untuk direktori data, URL repositori AlloyDB Omni, dan sandi yang kuat untuk pengguna administrator PostgreSQL
postgres. Ganti URL dengan URL yang Anda terima dari formulir pendaftaran. Catatan: Penerusan sandi menggunakan variabel lingkungan di command line (misalnya,export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) digunakan di sini untuk menyederhanakan codelab, tetapi dapat mengekspos sandi dalam listingan proses. Dalam produksi, gunakan metode yang lebih aman seperti file.pgpassatau pengelola rahasia. - Buat direktori data tempat AlloyDB Omni akan menyimpan file databasenya.
sudo mkdir -p $PGDATA - Konfigurasi repositori YUM di VM Anda dengan membuat file konfigurasi repositori.
sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF [alloydbomni] name=alloydbomni baseurl=$ALLOYDB_OMNI_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=1 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF - Perbarui cache YUM.
sudo yum makecache - Instal paket RPM AlloyDB Omni versi 18.
sudo dnf install -y alloydbomni18 - Lakukan inisialisasi instance database AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - Nonaktifkan sementara mode pemberlakuan SELinux untuk mempermudah penyiapan, sesuai praktik codelab standar.
sudo setenforce 0 - Siapkan instance database AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - Aktifkan dan mulai layanan
systemdAlloyDB Omni.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - Pastikan layanan AlloyDB Omni aktif dan berjalan dengan baik.
sudo systemctl status alloydbomni18
6. Mengonfigurasi pgBackRest
Di bagian ini, Anda akan menginstal pgBackRest dari repositori Umum AlloyDB Omni, mengonfigurasi /etc/pgbackrest/pgbackrest.conf untuk menggunakan bucket penyimpanan objek yang kompatibel dengan S3 sebagai repositori cadangan, dan mengaktifkan pengarsipan WAL di AlloyDB Omni.
- Tentukan variabel lingkungan di VM untuk URL repositori Umum AlloyDB Omni Anda. Ganti URL dengan URL yang Anda terima dari formulir pendaftaran.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - Konfigurasi repositori YUM pgBackRest dan instal
pgbackrest-2.58.0.sudo tee /etc/yum.repos.d/pgbackrest.repo <<EOF [pgbackrest] name=Google Alloydb Omni Orchestrator baseurl=$ALLOYDB_OMNI_COMMON_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=0 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF sudo dnf install -y pgbackrest-2.58.0 - Buat direktori spool dan log untuk pgBackRest, lalu tetapkan kepemilikan kepada pengguna
postgres.sudo mkdir -p /var/log/pgbackrest sudo mkdir -p /var/lib/pgbackrest sudo chown -R postgres:postgres /var/log/pgbackrest sudo chown -R postgres:postgres /var/lib/pgbackrest - Buat
/etc/pgbackrest/pgbackrest.confdan konfigurasi izin file yang ketat.sudo mkdir -p /etc/pgbackrest/conf.d sudo tee /etc/pgbackrest/pgbackrest.conf <<EOF [global] spool-path=/var/lib/pgbackrest lock-path=/var/lib/pgbackrest # S3 Repository details repo1-type=s3 repo1-s3-endpoint=http://localhost:9000 repo1-s3-bucket=alloydb-backups repo1-s3-key=s3admin repo1-s3-key-secret=s3password repo1-s3-region=us-east-1 repo1-s3-uri-style=path repo1-path=/pgbackrest # Retention policy repo1-retention-full=3 repo1-retention-full-type=count repo1-retention-diff=16 # Force immediate checkpoint during backup start start-fast=y # Logging log-path=/var/log/pgbackrest log-level-console=info log-level-file=info # Compression compress-type=zst # Asynchronous WAL archiving archive-async=y archive-push-queue-max=1024MB archive-get-queue-max=256MB archive-missing-retry=y [global:archive-push] process-max=2 [global:archive-get] process-max=2 [omni] pg1-user=postgres pg1-socket-path=/tmp pg1-path=$PGDATA EOF sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf sudo chmod 640 /etc/pgbackrest/pgbackrest.conf - Lakukan inisialisasi stanza pgBackRest sebagai pengguna
postgres. Pastikansudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfullyditampilkan di output. - Konfigurasi parameter pengarsipan AlloyDB Omni menggunakan
psql.sudo -u postgres /usr/lib/postgresql/18/bin/psql \ -c "ALTER SYSTEM SET archive_mode = 'on';" \ -c "ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET wal_level = 'replica';" \ -c "ALTER SYSTEM SET max_wal_senders = 10;" - Mulai ulang layanan AlloyDB Omni untuk menerapkan perubahan pengarsipan.
sudo systemctl restart alloydbomni18 - Verifikasi integritas dan konektivitas konfigurasi pgBackRest.
Pastikansudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfullyditampilkan di output.
7. Lakukan Pencadangan
Di bagian ini, Anda akan menggunakan pgBackRest untuk melakukan pencadangan penuh dan pencadangan diferensial database AlloyDB Omni ke penyimpanan objek yang kompatibel dengan S3.
- Picu pencadangan penuh menggunakan
pgbackrest.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backup - Memicu pencadangan diferensial menggunakan
pgbackrest. Catatan: Jenis cadangan lain yang didukung mencakupsudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(inkremental).
8. Mencantumkan dan Memverifikasi Cadangan
Di bagian ini, Anda akan mencantumkan cadangan dan memverifikasi bahwa cadangan tersebut berhasil diselesaikan.
- Cantumkan cadangan menggunakan perintah
pgbackrest info. Konfirmasi bahwa output menampilkansudo -u postgres pgbackrest \ --stanza=omni infostatus: okbeserta informasi pencadangan untuk setiap perintah pencadangan yang Anda jalankan:- Pencadangan penuh:
full backup:(misalnya,F 20260908-093545F) - Pencadangan perbedaan:
diff backup:(misalnya,F_ D 20260908-093545F_20260908-094016D)
- Pencadangan penuh:
- Verifikasi file cadangan yang disimpan di bucket menggunakan klien S3 (
mc). Anda akan melihatmc ls s3repo/alloydb-backups/pgbackrest/backup,archive, danstanza.infodalam output.
9. Memulihkan Data dari Cadangan
Di bagian ini, Anda akan menghentikan layanan database AlloyDB Omni dan memulihkan data dari cadangan tertentu menggunakan pgbackrest.
Perhatian: Pemulihan akan menghentikan database Anda dan menimpa semua data database Anda.
- Tentukan variabel lingkungan untuk ID cadangan yang ingin Anda pulihkan. Ganti nilai dengan ID cadangan yang ditampilkan di output
pgbackrest info.export BACKUPID="20260908-093545F" - Hentikan layanan AlloyDB Omni dan pastikan layanan tersebut tidak aktif.
Pastikan output menampilkansudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactive. - Jalankan
pgbackrest restoredengan opsi--deltauntuk memulihkan database dari cadangan yang dipilih. Pastikansudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfullyditampilkan di output. - Mulai layanan AlloyDB Omni dan verifikasi bahwa layanan tersebut aktif dan berjalan.
Pastikan output menampilkansudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running).
10. Pembersihan dan Survei
Setelah menyelesaikan codelab, Anda dapat membersihkan resource Google Cloud untuk menghindari timbulnya biaya yang tidak diinginkan.
- Putuskan koneksi dari sesi SSH di VM untuk kembali ke terminal Cloud Shell lokal Anda.
exit - Hapus instance VM Compute Engine.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - Hapus aturan firewall yang dibuat untuk akses SSH.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Hapus gateway Cloud NAT dan Cloud Router.
gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet - Hapus rute kustom.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
11. Selamat
Selamat, Anda telah menyelesaikan codelab ini! Anda berhasil mengonfigurasi pgBackRest untuk mencadangkan dan memulihkan deployment RPM AlloyDB Omni menggunakan penyimpanan objek yang kompatibel dengan S3.
Yang telah kita bahas
- Cara menyiapkan VM Compute Engine untuk RPM AlloyDB Omni.
- Cara menyiapkan bucket penyimpanan objek yang kompatibel dengan S3.
- Cara mengonfigurasi pgBackRest dengan repositori yang kompatibel dengan S3.
- Cara melakukan, membuat daftar, dan memverifikasi pencadangan penuh dan diferensial.
- Cara memulihkan data dari cadangan menggunakan pgBackRest.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan AlloyDB Omni.