Belajar pgBackRest - Instalasi & Konfigurasi Dasar
Episode 3 of 23

Belajar pgBackRest - Instalasi & Konfigurasi Dasar

Episode ini memandu instalasi pgBackRest 2.59.0 dengan dua cara: paket distribusi atau build from source, lalu menyiapkan direktori repository milik user postgres. Kalian juga menulis konfigurasi dasar /etc/pgbackrest.conf dengan bagian [global] (repo1-path, log-level) dan [stanza] (pg1-path) yang benar untuk cluster kalian.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Setelah memahami arsitektur di episode 2, saatnya aksi nyata pertama: memasang pgBackRest dan menulis konfigurasi pertama. Di episode 3 kita membahas dua jalur instalasi — paket distribusi untuk kecepatan dan build from source untuk kontrol penuh — lalu menyiapkan direktori repository dan menulis /etc/pgbackrest.conf yang benar.

Keputusan "paket atau build sendiri" bukan sekadar soal kemudahan. Di production, paket dari repo resmi (PGDG) adalah pilihan paling waras karena sudah diuji dengan PostgreSQL dan diurus dependensinya. Build dari source berguna ketika kalian ingin fitur terbaru yang belum masuk paket, atau menyesuaikan build. Kita bahas keduanya.

Prasyarat Instalasi

Pastikan PostgreSQL sudah terpasang (episode 0) dan user postgres ada. Cek dependency build jika memilih jalur source:

Cek build dependencies (Debian/Ubuntu)
gcc --version
make --version

Untuk build from source dibutuhkan compiler C dan make. Paket distribusi biasanya tidak membutuhkan ini karena binary sudah disediakan.

Instalasi via Paket Distribusi

Cara tercepat dan paling direkomendasikan. Di Debian/Ubuntu dengan repo PGDG:

Install pgbackrest dari paket
sudo apt update
sudo apt install -y pgbackrest

Di RHEL/Fedora/Rocky:

Install pgbackrest di RHEL
sudo dnf install -y pgbackrest

Verifikasi hasilnya:

Cek versi pgBackRest
pgbackrest version

Output harus menampilkan pgbackrest 2.59.0. Paket juga menyediakan file config kosong di /etc/pgbackrest.conf dan direktori log di /var/log/pgbackrest/.

Build dari Source

Jika paket distro belum punya 2.59.0, atau kalian butuh kontrol build penuh:

Build pgBackRest dari source
wget https://github.com/pgbackrest/pgbackrest/archive/refs/tags/release/2.59.0.tar.gz
tar -xzf 2.59.0.tar.gz
cd pgbackrest-release-2.59.0/src
./configure
make -s

Hasilnya berupa binary di src/pgbackrest. Pasang ke lokasi standar:

Pasang binary hasil build
sudo cp pgbackrest /usr/bin/pgbackrest
sudo chmod 755 /usr/bin/pgbackrest
pgbackrest version

Tip

Build from source penting kalian pahami karena environment production (misalnya container minimal atau host tanpa akses internet ke repo PGDG) sering memaksa jalur ini. Simpan binary hasil build sebagai artefak — jangan build ulang setiap ada perubahan host.

Menyiapkan Direktori dan User

pgBackRest berjalan sebagai user postgres untuk backup lokal (agar bisa membaca PGDATA dan menulis WAL). Semua direktori yang ia sentuh harus dimiliki user tersebut:

Buat direktori repository dan log
sudo mkdir -p /var/lib/pgbackrest
sudo chown -R postgres:postgres /var/lib/pgbackrest
sudo mkdir -p /var/log/pgbackrest
sudo chown -R postgres:postgres /var/log/pgbackrest

Pola permission ini penting: archive_command dieksekusi oleh proses PostgreSQL (user postgres), jadi user postgres harus bisa menulis ke repository. Di episode 15 kita akan melihat betapa sering permission denied di archive-push berakar pada langkah kecil ini.

Semua konfigurasi pgBackRest ada di /etc/pgbackrest.conf dengan format INI. Bagian [global] berlaku untuk semua stanza; bagian [nama-stanza] khusus untuk satu cluster. Untuk cluster lokal dengan PGDATA di /var/lib/postgresql/16/main:

/etc/pgbackrest.conf
[global]
repo1-path = /var/lib/pgbackrest
repo1-retention-full = 2
log-level-file = info
process-max = 2
 
[main]
pg1-path = /var/lib/postgresql/16/main
pg1-port = 5432
pg1-user = postgres

Penjelasan tiap opsi:

  • repo1-path — lokasi repository. Nilai harus sama dengan direktori yang kita buat.
  • repo1-retention-full — berapa full backup yang dipertahankan (retention detail di episode 5).
  • log-level-file — level log yang ditulis ke /var/log/pgbackrest/; naikkan ke debug saat troubleshooting (episode 15).
  • process-max — jumlah process paralel untuk backup/restore (episode 7).
  • pg1-path — lokasi PGDATA cluster. Wajib dan harus persis.
  • pg1-user — user yang menjalankan PostgreSQL; default postgres.
  • pg1-port — port PostgreSQL; hanya perlu jika bukan 5432.

Perhatikan: karena database dan repository ada di host yang sama, kita tidak menulis pg1-host maupun repo1-host. Kedua opsi itu baru muncul untuk mode remote (episode 12).

Warning

File /etc/pgbackrest.conf bisa berisi passphrase enkripsi (episode 11) — karena itu pastikan permission-nya aman: sudo chmod 600 /etc/pgbackrest.conf dan dimiliki root. Jangan pernah meletakkan passphrase di config yang terbaca user lain.

Verifikasi Konfigurasi

pgBackRest menyediakan cara cepat memastikan config valid — baca config dan tampilkan nilai efektifnya:

Tampilkan konfigurasi efektif
pgbackrest --stanza=main config

Perintah config mencetak semua opsi yang berlaku untuk stanza main, termasuk yang diambil dari default. Ini alat debugging yang sangat berguna: kalian langsung melihat nilai akhir repo1-path dan pg1-path tanpa menebak-nebak.

Jika ada opsi yang salah ketik, pgBackRest menolak menjalankan perintah dengan pesan error yang jelas. Pada titik ini instalasi dan konfigurasi dasar sudah selesai — tetapi belum ada stanza yang benar-benar dibuat. Itu pekerjaan episode 4.

Penutup

Inti yang harus dibawa pulang:

  • Instal via paket distro untuk production; build from source untuk kontrol/fitur terbaru.
  • Binary hasil build dari src/pgbackrest — pasang ke /usr/bin/pgbackrest.
  • Direktori /var/lib/pgbackrest dan /var/log/pgbackrest wajib dimiliki user postgres.
  • Config /etc/pgbackrest.conf = bagian [global] (repo1-path, log-level, process-max) + [stanza] (pg1-path, pg1-user).
  • pgbackrest --stanza=main config untuk memverifikasi nilai efektif semua opsi.

Di episode 4 selanjutnya kita akan menghidupkan stanza untuk pertama kali: pgbackrest stanza-create, memvalidasi seluruh rantai (database, repository, archive) dengan pgbackrest check, lalu menjalankan backup full pertama dan membaca hasilnya lewat pgbackrest info. Inilah momen pertama repository kalian berisi data sungguhan!