Backup pasti akan bermasalah — yang membedakan profesional adalah cara mereka mendiagnosis. Episode ini membahas toolkit debugging Borg: borg check, --debug-topic, dan BORG_LOGGING_CONF, plus kasus umum seperti repo lock, korupsi, dan version mismatch, serta recovery dari segmen rusak dengan praktik preventif.

Pada satu titik, backup kalian akan gagal — itu bukan "jika", tapi "kapan". Yang membedakan operator berpengalaman bukan kemampuan menghindari masalah, melainkan kecepatan mendiagnosis dan memulihkannya tanpa memperparah keadaan. Episode 16 membekali kalian toolkit debugging Borg: borg check sebagai pemeriksa awal, --debug-topic untuk jejak detail, hingga log terstruktur dengan BORG_LOGGING_CONF.
Sebelum menyalahkan apa pun, verifikasi kesehatan repository dengan borg check /backup/borg. Hasilnya memberi arah: kesalahan di index/segment menunjukkan masalah repository; kesalahan saat membangun ulang cache menunjukkan masalah lokal klien.
Borg bisa mengaktifkan log debug per topik — jauh lebih berguna daripada debug penuh yang bising:
borg create --debug-topic=archive,chunker --list /backup/borg::test /homeTopik yang umum: archive (metadata archive), chunker (proses pemecahan chunk), repository, cache, ssh. Kombinasi --debug + --debug-topic memberi detail maksimal.
Untuk debugging jangka panjang di produksi, gunakan konfigurasi logging sendiri:
[loggers]
keys = root, repository
[handlers]
keys = file, console
[formatters]
keys = standard
[logger]
level = INFO
[logger.repository]
level = DEBUG
[handler_file]
class = FileHandler
level = DEBUG
args = ('/var/log/borg.log', 'a', 'UTF-8', 1)
[handler_console]
class = StreamHandler
level = WARNING
[formatter_standard]
format = %(asctime)s %(levelname)s %(name)s %(message)sAktifkan dengan export BORG_LOGGING_CONF=/etc/borg/logging.conf lalu jalankan perintah borg seperti biasa. Log detail masuk ke /var/log/borg.log sementara konsol tetap bersih — pola yang sehat untuk otomasi.
Failed to create/acquire the lock on /backup/borgPenyebab: proses borg lain sedang berjalan, atau lock lama dari crash/matilistrik. Pertama periksa proses dengan ps aux | grep "[b]org". Jika tidak ada proses tapi lock masih ada, itu stale lock — jangan pernah rm file lock secara manual; gunakan borg break-lock /backup/borg, dan hanya jika kalian yakin benar-benar stale.
Repository or key data seem corruptLangkah pertama: jangan panik dan jangan langsung --repair. Diagnosis dengan borg check /backup/borg --debug-topic=repository:
borg check membangun ulang index dari segmen.borg check --repair, dengan salinan repository di tempat lain terlebih dahulu. Ingat peringatan episode 12: --repair menghapus data yang tak bisa diperbaiki.Repository was made with a different security feature levelRepo dibuat Borg 2.0 tidak bisa dibaca 1.4, dan sebaliknya. Diagnosis cepat: bandingkan borg --version dengan versi di config repository. Solusinya: samakan versi klien dan server (episode 15), atau untuk repo 2.0-beta jangan dipaksa dibaca 1.x — bangun repo baru dengan versi yang benar.
Connection closed by remote hostUji koneksi secara manual dengan BORG_RSH='ssh -v' borg list borg@backup-host:/srv/borg/backup. -v menampilkan handshake SSH; kegagalan di command= authorized_keys biasanya tampak jelas di sini.
Ketika segmen benar-benar rusak dan berisi chunk yang direferensikan archive:
borg check --verify-data — chunk mana yang tidak lolos.borg check --repair membuang chunk korup — file terkait hilang dari archive, tetapi archive lain tetap utuh.Praktik preventif yang paling efektif: selalu ada salinan repo kedua dan borg check rutin. Recovery terbaik adalah yang tidak pernah dibutuhkan.
Warning
borg check --repair dan borg break-lock adalah dua senjata yang bisa menyelamatkan atau menghancurkan. Keduanya mengubah repository secara permanen. Sebelum memakainya: backup dulu repository, pahami apa yang dilakukan, dan jika ragu — tanyakan ke komunitas (episode 21).
borg break-lock, bukan rm file di lock.exclusive.BORG_LOGGING_CONF agar jejak tersimpan, bukan hilang di terminal.borg check, bukan asumsi.--debug-topic memberi jejak per topik; BORG_LOGGING_CONF menyimpan log untuk produksi.borg break-lock), korupsi (check → repair hati-hati), mismatch versi, dan SSH failure.--repair sebagai jalan terakhir.Di episode 17 kita menengok masa depan: Borg 1.4.5 vs Borg 2.0 — mengapa 1.4.5 tetap pilihan produksi, apa saja yang dirombak 2.0 (format repo, hash index, --match-archives, segment management), dan kapan kalian boleh pindah.