Lihat Mencadangkan dan memulihkan di Kubernetes untuk informasi berbasis Kubernetes.
pgBackRest adalah utilitas pencadangan dan pemulihan yang fleksibel untuk PostgreSQL. Karena AlloyDB Omni kompatibel dengan PostgreSQL, Anda dapat menggunakan pgBackRest untuk melindungi data AlloyDB Omni menggunakan pencadangan manual, terjadwal, dan berkelanjutan.
pgBackRest menulis data pencadangannya ke repositori lokal, jarak jauh, atau berbasis cloud. Setelah membuat setidaknya satu repositori, Anda dapat menggunakan pgBackRest untuk memulihkan data AlloyDB Omni melalui berbagai metode, termasuk pemulihan point-in-time (PITR).
AlloyDB Omni menyertakan pgBackRest dalam container Docker-nya. Artinya, Anda dapat menggunakan pgBackRest untuk mencadangkan dan memulihkan data AlloyDB Omni tanpa perlu menginstal software tambahan.
Untuk mengetahui informasi selengkapnya tentang pgBackRest, lihat panduan penggunanya.
Sebelum memulai
Sebelum mengonfigurasi AlloyDB Omni agar berfungsi dengan pgBackRest, Anda harus menginstal dan menjalankan AlloyDB Omni di server yang Anda kontrol.
Catatan tentang jalur sistem file
Software pgBackRest yang disertakan dengan AlloyDB Omni berjalan di container Docker yang sama dengan AlloyDB Omni. Oleh karena itu, semua jalur sistem file yang Anda berikan ke pgBackRest melalui file konfigurasinya atau sebagai argumen command line adalah lokasi di sistem file container, bukan sistem file mesin host Anda.
Banyak perintah dan contoh di halaman ini merujuk ke direktori data Anda sebagai /var/lib/postgresql/data, terlepas dari lokasi direktori data Anda di sistem host. Hal ini karena AlloyDB Omni memasang direktori data Anda ke /var/lib/postgresql/data di sistem file yang di-container-kan. Alhasil, Anda dapat menggunakan direktori data sebagai lokasi untuk menyimpan konfigurasi dan repositori pgBackRest tanpa penyiapan lebih lanjut.
Jika ingin mengonfigurasi pgBackRest yang di-container-kan untuk membaca dari atau menulis ke direktori di sistem file mesin host Anda di luar direktori data AlloyDB Omni, Anda harus menyediakan direktori ini ke container.
Konfigurasi dasar dengan pencadangan lokal
Langkah-langkah di bagian ini memandu Anda melalui penyiapan dasar pgBackRest, termasuk file konfigurasi singkat yang mengarahkan pgBackRest untuk menulis data pencadangan berkelanjutan ke subdirektori direktori data AlloyDB Omni Anda.
Karena pgBackRest adalah produk pihak ketiga yang fleksibel dan kompatibel dengan AlloyDB Omni, Anda dapat mengubah langkah-langkah ini sesuai kebutuhan dan preferensi Anda. Jika Anda mengubah jalur sistem file, ingatlah bahwa jalur tersebut harus terlihat oleh container; lihat Catatan tentang jalur sistem file.
Menyiapkan autentikasi Unix-socket tepercaya
Izinkan mesin host AlloyDB Omni Anda untuk mengautentikasi pengguna postgres server database tanpa memerlukan sandi. Hal ini menyederhanakan langkah-langkah berikutnya.
Tambahkan baris berikut ke file
DATA_DIR/pg_hba.confAnda:local all postgres trustGanti DATA_DIR dengan jalur sistem file ke direktori data Anda—misalnya,
/home/$USER/alloydb-data.Mulai ulang AlloyDB Omni:
Docker
docker restart CONTAINER_NAMEGanti
CONTAINER_NAMEdengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya,my-omni.Podman
podman restart CONTAINER_NAMEGanti
CONTAINER_NAMEdengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya,my-omni.
Membuat dan mengonfigurasi repositori pencadangan
File konfigurasi yang dibuat di bagian ini adalah contoh, yang memungkinkan penyiapan minimal untuk pencadangan berkelanjutan yang disimpan secara lokal. Anda dapat mengubah file ini dengan cara apa pun yang sesuai dengan kebutuhan Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi stanza cluster.
Buat subdirektori
backupsdi direktori data AlloyDB Omni Anda:mkdir DATA_DIR/backupsBuat file bernama
pgbackrest.confdi dalam direktori data Anda, dan salin konten berikut ke dalamnya:[global] # Paths (all mandatory): repo1-path=/var/lib/postgresql/data/backups spool-path=/var/lib/postgresql/data lock-path=/var/lib/postgresql/data # Retention details: repo1-retention-full=3 repo1-retention-full-type=count repo1-retention-diff=16 # Force a checkpoint to start backup immediately: start-fast=y # Logging parameters: log-path=/var/lib/postgresql/data/backups log-level-console=info log-level-file=info # Recommended ZSTD compression: compress-type=zst # Other performance parameters: 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=/var/lib/postgresql/data pg1-path=/var/lib/postgresql/data/dataInisialisasi lokasi pencadangan menggunakan perintah
pgbackrest stanza-create:Docker
docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni stanza-createGanti
CONTAINER_NAMEdengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya,my-omni.Podman
podman exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni stanza-createGanti
CONTAINER_NAMEdengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya,my-omni.
Mengonfigurasi database untuk pencadangan berkelanjutan
Docker
Untuk mengaktifkan pencadangan berkelanjutan, jalankan perintah berikut untuk menetapkan beberapa parameter PostgreSQL:
docker exec CONTAINER_NAME psql -h localhost -U postgres \ -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET archive_mode=on;" \ -c "ALTER SYSTEM SET max_wal_senders=10;" \ -c "ALTER SYSTEM SET wal_level=replica;"Mulai ulang AlloyDB Omni:
docker restart CONTAINER_NAME
Podman
Untuk mengaktifkan pencadangan berkelanjutan, jalankan perintah berikut untuk menetapkan beberapa parameter PostgreSQL:
podman exec CONTAINER_NAME psql -h localhost -U postgres \ -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET archive_mode=on;" \ -c "ALTER SYSTEM SET max_wal_senders=10;" \ -c "ALTER SYSTEM SET wal_level=replica;"Mulai ulang AlloyDB Omni:
podman restart CONTAINER_NAME
Menjalankan perintah pgBackRest
Menyelesaikan langkah-langkah di bagian sebelumnya akan mengonfigurasi pgBackRest agar berfungsi dengan server AlloyDB Omni Anda. Untuk memeriksa status pencadangan, membuat pencadangan manual, dan melakukan tugas lainnya, lihat Referensi perintah.
Docker
Sebagai praktik terbaik, jalankan perintah pgBackRest langsung dari mesin host
tempat container AlloyDB Omni diinstal, menggunakan
docker exec perintah. Misalnya, untuk membuat pencadangan manual, gunakan
pgbackrest backup perintah. Ubah agar berjalan dalam perintah docker
exec, dan merujuk ke file konfigurasi yang Anda buat sebelumnya:
docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni --type=full backupPodman
Sebagai praktik terbaik, jalankan perintah pgBackRest langsung dari mesin host
tempat container AlloyDB Omni diinstal, menggunakan
podman exec perintah. Misalnya, untuk membuat pencadangan manual, gunakan perintah
pgbackrest backup. Ubah agar berjalan dalam perintah podman
exec, dan merujuk ke file konfigurasi yang Anda buat sebelumnya:
podman exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni --type=full backupAnda juga dapat menggunakan variabel lingkungan untuk menetapkan lokasi file konfigurasi pgBackRest. Untuk mengetahui informasi selengkapnya, lihat Opsi Jalur Konfigurasi.
Menyiapkan pencadangan terjadwal
Untuk menyiapkan pencadangan terjadwal, buat cron job yang menjalankan perintah pgbackrest backup sesering yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Menjadwalkan pencadangan.
Konfigurasi kustom dan pencadangan jarak jauh
Setelah konfigurasi dasar berfungsi, Anda dapat menyesuaikan file konfigurasi agar sesuai dengan kebutuhan dan preferensi Anda menggunakan opsi yang didokumentasikan dalam referensi konfigurasi pgBackRest.
Hal ini mencakup penentuan repositori pencadangan tambahan yang terletak di mesin jarak jauh, atau di cloud. Jika Anda menentukan beberapa repositori, pgBackRest akan menulis ke semuanya secara bersamaan sebagai tindakan pencadangan default.
Misalnya, pgBackRest mendukung penggunaan bucket Cloud Storage sebagai repositori pencadangan, dengan sejumlah opsi konfigurasi terkait. Bagian berikut menunjukkan salah satu cara menggunakan opsi ini.
Contoh konfigurasi menggunakan Cloud Storage
Langkah-langkah di bagian ini dibuat berdasarkan file konfigurasi yang diperkenalkan di Konfigurasi dasar dengan pencadangan lokal. Perubahan pada file tersebut menentukan repositori pencadangan kedua di bucket Cloud Storage, yang diakses melalui Identity and Access Management (IAM).
Gaya autentikasi otomatis dalam contoh ini mengharuskan cluster AlloyDB Omni berjalan di instance VM Compute Engine. Jika Anda tidak menjalankan AlloyDB Omni di instance VM Compute Engine, maka Anda tetap dapat mencadangkan ke bucket Cloud Storage dengan menggunakan metode autentikasi lain, seperti Google Cloud kunci akun layanan yang disimpan ke sistem file lokal.
Untuk memperluas file konfigurasi sebelumnya guna menentukan repositori pgBackRest berbasis Cloud Storage, ikuti langkah-langkah berikut:
Konfigurasikan izin bucket untuk mengizinkan akun layanan yang terlampir ke instance VM Anda untuk menulis ke bucket. Hal ini memerlukan peran IAM Pengguna Objek Penyimpanan yang ditetapkan pada akun layanan tersebut.
Tambahkan baris berikut ke file
pgbackrest.confAnda:# Cloud Storage access details: repo2-type=gcs repo2-gcs-key-type=auto repo2-storage-verify-tls=n # Cloud Storage bucket and path details: repo2-gcs-bucket=BUCKET_NAME repo2-path=/pgbackrest # Cloud Storage backup retention parameters: repo2-retention-full=8 repo2-retention-full-type=countGanti BUCKET_NAME dengan nama bucket Cloud Storage yang Anda inginkan untuk menyimpan pencadangan pgBackRest.
Inisialisasi lokasi pencadangan berbasis cloud menggunakan perintah
pgbackrest stanza-create:Docker
docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni stanza-createGanti
CONTAINER_NAMEdengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya,my-omni.Podman
podman exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni stanza-createGanti
CONTAINER_NAMEdengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya,my-omni.
Setelah Anda menginisialisasi repositori pencadangan di bucket Cloud Storage menggunakan perintah pgbackrest stanza-create, pgBackRest akan mencadangkan ke dua lokasi:
Lokasi di sistem file lokal, yang ditentukan di tempat lain dalam file konfigurasi sebagai
repo1-path.Bucket Cloud Storage, yang ditentukan menggunakan petunjuk konfigurasi
repo2-yang disiapkan oleh contoh ini.