Menyiapkan pgBackRest untuk AlloyDB Omni di Linux

Pilih versi dokumentasi:

Halaman ini menunjukkan cara melindungi data Anda dengan mengonfigurasi AlloyDB Omni agar berfungsi dengan pgBackRest, server pencadangan database open source.

Cluster yang mendukung TDE mendukung pencadangan dan pemulihan transparan menggunakan pgBackRest, dan Anda tidak perlu melakukan langkah tambahan apa pun. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster yang mengaktifkan TDE.

Untuk mengetahui informasi selengkapnya tentang pgBackRest, lihat panduan penggunanya.

Sebelum memulai

Sebelum mengonfigurasi AlloyDB Omni agar berfungsi dengan pgBackRest, selesaikan prasyarat berikut:

Konfigurasi dasar dengan pencadangan lokal

Langkah-langkah di bagian ini akan memandu Anda melakukan penyiapan dasar pgBackRest. Konfigurasi dasar tidak mengaktifkan pencadangan sesuai jadwal. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan pencadangan terjadwal.

Karena pgBackRest adalah produk pihak ketiga yang fleksibel dan kompatibel dengan AlloyDB Omni, Anda dapat mengubah langkah-langkah ini sesuai kebutuhan dan preferensi Anda.

Membuat direktori cadangan

Untuk tujuan pengaturan, sebaiknya buat direktori terpisah untuk cadangan pgBackRest. Untuk menyiapkan direktori baru, selesaikan langkah-langkah berikut:

  1. Jika AlloyDB Omni sedang berjalan, hentikan.

    sudo systemctl stop alloydbomni18
    
  2. Buat direktori cadangan.

    sudo mkdir -p BACKUP_DIR
    

    Ganti variabel berikut:

    • BACKUP_DIR: Direktori host tempat cadangan Anda akan disimpan.
  3. Buat direktori cadangan dapat dibaca oleh postgres.

    sudo chown -R postgres:postgres BACKUP_DIR
    

    Ganti variabel berikut:

    • BACKUP_DIR: Direktori host tempat cadangan Anda akan disimpan.

Mengonfigurasi pencadangan lokal

pgBackRest membuat subdirektori untuk setiap cadangan yang diambil dan menyertakan file manifes teks biasa.

pgBackRest menggunakan istilah stanza untuk merujuk pada konfigurasi cluster database PostgreSQL. Nama stanza bersifat arbitrer dan tidak perlu cocok dengan server host, cluster PostgreSQL, atau nama database. Dokumentasi pgBackRest menyarankan untuk memberi nama stanza sesuai dengan fungsi cluster.

Repositori adalah tempat pencadangan ditulis. pgBackRest mendukung penulisan ke lebih dari satu repositori dalam stanza tertentu. Sebagian besar parameter konfigurasi yang terkait dengan repositori diindeks dengan nilai numerik. Misalnya, repo1-. Parameter yang terkait dengan cluster PostgreSQL juga diindeks secara independen. Misalnya, parameter khusus untuk cluster PostgreSQL pertama dalam stanza diawali dengan pg1-.

pgBackRest memanfaatkan file konfigurasi, yang disebut pgbackrest.conf, untuk menyimpan parameter global dan khusus stanza.

Untuk membangun dan melakukan inisialisasi file konfigurasi untuk mencadangkan cluster AlloyDB Omni, buat file pgbackrest.conf di direktori pencadangan sisi host yang Anda buat di Memasang volume cadangan ke container Anda atau Membuat direktori cadangan.

[global]
# Paths (all mandatory):


repo1-path=BACKUP_DIR
spool-path=BACKUP_DIR/spool
lock-path=BACKUP_DIR


# 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=BACKUP_DIR

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=/tmp



pg1-path=DATA_DIR


Beberapa parameter bersifat wajib, tetapi parameter lainnya dapat disesuaikan untuk memenuhi persyaratan spesifik Anda jika diperlukan, seperti berikut:

  • repo1-path: Lokasi direktori tempat cadangan ditulis. Sebaiknya gunakan lokasi yang terlihat oleh server host dan penampung.

  • log-path: Lokasi direktori tempat file log ditulis. Jika Anda ingin menulis file log ke lokasi terpisah, tidak digabungkan dengan cadangan itu sendiri, sesuaikan parameter ini.

  • repo1-retention-full: Jumlah cadangan lengkap yang akan dipertahankan.

  • repo1-retention-full-type: Apakah retensi diukur berdasarkan jumlah atau jangka waktu (hari).

  • repo1-retention-diff: Jumlah cadangan diferensial yang akan dipertahankan.

