Menyiapkan pgBackRest untuk AlloyDB Omni

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.

  1. 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.

  2. 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.

  1. Buat subdirektori backups di direktori data AlloyDB Omni:

    mkdir DATA_DIR/backups
  2. 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
    
  3. 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

  1. 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;"
  2. 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:

  1. 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.

  2. 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.

  3. 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.

Langkah selanjutnya