Backup yang menumpuk tanpa kebijakan akan menghabiskan ruang dan memperlambat maintenance. Episode ini mengajarkan retention policy dengan borg prune (keep-daily/weekly/monthly), reclaim ruang lewat borg compact, menyelaraskan kebijakan dengan RPO dan RTO, serta memakai --keep-tag untuk melindungi archive tertentu dari pemusnahan.

Setelah beberapa minggu backup harian, repository akan penuh dengan archive. Tanpa kebijakan, ruang disk habis dan setiap borg create melambat. Episode 8 memperkenalkan dua perintah yang bekerja berpasangan: borg prune untuk menghapus archive sesuai aturan retention, dan borg compact untuk benar-benar mengembalikan ruang. Di sinilah kalian mulai berpikir seperti SRE: backup bukan sekadar menyalin, tapi mengelola siklus hidup data.
borg prune --list --stats \
--keep-daily 7 \
--keep-weekly 4 \
--keep-monthly 6 \
/backup/borgBacaan aturannya:
--keep-daily 7 — simpan 7 archive harian terakhir.--keep-weekly 4 — simpan 4 archive mingguan terakhir.--keep-monthly 6 — simpan 6 archive bulanan terakhir.Borg menghitung archive "terbaru" untuk tiap kategori dan menghapus sisanya. Archive yang dipertahankan oleh kategori apa pun tidak akan terhapus. --list dan --stats menampilkan apa yang dihapus dan berapa ruang yang berpotensi dibebaskan.
Bila satu repo berisi archive dari banyak host atau jenis backup, batasi scope prune:
borg prune --prefix "web-01-" \
--keep-daily 7 --keep-weekly 4 /backup/borgborg prune --glob-archives "web-01-*" \
--keep-daily 7 --keep-weekly 4 /backup/borgTidak semua archive tunduk pada retention. Untuk snapshot yang harus bertahan (misal sebelum migrasi besar atau rilis), beri tag:
borg tag /backup/borg::"web-01-2026-08-13T10:30:00" pre-migrasiborg prune --keep-tag pre-migrasi \
--keep-daily 7 --keep-weekly 4 --keep-monthly 6 /backup/borgArchive bertag pre-migrasi akan dipertahankan tanpa batas sampai kalian melepas tag atau menghapus archive secara eksplisit.
Important
Sejak Borg 1.2, prune dan delete tidak lagi otomatis membebaskan ruang. Keduanya hanya menandai segmen yang tidak terpakai. Ruang baru benar-benar kembali setelah borg compact. Kalau kalian hanya menjalankan prune dan bingung kenapa df tidak berubah — inilah jawabannya.
borg compact /backup/borgborg compact menggabungkan segmen yang masih berisi chunk valid, membuang chunk yang tidak lagi direferensikan archive mana pun, dan menghapus segmen kosong. Jalankan compact setiap kali selesai prune atau delete.
prune terjadwal.borg delete manual.Kebijakan retention harus menjawab dua angka ini, bukan mengikuti kebiasaan:
Pendek (7 hari) : --keep-daily 7
Menengah (4 minggu): --keep-weekly 4
Panjang (6 bulan) : --keep-monthly 6
Tahunan (2 tahun) : --keep-yearly 2
Total archive aktif: 7 + 4 + 6 + 2 = 19Karena Borg dedup, archive lama yang berisi data sama dengan yang baru hampir tidak menambah ruang — jadi retention panjang tidak semahal kelihatannya.
Tip
Retention policy harus dituliskan, disepakati tim, dan direview berkala — bukan tersimpan di kepala. Saat kebijakan berubah, cukup ubah parameter prune; borgmatic (episode 9) adalah tempat yang tepat untuk mendokumentasikannya sebagai kode.
--prefix, prune bisa menghapus archive host lain. Filter dulu.--stats: prune yang menghapus ratusan archive seharusnya mencurigakan. Selalu periksa output sebelum dan sesudah.borg prune menghapus archive berdasarkan aturan retention (daily/weekly/monthly/yearly).borg compact mengembalikan ruang — wajib dijalankan setelah prune/delete.--prefix/--glob-archives untuk memfilter scope di repo bersama.--keep-tag melindungi archive penting dari pemusnahan otomatis.Di episode 9 kita mengotomatiskan semuanya: otomasi dengan borgmatic — konfigurasi YAML yang merangkum create, prune, compact, dan check dalam satu tempat, dijadwalkan lewat cron atau systemd timer, dengan hooks sebelum dan sesudah backup.