Episode ini menyiapkan kalian untuk skenario terburuk: strategi backup penuh dan parsial, recovery drills yang rutin, data integrity checks, serta penanganan region outage dengan failover rehearsal yang terencana.

Episode 14 membahas desain DR multi-region. Episode 20 masuk ke level praktik: bagaimana memastikan rencana itu benar-benar bekerja saat dipanggil. Bencana bukan "jika", melainkan "kapan" — dan satu-satunya cara memastikan recovery berfungsi adalah mengujinya secara rutin, sebelum bencana sungguhan terjadi.
Roadmap episode 20: strategi backup penuh dan parsial, recovery drills, data integrity checks, lalu penanganan region outage dengan failover rehearsal.
Backup adalah bahan mentah recovery. Strategi yang sehat menggabungkan beberapa jenis:
vtctlclient Backup <tablet-alias-rdonly>vtctlclient Backup memicu backup dari tablet RDONLY. Untuk otomatisasi, jadwalkan lewat cron atau Kubernetes CronJob. Aturan cadangan: backup harus dari RDONLY, disimpan ke lokasi yang terpisah dari cluster, dan diverifikasi.
Info
Kombinasi yang ideal: backup penuh mingguan, backup inkremental harian, plus replikasi lintas region untuk RPO rendah. Tiga lapis ini membuat kehilangan data dihitung dalam detik, bukan jam atau hari.
Strategi retensi juga penting: simpan beberapa siklus backup penuh untuk melindungi dari korupsi data yang baru terdeteksi berminggu-minggu kemudian. Backup yang terlalu cepat dihapus membuat kalian tidak bisa mundur ke titik sebelum data rusak.
Recovery drill adalah ujian sebenarnya dari strategi backup. Aturan emasnya: backup yang tidak pernah diuji tidak bisa dipercaya. Latihan yang rutin meliputi:
vtctlclient RestoreFromBackup <tablet-alias>vtctlclient RestoreFromBackup mengembalikan tablet dari backup terbaru — proses yang sama saat tablet baru dibuat. Uji perintah ini di lingkungan terpisah secara rutin, bukan hanya saat darurat.
Warning
Jangan pernah menguji restore di cluster produksi dengan cara yang bisa merusak data. Gunakan cluster terpisah atau environment staging untuk drill. Tujuan drill adalah membuktikan proses, bukan menambah risiko.
Setelah restore, data harus divalidasi — restore yang berhasil secara teknis tidak berarti data benar. Cara memeriksa integritas:
CHECK TABLE MySQL untuk integritas struktural.CHECK TABLE usersCHECK TABLE users memeriksa integritas tabel di MySQL. Untuk data yang lebih penting, kombinasikan dengan validasi aplikasi: jalankan test yang membandingkan hasil query sebelum dan sesudah restore.
Ketika sebuah region benar-benar jatuh, kalian butuh urutan tindakan yang sudah disiapkan, bukan improvisasi. Urutan umumnya:
vtctlclient ListAllTablets -cell <region-bermasalah>
vtctlclient ListShardHealth -cell <region-cadangan>vtctlclient ListShardHealth di region cadangan memberi gambaran apakah ada data yang siap dijadikan primary. Ini langkah kedua sebelum keputusan failover.
Failover rehearsal adalah versi terjadwal dari drill: mensimulasikan kegagalan region dan menjalankan seluruh prosedur failover. Bedanya dengan recovery drill, rehearsal fokus pada proses operasional — siapa melakukan apa, kapan, dan lewat kanal apa.
Checklist rehearsal:
Success
Drill yang menemukan masalah bukan kegagalan — justru kesuksesan. Semakin banyak masalah ditemukan saat rehearsal, semakin sedikit yang mengejutkan saat bencana sungguhan. Tim yang paling tenang saat insiden adalah tim yang paling sering berlatih.
Pada episode 20 ini kalian sudah menyiapkan diri untuk skenario terburuk: strategi backup penuh dan parsial dengan retensi yang wajar, recovery drills yang rutin membuktikan backup bisa di-restore, data integrity checks setelah restore, penanganan region outage dengan urutan tindakan, dan failover rehearsal yang menempa runbook.
Inti yang harus dibawa pulang:
Di episode 21 berikutnya kita ukur dan jaga janji: observability at scale dan SLOs — mendefinisikan SLO untuk latensi, availability, dan throughput, memantau shard health, serta alerting pada replication lag, primary failure, dan query errors. Sampai jumpa!