Menyiapkan Barman untuk AlloyDB Omni

Pilih versi dokumentasi:

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

Anda dapat melindungi data AlloyDB Omni menggunakan teknologi pencadangan database apa pun yang kompatibel dengan PostgreSQL. Misalnya, Anda dapat mengonfigurasi AlloyDB Omni untuk mengizinkan koneksi dari server Barman yang Anda kontrol. Hal ini memungkinkan server Barman melakukan pencadangan berkelanjutan dari data yang disimpan di server AlloyDB Omni Anda.

Setelah mengonfigurasi server Barman dan AlloyDB Omni agar dapat bekerja sama, Anda dapat menjalankan perintah Barman untuk menyelesaikan berbagai tugas pemulihan dari bencana dan perlindungan data, termasuk yang berikut:

  • Buat cadangan data sesuai permintaan.
  • Siapkan streaming WAL sinkron perubahan data Anda ke server cadangan.
  • Memulihkan dari cadangan tertentu.
  • Lakukan pemulihan point-in-time.

Untuk mengetahui informasi selengkapnya tentang pengoperasian Barman, lihat manual Barman.

Sebelum memulai

Sebelum mengonfigurasi AlloyDB Omni agar berfungsi dengan Barman, Anda memerlukan hal berikut:

Mengonfigurasi AlloyDB Omni agar berfungsi dengan Barman

Untuk menyiapkan server AlloyDB Omni agar dapat digunakan dengan Barman, jalankan perintah berikut di server tempat Anda telah menginstal AlloyDB Omni.

  1. Buat pengguna database barman, dengan hak istimewa yang sesuai:

    Docker

    docker exec CONTAINER_NAME psql -h localhost -U postgres -c "
    CREATE USER barman;
    GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman;
    GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman;
    GRANT pg_read_all_settings TO barman;
    GRANT pg_read_all_stats TO barman;
    CREATE USER streaming_barman WITH REPLICATION;
    "

    Ganti CONTAINER_NAME dengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya.

    Podman

    podman exec CONTAINER_NAME psql -h localhost -U postgres -c "
    CREATE USER barman;
    GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman;
    GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman;
    GRANT pg_read_all_settings TO barman;
    GRANT pg_read_all_stats TO barman;
    CREATE USER streaming_barman WITH REPLICATION;
    "

    Ganti CONTAINER_NAME dengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya.

  2. Tambahkan baris berikut dalam file DATA_DIR/pg_hba.conf sebelum baris host all all all scram-sha-256 yang ada dalam file:

    host all barman BARMAN_IP/32 AUTHN_METHOD
    host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD
    

    Ganti kode berikut:

    • DATA_DIR: jalur sistem file yang digunakan untuk direktori data AlloyDB Omni.

    • BARMAN_IP: alamat IP server Barman.

    • AUTHN_METHOD: metode autentikasi PostgreSQL yang diharapkan server AlloyDB untuk PostgreSQL dari server Barman. Sebaiknya gunakan salah satu nilai berikut:

      • Untuk mengizinkan server Barman melakukan autentikasi tanpa sandi, gunakan trust.

      • Untuk mewajibkan sandi dari server Barman, gunakan scram-sha-256.

  3. Tambahkan baris berikut ke file DATA_DIR/postgresql.conf:

    archive_command='/bin/true'
    archive_mode=on
    listen_addresses='*'
    wal_level='replica'
    
  4. Mulai ulang layanan AlloyDB Omni:

    Docker

    docker restart CONTAINER_NAME

    Podman

    podman restart CONTAINER_NAME

    Ganti CONTAINER_NAME dengan nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya.

  5. Konfirmasi bahwa semua parameter yang diperlukan telah ditetapkan dengan tepat dengan menjalankan perintah berikut:

    Docker

    docker exec CONTAINER_NAME psql -h localhost -U postgres -c "
    SELECT name, setting
       FROM pg_catalog.pg_settings
       WHERE name IN ('archive_command',
                      'archive_mode',
                      'listen_addresses',
                      'wal_level')
       ORDER BY name;"

    Podman

    podman exec CONTAINER_NAME psql -h localhost -U postgres -c "
    SELECT name, setting
       FROM pg_catalog.pg_settings
       WHERE name IN ('archive_command',
                      'archive_mode',
                      'listen_addresses',
                      'wal_level')
       ORDER BY name;"

    Outputnya adalah sebagai berikut:

       name          |  setting
    ------------------|-----------
    archive_command   | /bin/true
    archive_mode      | on
    listen_addresses  | *
    wal_level         | replica
    (4 rows)
    

Menyiapkan server cadangan Barman

Untuk menyiapkan dan mengonfigurasi Barman agar berfungsi dengan server AlloyDB Omni Anda, jalankan perintah berikut di server Barman Anda.

  1. Pastikan koneksi replikasi streaming berfungsi:

    psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1

    Outputnya mirip dengan hal berikut ini:

          systemid       | timeline |  xlogpos   | dbname
    ---------------------+----------+------------+--------
     7265722823667040273 |        1 | 0/1F0AFCD0 |
    (1 row)
    
  2. Pastikan Barman dapat terhubung ke server AlloyDB Omni sebagai pengguna database barman.

    psql -t -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"

    Ganti DATABASE_IP dengan alamat IP server AlloyDB Omni Anda.

    Outputnya mirip dengan hal berikut ini:

    Connected as: barman
    
  3. Konfigurasi server cadangan Barman sesuai dengan kebutuhan dan preferensi Anda.

    Konfigurasi Anda harus menyertakan setelan berikut:

    • Tetapkan conninfo untuk terhubung ke database postgres AlloyDB Omni sebagai pengguna barman.
    • Tetapkan streaming_conninfo untuk menggunakan pengguna streaming_barman.
    • Konfigurasi direktif lain yang diperlukan untuk mengaktifkan streaming WAL, seperti yang diarahkan oleh dokumentasi Barman.

    Contoh minimal namun lengkap berikut mengubah contoh streaming-configuration dari dokumentasi Barman:

    [CONFIGURATION_TAG]
    description = "Backup settings for my AlloyDB Omni server"
    conninfo = host=DATABASE_IP user=barman dbname=postgres
    streaming_conninfo = host=DATABASE_IP user=streaming_barman
    backup_method = postgres
    streaming_archiver = on
    slot_name = barman
    

    Ganti kode berikut:

    • CONFIGURATION_TAG: tag singkat untuk mengidentifikasi konfigurasi server ini saat menjalankan perintah barman—misalnya, omni.

    • DATABASE_IP: alamat IP server AlloyDB Omni Anda.

  4. Beralihlah ke pengguna barman.

    sudo su - barman
  5. Gunakan perintah barman receive-wal untuk membuat slot replikasi, lalu mulai menerima aliran WAL dari server database:

    barman receive-wal --create-slot CONFIGURATION_TAG
    barman receive-wal CONFIGURATION_TAG &

    Ganti CONFIGURATION_TAG dengan tag konfigurasi yang Anda pilih di langkah sebelumnya.

Barman kini dikonfigurasi untuk bekerja dengan server AlloyDB Omni Anda. Untuk memeriksa status replikasi, membuat cadangan manual, dan melakukan tugas lainnya, lihat Perintah umum.

Misalnya, untuk membuat cadangan manual, jalankan perintah barman backup.

Langkah berikutnya