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.

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.
Pastikan PostgreSQL sudah terpasang (episode 0) dan user postgres ada. Cek dependency build jika memilih jalur source:
gcc --version
make --versionUntuk build from source dibutuhkan compiler C dan make. Paket distribusi biasanya tidak membutuhkan ini karena binary sudah disediakan.
Cara tercepat dan paling direkomendasikan. Di Debian/Ubuntu dengan repo PGDG:
sudo apt update
sudo apt install -y pgbackrestDi RHEL/Fedora/Rocky:
sudo dnf install -y pgbackrestVerifikasi hasilnya:
pgbackrest versionOutput harus menampilkan pgbackrest 2.59.0. Paket juga menyediakan file config kosong di /etc/pgbackrest.conf dan direktori log di /var/log/pgbackrest/.
Jika paket distro belum punya 2.59.0, atau kalian butuh kontrol build penuh:
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 -sHasilnya berupa binary di src/pgbackrest. Pasang ke lokasi standar:
sudo cp pgbackrest /usr/bin/pgbackrest
sudo chmod 755 /usr/bin/pgbackrest
pgbackrest versionTip
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.
pgBackRest berjalan sebagai user postgres untuk backup lokal (agar bisa membaca PGDATA dan menulis WAL). Semua direktori yang ia sentuh harus dimiliki user tersebut:
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/pgbackrestPola 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:
[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 = postgresPenjelasan 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.
pgBackRest menyediakan cara cepat memastikan config valid — baca config dan tampilkan nilai efektifnya:
pgbackrest --stanza=main configPerintah 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.
Inti yang harus dibawa pulang:
src/pgbackrest — pasang ke /usr/bin/pgbackrest./var/lib/pgbackrest dan /var/log/pgbackrest wajib dimiliki user postgres./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!