Sebelum menyentuh pgBackRest, kalian perlu menguasai PostgreSQL dasar (psql, pg_ctl, WAL), administrasi Linux (user, systemd, permission), dan konsep storage. Di episode ini kalian juga menyiapkan PostgreSQL 13-18, menginstall pgBackRest 2.59.0, membuat direktori repository, dan menyiapkan SSH untuk mode remote.

Selamat datang di series Belajar pgBackRest! Series ini akan membawa kalian menguasai pgBackRest — solusi backup & restore PostgreSQL yang reliabel, parallel, dan scalable — dari arsitektur (repository, stanza, WAL archiving) hingga konfigurasi, retention, enkripsi, dan praktik produksi untuk database besar. Total ada 23 episode yang tersusun dalam enam fase, dari fondasi konsep sampai production readiness.
Sebelum menjalankan pgbackrest backup --type=full, ada skill dasar dan perangkat yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena pgBackRest bekerja di lapisan terendah PostgreSQL: ia memanfaatkan WAL archiving, berkomunikasi dengan server database melalui libpq, dan menyimpan file ke repository. Tanpa memahami lapisan-lapisan ini, kalian akan kesulitan mendiagnosis kenapa archive-push gagal atau kenapa restore tidak konsisten.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan PostgreSQL, menginstall pgBackRest 2.59.0, membuat direktori repository, dan memverifikasi environment untuk pertama kali.
Kalian harus nyaman dengan konsep inti PostgreSQL: cluster (kumpulan database yang dikelola satu instance), psql (client), pg_ctl (kontrol server), dan terutama WAL (Write-Ahead Log). WAL adalah log transaksi yang memungkinkan point-in-time recovery — inilah jantung cara kerja pgBackRest. Praktikkan hal-hal berikut:
psql -U postgres -c "SELECT version();"
pg_ctl status -D /var/lib/postgresql/16/mainPahami juga pg_hba.conf (otentikasi koneksi) dan postgresql.conf (konfigurasi server) — pgBackRest akan menyentuh keduanya, khususnya parameter archive_mode dan archive_command.
pgBackRest berjalan sebagai binary yang dipanggil oleh PostgreSQL (lewat archive_command) maupun oleh scheduler (cron/systemd timer). Kalian wajib paham manajemen user (useradd), service (systemctl), dan file permission (owner/group/mode). Contoh yang paling sering jadi sumber masalah di production: direktori repository dimiliki user yang salah, sehingga archive-push gagal dengan permission denied.
Repository pgBackRest bisa berada di disk lokal, NFS mount, atau object storage (S3-compatible). Kalian perlu memahami konsep mount point, ukuran dan ruang disk, serta latensi. Ingat: backup yang bagus tidak ada artinya jika disimpan di disk yang sama dengan database — kita akan bahas off-site backup di episode 12.
Series ini menggunakan PostgreSQL dengan rentang versi 13 sampai 18 — pgBackRest 2.59.0 mendukung hingga 10 versi PostgreSQL sekaligus. Pastikan satu versi terpasang dan berjalan sebagai service:
psql -U postgres -c "SHOW server_version;"
systemctl status postgresqlJika belum terpasang, install dari repo distribusi atau PGDG (PostgreSQL Global Development Group):
sudo apt install -y postgresql-16Install pgBackRest 2.59.0 (rilis 20 Juli 2026) — current stable. Dari paket distribusi:
sudo apt install -y pgbackrest
pgbackrest versionpgbackrest version harus menampilkan pgbackrest 2.59.0. Alternatifnya, kalian bisa build dari source (kita bahas lebih dalam di episode 3).
Buat direktori repository yang dimiliki user postgres. Lokasi default pgBackRest adalah /var/lib/pgbackrest:
sudo mkdir -p /var/lib/pgbackrest
sudo chown -R postgres:postgres /var/lib/pgbackrestDirektori ini nanti menjadi tempat stanza dan semua file backup disimpan.
Mode remote (repository di host lain, atau database di host lain) membutuhkan SSH dengan key authentication. Pastikan ssh terinstall dan key sudah digenerate:
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519Kita akan mengonfigurasikan mode remote secara penuh di episode 12 dan 13. Untuk sekarang, cukup pastikan SSH bisa jalan tanpa password.
Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:
pgbackrest version
psql -U postgres -c "SELECT version();"
ls -ld /var/lib/pgbackrest
ssh -o BatchMode=yes localhost trueKeempat perintah harus sukses: versi 2.59.0, PostgreSQL merespons, direktori repository milik postgres, dan SSH berjalan tanpa prompt password.
Warning
Jangan menyimpan repository backup di partisi yang sama dengan data database. Jika disk rusak, backup ikut hilang. Gunakan mount terpisah, NFS, atau object storage — ini keputusan arsitektur yang paling menentukan kelangsungan recovery di episode-episode berikutnya.
Rangkuman yang sudah kalian siapkan di episode 0:
psql, pg_ctl, pg_hba.conf.pgbackrest version mencetak versi./var/lib/pgbackrest dimiliki user postgres.Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 22 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.
Inti yang harus dibawa pulang:
/var/lib/pgbackrest wajib dimiliki user postgres.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa membutuhkan pgBackRest — dari inisiasi Crunchy Data tahun 2014, keterbatasan skrip pg_basebackup + WAL archiving yang rapuh, hingga fitur parallel backup, WAL archiving kontinu, PITR presisi, dan retention policy yang menjadikannya standar backup PostgreSQL modern. Pastikan environment kalian sudah siap, karena perjalanan Belajar pgBackRest baru saja dimulai!