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 cadangannya 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, dan bukan sistem file mesin host Anda.
Banyak perintah dan contoh di halaman ini merujuk ke direktori data Anda sebagai /mnt/disks/pgsql
, terlepas dari lokasi direktori data Anda di sistem host. Hal ini karena AlloyDB Omni memasang
direktori data Anda ke /mnt/disks/pgsql
di sistem file yang di-container-kan. Hasilnya, Anda dapat menggunakan direktori data sebagai lokasi untuk menyimpan konfigurasi dan repositori pgBackRest tanpa penyiapan lebih lanjut.
Jika Anda ingin mengonfigurasi pgBackRest dalam container untuk membaca dari atau menulis ke direktori di sistem file mesin host Anda di luar direktori data AlloyDB Omni, Anda harus membuat direktori ini tersedia untuk container.
Konfigurasi dasar dengan cadangan lokal
Langkah-langkah di bagian ini memandu Anda melakukan 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 penampung; lihat Catatan tentang jalur sistem file.
Menyiapkan autentikasi soket Unix tepercaya
Izinkan mesin host AlloyDB Omni Anda mengautentikasi pengguna postgres
server database tanpa memerlukan sandi. Hal ini menyederhanakan langkah-langkah berikutnya.
Tambahkan baris berikut ke file
/var/alloydb/config/pg_hba.conf
Anda:local all postgres trust
Mulai ulang AlloyDB Omni:
sudo alloydb database-server stop
sudo alloydb database-server start
Membuat dan mengonfigurasi repositori cadangan
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
backups
di direktori data AlloyDB Omni Anda:mkdir DATA_DIR/backups
Ganti DATA_DIR dengan jalur sistem file ke direktori data Anda—misalnya,
/home/$USER/alloydb-data
.Buat file bernama
pgbackrest.conf
di dalam direktori data Anda, lalu salin konten berikut ke dalamnya:# Paths (all mandatory): repo1-path=/mnt/disks/pgsql/backups spool-path=/mnt/disks/pgsql lock-path=/mnt/disks/pgsql # 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=/mnt/disks/pgsql/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=/mnt/disks/pgsql pg1-path=/mnt/disks/pgsql/data
Lakukan inisialisasi lokasi pencadangan menggunakan perintah
pgbackrest stanza-create
:docker exec pg-service pgbackrest --config-path=/mnt/disks/pgsql --stanza=omni stanza-create
Mengonfigurasi database untuk pencadangan berkelanjutan
Untuk mengaktifkan cadangan berkelanjutan, jalankan perintah berikut untuk menyetel beberapa parameter PostgreSQL:
docker exec pg-service psql -h localhost -U postgres \ -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=/mnt/disks/pgsql --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET archive_mode=on;" \ -c "ALTER SYSTEM SET max_wal_senders=on;" \ -c "ALTER SYSTEM SET wal_level=replica;"
Mulai ulang AlloyDB Omni:
sudo alloydb database-server stop
sudo alloydb database-server start
Menjalankan perintah pgBackRest
Dengan menyelesaikan langkah-langkah di bagian sebelumnya, pgBackRest akan dikonfigurasi untuk bekerja dengan server AlloyDB Omni Anda. Untuk memeriksa status pencadangan, membuat cadangan manual, dan melakukan tugas lainnya, lihat Referensi perintah.
Sebagai praktik terbaik, jalankan perintah pgBackRest langsung dari mesin host
tempat container AlloyDB Omni diinstal, menggunakan perintah
docker exec
. Misalnya, untuk membuat cadangan manual, gunakan
perintah pgbackrest backup
. Ubah agar berjalan dalam perintah docker
exec
, dan merujuk ke file konfigurasi yang Anda buat sebelumnya:
docker exec pg-service pgbackrest --config-path=/mnt/disks/pgsql --stanza=omni --type=full backup
Nilai flag --config-path
adalah /mnt/disks/pgsql
karena itu adalah
selalu menjadi lokasi direktori data Anda di sistem file penampung AlloyDB Omni. Jika Anda mengikuti langkah-langkah di bagian sebelumnya, direktori data Anda akan berisi file pgbackrest.conf
yang diperlukan agar perintah pgBackRest dapat berjalan dengan benar. Untuk mengetahui informasi selengkapnya, lihat Catatan tentang jalur sistem file.
Anda 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 tugas cron yang menjalankan perintah pgbackrest backup
sesering yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Menjadwalkan pencadangan.
Konfigurasi kustom dan cadangan 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 cadangan tambahan yang berada di komputer jarak jauh, atau di cloud. Jika Anda menentukan beberapa repositori, pgBackRest akan menulis ke semuanya secara bersamaan sebagai tindakan pencadangan defaultnya.
Misalnya, pgBackRest mendukung penggunaan bucket Cloud Storage sebagai repositori cadangan, dengan sejumlah opsi konfigurasi terkait. Bagian berikut menunjukkan salah satu cara untuk menggunakan opsi ini.
Contoh konfigurasi menggunakan Cloud Storage
Langkah-langkah di bagian ini didasarkan pada file konfigurasi yang diperkenalkan di Konfigurasi dasar dengan cadangan lokal. Perubahan pada file tersebut menentukan repositori cadangan kedua di bucket Cloud Storage, yang diakses melalui Identity and Access Management (IAM).
Gaya autentikasi otomatis dalam contoh ini memerlukan cluster AlloyDB Omni untuk berjalan di instance VM Compute Engine. Jika Anda tidak menjalankan AlloyDB Omni di instance VM Compute Engine, Anda tetap dapat mencadangkan ke bucket Cloud Storage menggunakan metode autentikasi lain, seperti kunci akun layanan yang disimpan ke sistem file lokal. Google Cloud
Untuk memperluas file konfigurasi sebelumnya guna menentukan repositori pgBackRest berbasis Cloud Storage, ikuti langkah-langkah berikut:
Konfigurasi izin bucket untuk mengizinkan akun layanan yang terlampir ke instance VM Anda menulis ke bucket. Hal ini memerlukan peran IAM Storage Object User yang ditetapkan di akun layanan tersebut.
Tambahkan baris berikut ke file
pgbackrest.conf
Anda:# 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=count
Ganti BUCKET_NAME dengan nama bucket Cloud Storage yang Anda inginkan agar pgBackRest menyimpan cadangan ke dalamnya.
Lakukan inisialisasi lokasi pencadangan berbasis cloud menggunakan perintah
pgbackrest stanza-create
:docker exec pg-service pgbackrest --config-path=/mnt/disks/pgsql --stanza=omni stanza-create
Setelah Anda menginisialisasi repositori cadangan di bucket Cloud Storage
menggunakan perintah pgbackrest stanza-create
, pgBackRest akan mencadangkan ke dua lokasi:
Lokasi dalam sistem file lokal, yang ditentukan di tempat lain dalam file konfigurasi sebagai
repo1-path
.Bucket Cloud Storage, yang ditentukan menggunakan konfigurasi
repo2-
direktif yang disiapkan oleh contoh ini.