Menyiapkan pgBackRest untuk AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menunjukkan cara melindungi data Anda dengan mengonfigurasi AlloyDB Omni agar berfungsi dengan pgBackRest, server pencadangan database open source. Untuk mengetahui 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 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.

  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

    docker restart CONTAINER_NAME

    Ganti CONTAINER_NAME dengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya, my-omni.

    Podman

    podman restart CONTAINER_NAME

    Ganti CONTAINER_NAME dengan 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.

  1. Buat subdirektori backups di direktori data AlloyDB Omni Anda:

    mkdir DATA_DIR/backups
  2. Buat file bernama pgbackrest.conf di 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/data
    
  3. Inisialisasi lokasi pencadangan menggunakan perintah pgbackrest stanza-create:

    Docker

    docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni stanza-create

    Ganti CONTAINER_NAME dengan 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-create

    Ganti CONTAINER_NAME dengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya, my-omni.

Mengonfigurasi database untuk pencadangan berkelanjutan

Docker

  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

Podman

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

Podman

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 backup

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 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:

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

  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 pencadangan pgBackRest.

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

    Ganti CONTAINER_NAME dengan 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-create

    Ganti CONTAINER_NAME dengan 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.

Langkah berikutnya