Belajar Mailserver - Backup & Migration
Episode 12 of 23

Belajar Mailserver - Backup & Migration

Mengamankan seluruh data mail server: backup Maildir dan database dengan mysqldump, sinkronisasi incremental memakai doveadm backup, strategi restore dan verifikasi integrity Maildir, migrasi antar server via imapsync dan doveadm sync, serta pola backup offsite yang benar.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Semua konfigurasi yang kita bangun sejak episode 3 akan sia-sia jika data email hilang. Disk rusak, server diretas, atau kesalahan manusia — semuanya nyata. Episode ini membangun dua kemampuan: backup yang andal dan migrasi yang mulus.

Kita akan mencadangkan Maildir dan database, memulihkannya saat diperlukan, lalu memindahkan email antar server memakai doveadm backup/sync dan imapsync. Di akhir episode, kalian punya ritual backup yang bisa dijalankan otomatis.

Apa yang Harus Di-backup

Data mail server terbagi tiga lapisan:

  • Mailbox — isi email dalam Maildir. Ini data terbesar dan paling berharga.
  • Database — akun virtual users, alias, dan pengaturan webmail.
  • Konfigurasimain.cf, /etc/dovecot, /etc/letsencrypt, dan file map.

Jangan hanya mencadangkan Maildir. Kehilangan database berarti kehilangan semua akun — dan kehilangan konfigurasi berarti kehilangan minggu kerja. Tiga-tiganya masuk jadwal backup.

Backup Database

Dump database dengan mysqldump dan kompres hasilnya:

Backup database mail
mysqldump --single-transaction -u mail -p maildb | gzip > /backup/maildb-$(date +%F).sql.gz
mysqldump --single-transaction -u roundcube -p roundcubemail | gzip > /backup/roundcubemail-$(date +%F).sql.gz

--single-transaction menghasilkan dump yang konsisten tanpa mengunci tabel lama. Hapus dump yang lebih tua dari jangka retensi agar disk backup tidak menumpuk:

Bersihkan dump lama
find /backup -name "*.sql.gz" -mtime +30 -delete

Backup Maildir

Maildir sangat ramah backup karena berbentuk file. Ada dua pendekatan:

  • Full snapshot dengan rsync — sederhana, tapi menyalin semua file setiap kali.
  • Incremental dengan doveadm backup — hanya menyalin yang berubah, dan menangani konflik antar user dengan benar.

doveadm backup adalah cara resmi dan paling aman, karena dia memahami format Maildir dan status sinkronisasi:

Backup sinkron Maildir
doveadm backup -u admin@example.com /backup/vmail/

Versi seluruh mailbox:

Backup semua mailbox
doveadm backup -A /backup/vmail/

doveadm backup -A adalah salah satu pola paling umum di produksi. Karena sifatnya inkremental, backup kedua dan seterusnya jauh lebih cepat. Untuk skema cadangan, panggil rsync atau doveadm backup dari cron:

Cron backup malam
0 2 * * * doveadm backup -A /backup/vmail/

Restore dan Verifikasi Integrity

Restore di Maildir cukup mudah: karena tiap pesan adalah file, pemulihan adalah penyalinan kembali. doveadm backup juga berfungsi sebagai restore — arahnya dibalik:

Restore satu user
doveadm backup -u admin@example.com /backup/vmail/admin@example.com/

Setelah restore, verifikasi integrity struktur Maildir:

Verifikasi struktur Maildir
find /var/mail/vhosts -type f | wc -l
ls -la /var/mail/vhosts/example.com/admin/Maildir/

Pastikan folder cur/, new/, dan tmp/ ada dan tmp/ kosong — Maildir yang sehat tidak punya file tertinggal di tmp/ (file di sana menandakan penulisan yang terputus).

Migrasi ke Server Baru

Migrasi penuh berarti memindahkan semua lapisan sekaligus: database, Maildir, dan konfigurasi. Ada dua jalur utama:

Jalur 1 — doveadm sync antar server. Untuk memindahkan email langsung tanpa melalui backup:

Sinkronisasi langsung antar server
doveadm -D sync -u admin@example.com 'imapc:user=admin@example.com:pass=rahasia@old.example.com'

Jalur 2 — imapsync. Tool populer yang memindahkan email antar server IMAP apa pun, bahkan yang bukan Dovecot:

Migrasi dengan imapsync
imapsync --host1 old.example.com --user1 admin@example.com --password1 'rahasia' \
         --host2 new.example.com --user2 admin@example.com --password2 'rahasia-baru'

Keduanya mempertahankan folder dan flag email. Pilih doveadm sync saat kedua sisi Dovecot; pilih imapsync saat salah satu sisi bukan Dovecot.

Warning

Sebelum migrasi, uji dig MX example.com +short dari server baru dan pastikan DNS memakai TTL rendah (misalnya 300 detik) sehari sebelumnya. Saat switch, turunkan lagi ke nilai normal. Kalian akan melihat nanti bahwa koordinasi DNS adalah setengah dari pekerjaan migrasi.

Strategi Backup Offsite

Backup lokal tidak cukup — kebakaran, banjir, atau ransomware tidak peduli lokasi server. Terapkan pola 3-2-1: tiga salinan, dua media berbeda, satu di luar lokasi. Contoh implementasi ringkas:

  • Salinan lokal harian di /backup.
  • Salinan rsync mingguan ke NAS atau VPS lain.
  • Salinan bulanan ke object storage (misalnya R2 atau S3).
Kirim backup ke luar lokasi
rsync -az /backup/ backup@offsite.example.com:/backup/

Uji restore secara berkala — backup yang tidak pernah diuji restore hanyalah ilusi keamanan. Catat waktu restore dalam dokumentasi; episode 22 akan menjadikan ini bagian checklist produksi.

Penutup

Episode 12 selesai. Inti yang harus dibawa pulang:

  • Backup tiga lapisan: Maildir, database, dan konfigurasi.
  • mysqldump --single-transaction untuk dump yang konsisten.
  • doveadm backup -A untuk sinkronisasi Maildir inkremental.
  • Restore adalah membalik arah doveadm backup; verifikasi tmp/ kosong setelahnya.
  • Migrasi memakai doveadm sync (Dovecot-ke-Dovecot) atau imapsync.
  • Terapkan pola 3-2-1 dan uji restore secara berkala.

Data kalian aman. Di episode 13 kita mengunci gerbang: Autentikasi & SASL — menyambungkan Postfix ke socket auth Dovecot, memaksa autentikasi untuk submission, dan memilih mekanisme yang aman. Sampai jumpa di episode 13!

Belajar Mailserver - Backup & Migration | Belajar Mailserver