Halaman ini menunjukkan cara melindungi data dengan mengonfigurasi AlloyDB Omni agar berfungsi dengan pgBackRest, server pencadangan database open source. Untuk ringkasan solusi pencadangan yang tersedia, lihat Mencadangkan dan memulihkan AlloyDB Omni.
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 cadangannya ke repositori lokal, jarak jauh, atau berbasis cloud. Setelah membuat minimal 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 penampung Docker-nya. Artinya, Anda dapat menggunakan pgBackRest untuk mencadangkan dan memulihkan data AlloyDB Omni tanpa perlu menginstal software tambahan.
Untuk 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 penampung 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
pada sistem file yang di-container. Akibatnya,
Anda dapat menggunakan direktori data sebagai lokasi untuk menyimpan konfigurasi
dan repositori pgBackRest tanpa penyiapan lebih lanjut.
Jika ingin mengonfigurasi pgBackRest dalam penampung untuk membaca dari atau menulis ke direktori di sistem file mesin host di luar direktori data AlloyDB Omni, Anda harus menyediakan direktori ini ke penampung.
Konfigurasi dasar dengan pencadangan lokal
Langkah-langkah di bagian ini akan memandu Anda melalui penyiapan dasar pgBackRest, termasuk file konfigurasi singkat yang mengarahkan pgBackRest untuk menulis data cadangan berkelanjutan ke dalam 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 dengan kebutuhan dan preferensi Anda sendiri. 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
DATA_DIR/pg_hba.conf
Anda:local all postgres trust
Ganti DATA_DIR dengan jalur sistem file ke direktori data Anda, misalnya,
/home/$USER/alloydb-data
.Mulai ulang AlloyDB Omni:
docker restart CONTAINER_NAME
Ganti
CONTAINER_NAME
dengan nama yang Anda tetapkan ke penampung AlloyDB Omni saat menginstalnya—misalnya,my-omni
.
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 informasi selengkapnya, lihat Mengonfigurasi stanza cluster.
Buat subdirektori
backups
di direktori data AlloyDB Omni:mkdir DATA_DIR/backups
Buat file bernama
pgbackrest.conf
di dalam direktori data Anda, lalu 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/data
Lakukan inisialisasi lokasi pencadangan menggunakan perintah
pgbackrest stanza-create
:docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni stanza-create
Mengonfigurasi database untuk pencadangan berkelanjutan
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
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.
Sebagai praktik terbaik, jalankan perintah pgBackRest langsung dari mesin host
tempat penampung AlloyDB Omni diinstal, menggunakan
perintah docker exec
. Misalnya, untuk membuat pencadangan manual, gunakan
perintah pgbackrest backup
. 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 backup
Anda juga dapat menggunakan variabel lingkungan untuk menetapkan lokasi file konfigurasi pgBackRest. Untuk informasi selengkapnya, lihat Opsi Jalur Konfigurasi.
Menyiapkan pencadangan terjadwal
Untuk menyiapkan pencadangan terjadwal, buat tugas cron yang menjalankan perintah pgbackrest backup
sering kali sesuai kebutuhan. 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 menentukan repositori cadangan tambahan yang berada di mesin jarak jauh, atau di cloud. Jika Anda menentukan beberapa repositori, pgBackRest akan menulis ke semua repositori secara bersamaan sebagai tindakan pencadangan default-nya.
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 dibuat berdasarkan file konfigurasi yang diperkenalkan di Konfigurasi dasar dengan pencadangan lokal. Modifikasi ini 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 dijalankan di instance VM Compute Engine. Jika tidak menjalankan AlloyDB Omni di instance VM Compute Engine, Anda masih dapat mencadangkan ke bucket Cloud Storage menggunakan metode autentikasi lain, seperti kunci akun layanan Google Cloud 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 dilampirkan 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 untuk menyimpan cadangan pgBackRest.
Lakukan inisialisasi lokasi pencadangan berbasis cloud menggunakan perintah
pgbackrest stanza-create
:docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --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 perintah konfigurasi
repo2-
yang disiapkan oleh contoh ini.