Episode ini mengajarkan troubleshooting Bacula: mode debug bacula-dir -d, log di /var/log/bacula/, diagnosa lewat bconsole status, kasus umum (autentikasi gagal, tape penuh, catalog lock), serta recovery catalog dari backup catalog dan restore dari tape saat bencana terjadi.

Di episode 15 kita membangun sistem yang besar. Dan sistem besar akan jatuh — pertanyaannya bukan "apakah", melainkan "seberapa cepat kalian menemukan akar masalahnya". Di episode 16 kita mempertajam kemampuan troubleshooting: membaca log, menjalankan debug, mengenali pola kegagalan umum, dan yang terpenting — pulih dari kegagalan catalog. Troubleshooting yang baik bukan menghafal error, melainkan menguasai alat dan urutan diagnosa.
Setiap daemon Bacula punya opsi -d dengan level 0-200+. Semakin tinggi, semakin banyak detail:
sudo bacula-dir -d 100Perintah ini menjalankan Director di foreground dengan debug penuh — termasuk detail koneksi, autentikasi, dan keputusan job. Level umum:
-d 0 — normal.-d 20 — detail job dan koneksi.-d 100 — sangat rinci; siapkan output besar.-d 200 — hujan byte; hanya untuk kasus ekstrem.bacula-sd -d 100 dan bacula-fd -d 100 juga tersedia. Jangan jalankan debug di production saat jam kerja tanpa log capture — outputnya bisa memenuhi terminal dengan cepat.
Rutinitas pertama saat ada masalah adalah membaca log sesuai resource Messages:
sudo tail -50 /var/log/bacula/bacula.log
sudo grep -iE "error|fatal|warning" /var/log/bacula/bacula.log | tail -30Untuk masalah job spesifik, gunakan bconsole:
* messages jobid=42* status dir
* status sd
* status client=web-01-fd
* list volumes
* list jobsUrutan diagnosa yang disarankan: status Director → status Storage → status Client → list volumes. Biasanya salah satu dari empat ini langsung mengungkap lokasi masalah.
Note
Urutan diagnosa itu penting. Jangan langsung mengganti password atau me-restart daemon sebelum membaca status. Sebagian besar insiden Bacula adalah "salah satu komponen tidak tersedia" — dan itu selalu terlihat di status.
bacula-dir: Authorization problem with: client "web-01-fd"Penyebab paling umum: password antara resource Client (di dir) dan resource Director (di fd) tidak cocok, atau nama resource salah. Periksa:
grep -A3 'Client {' /etc/bacula/bacula-dir.conf
grep -A3 'Director {' /etc/bacula/bacula-fd.confDevice "TapeDrive" is not able to find a Volume to write to.Penyebab: semua volume di pool penuh atau sedang di-retention. Solusi: tambah volume, perpanjang pool, atau pangkas retention (hati-hati):
* list volumes pool=TapePool
* label pool=TapePoolsqlite3_backup: database table is lockedUntuk SQLite, ini terjadi saat beberapa proses mengakses database bersamaan — pastikan hanya satu Direktor berjalan dan kurangi concurrent job yang memicu catalog (episode 20). Untuk PostgreSQL/MySQL, lock lebih jarang; periksa transaksi yang menggantung:
SELECT pid, state, wait_event FROM pg_stat_activity WHERE state <> 'idle';sudo bacula-dir -t
sudo bacula-sd -t
sudo bacula-fd -t
journalctl -u bacula-director --no-pager | tailValidasi config + log systemd selalu mengungkap penyebab — biasanya kurung kurawal tidak seimbang atau resource referensi yang belum ada.
Catalog hilang (disk rusak, database terhapus) — tapi backup catalog (episode 9) tersedia. Inilah saatnya investasi itu kembali.
sudo -u postgres createdb bacula_new
sudo -u postgres psql -f /usr/share/bacula-director/create_postgresql_database bacula_newpg_dump, cukup:sudo -u postgres psql -d bacula_new -f /tmp/catalog-restore.sqlArahkan Director ke catalog baru lewat resource Catalog, validasi, dan restart.
Verifikasi: list jobs, list volumes harus menampilkan sejarah sebelum bencana. Jika hanya ada backup catalog dalam bentuk volume Bacula (bukan pg_dump), restore dulu volume-nya ke lokasi temporary menggunakan bconsole, baru import dump-nya.
Danger
Jika catalog hilang dan tidak ada backup catalog, kalian masih punya data di volume — tapi tidak tahu isinya. Jangan panik dan jangan menimpa volume. Bacula menyediakan bscan untuk memindai ulang volume mentah dan membangun ulang catalog — proses lambat tapi bisa menyelamatkan. Selalu jadwalkan backup catalog.
Saat media yang dibutuhkan ada di tape, restore melibatkan changer:
* restore
... pilih JobId ...
... Bacula meminta mount tape yang benar ...Bacula akan mencari volume yang memuat job tersebut di catalog, meminta tape dari changer (AutomaticMount = yes mempermudah), memindainya, lalu menyalin data. Jika tape ada di rak (bukan di changer), operator harus memasukkan tape — inilah kenapa rotasi tape dan pelabelan fisik yang rapi (episode 11) sangat berharga di saat genting.
Inti yang harus dibawa pulang:
-d 100 memberi detail koneksi/job; mulai dari level rendah lalu naik./var/log/bacula/; messages jobid=N menunjuk job tertentu.bscan adalah jalan terakhir.Di episode 17 selanjutnya kita akan menelaah Bacula 15.0.x dan fitur terbarunya — rilis 15.0.4 (23 Mei 2026) dengan bug fixes dan improvements, lompatan 15.0.0 pada unified catalog dan performa besar, riwayat seri 13.x dan 11.x, serta matriks fitur Community versus Enterprise. Inilah peta versi yang harus kalian pahami untuk keputusan upgrade.