Setelan parameter lain yang tidak penting, tetapi direkomendasikan, yang kompatibel dengan AlloyDB Omni dalam file konfigurasi mencakup hal berikut:

  • log-level-console: Tingkat logging yang ditulis ke layar (STDOUT) saat menjalankan perintah pgBackup. Anda dapat menyesuaikan nilai ini untuk memenuhi kebutuhan Anda dalam file konfigurasi, atau mengganti nilai ini dengan argumen command line --log-level-console. Defaultnya adalah warn.

  • start-fast: Memaksa checkpoint untuk memulai pencadangan dengan cepat. Defaultnya adalah n.

  • archive-async: Mengirim file segmen WAL secara asinkron untuk meningkatkan performa. Defaultnya adalah n.

  • process-max: Jumlah maksimum proses yang akan digunakan untuk kompresi dan transfer. Ini biasanya ditetapkan ke max_cpu/4 pada cluster utama atau max_cpu/2 pada cluster standby. Defaultnya adalah 1.

  • compress-type: Algoritma kompresi yang akan digunakan. Defaultnya adalah gz.

Ada banyak parameter konfigurasi pgBackRest lainnya yang dapat disesuaikan. Dokumentasi ini hanya membahas parameter yang wajib untuk konfigurasi AlloyDB Omni default dan beberapa setelan parameter yang direkomendasikan. Untuk mengetahui daftar lengkap parameter konfigurasi, lihat dokumentasi online Referensi Konfigurasi pgBackRest.

Setelah mengonfigurasi pgBackRest, repositori target tempat pencadangan ditulis harus diinisialisasi dengan membuat stanza, yang menggunakan parameter seperti yang ditetapkan dalam file konfigurasi.

Untuk mengonfigurasi database Anda untuk pencadangan, selesaikan langkah-langkah berikut:

  1. Buat stanza menggunakan perintah stanza-create.

    sudo -u postgres pgbackrest \
    --config-path=/var/lib/BACKUP_DIR \
    --stanza=omni stanza-create
    
  2. Konfigurasi database Anda untuk pencadangan.

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres \
    -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=BACKUP_DIR --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;"
    

    Ganti variabel berikut:

    • BACKUP_DIR: Direktori host tempat cadangan Anda akan disimpan.
  3. Mulai ulang AlloyDB Omni.

    sudo systemctl restart 18
    
  4. Validasi konfigurasi cadangan.

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres \
    -c "SELECT name, setting
        FROM pg_catalog.pg_settings
        WHERE name IN ('archive_command',
                       'archive_mode',
                       'max_wal_senders',
                       'wal_level')
        ORDER BY name"
    
  5. Lakukan pemeriksaan pgBackRest.

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni \
    check
    

    Ganti variabel berikut:

    • BACKUP_DIR: Direktori host tempat cadangan Anda akan disimpan.

Melakukan pencadangan

  1. Lakukan pencadangan penuh.

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni \
    --type=full backup
    

    Ganti variabel berikut:

    • BACKUP_DIR: Direktori host tempat cadangan Anda akan disimpan.
  2. Melakukan pencadangan diferensial.

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni \
    --type=diff backup
    

    Ganti variabel berikut:

    • BACKUP_DIR: Direktori host tempat cadangan Anda akan disimpan.
  3. Cadangan laporan.

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni \
    info
    

    Ganti variabel berikut:

    • BACKUP_DIR: Direktori host tempat cadangan Anda akan disimpan.

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 termasuk menentukan repositori cadangan tambahan yang terletak di mesin jarak jauh, atau di cloud. Jika Anda menentukan beberapa repositori, pgBackRest akan menulis ke semua repositori tersebut 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 dibuat berdasarkan file konfigurasi yang diperkenalkan di Konfigurasi dasar dengan cadangan lokal. Modifikasi 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 Anda 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 terpasang 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 bagian [global] di 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=PATH_IN_BUCKET
    
    # Cloud Storage backup retention parameters:
    repo2-retention-full=8
    repo2-retention-full-type=count
    

    Ganti variabel berikut:

    • BUCKET_NAME: Nama bucket Cloud Storage tempat Anda ingin pgBackRest menyimpan cadangan.
    • PATH_IN_BUCKET: Jalur direktori di bucket Cloud Storage tempat Anda ingin pgBackRest menyimpan cadangan.
  3. Lakukan inisialisasi lokasi pencadangan berbasis cloud menggunakan perintah pgbackrest stanza-create:

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni stanza-create
    

    Ganti variabel berikut:

    • BACKUP_DIR: Direktori host tempat cadangan Anda akan disimpan.

Setelah Anda melakukan inisialisasi repositori cadangan di bucket Cloud Storage menggunakan perintah pgbackrest stanza-create, pgBackRest dapat mencadangkan ke dua lokasi:

  • Lokasi dalam sistem file lokal, yang ditentukan di tempat lain dalam file konfigurasi sebagai repo1-path. Ini adalah lokasi default jika --repo tidak ditentukan dalam perintah pgbackrest.

  • Bucket Cloud Storage, yang ditentukan menggunakan perintah konfigurasi repo2-gcs-bucket yang disiapkan oleh contoh ini. Untuk menggunakan bucket Cloud Storage, tentukan --repo=2 dalam perintah pgbackrest.

Langkah berikutnya