Pencadangan basis data adalah bagian penting dari manajemen basis data, dan harus direncanakan dengan cermat. Menjadwalkan pencadangan saja tidak cukup, data cadangan juga perlu diverifikasi konsistensi dan integritasnya. Ada pertimbangan lain seperti enkripsi, dan pengarsipan di luar situs. Manajer pencadangan yang baik akan memiliki fitur yang mempertimbangkan semua pertimbangan yang berbeda ini.
Dalam posting blog ini, kita akan melihat bagaimana Anda dapat menjadwalkan backup database Anda dengan ClusterControl.
Cadangan Basis Data Menggunakan ClusterControl
ClusterControl mendukung sejumlah metode pencadangan tergantung pada jenis cluster, seperti yang dirangkum dalam tabel berikut:
Jenis Cluster | Metode Pencadangan yang Didukung |
---|---|
MySQL (Replikasi, Galera, Cluster NDB, Replikasi Grup) |
|
MongoDB (Set Replika, Cluster Sharded) |
|
PostgreSQL (Replikasi Streaming) |
|
Saat menjadwalkan pencadangan dengan ClusterControl, setiap metode pencadangan dapat dikonfigurasi dengan serangkaian opsi tentang bagaimana Anda ingin pencadangan dijalankan. Beban kerja database dan strategi pencadangan yang berbeda akan memerlukan dukungan untuk fitur yang berbeda, misalnya:
- Pembatasan IOPS Disk
- Pembatasan jaringan
- Kunci Cadangan
- Enkripsi
- Kompresi
- Periode retensi
- Verifikasi
ClusterControl akan secara otomatis menetapkan sejumlah opsi pencadangan, mengikuti praktik terbaik dari vendor basis data tertentu. Misalnya, jika node basis data target mengaktifkan log biner, itu akan menambahkan tanda tambahan, --master-data untuk memasukkan koordinat log biner (nama file dan posisi) dari server yang dibuang. Jika itu adalah simpul Galera dan metode pencadangannya adalah xtrabackup, ClusterControl akan menambahkan tanda tambahan, --galera-info yang berisi status simpul lokal pada saat pencadangan.
Merencanakan Pencadangan
Sebelum menjadwalkan pencadangan apa pun, kita harus merencanakan bagaimana operasi pencadangan seharusnya. Menjawab pertanyaan contoh berikut akan sangat membantu sebelum Anda membuat jadwal pencadangan:
- Metode pencadangan apa yang ingin Anda gunakan? Beberapa metode pencadangan tidak memblokir, tetapi sangat intensif sumber daya. Pahami timbal baliknya, sehingga Anda tidak terkejut tentang bagaimana proses berperilaku dalam produksi.
- Seberapa sering Anda ingin membuat cadangan database Anda? Menjalankan pencadangan penuh mungkin menyakitkan jika interval pencadangan terlalu pendek. Anda mungkin memerlukan campuran cadangan penuh dan tambahan.
- Seberapa cepat Anda ingin memulihkan data? Pencadangan fisik biasanya jauh lebih cepat daripada pencadangan logis dalam hal waktu pemulihan penuh. Di sisi lain, pencadangan logis biasanya lebih cepat untuk pemulihan sebagian.
- Seberapa besar ukuran data Anda? Dalam beberapa kasus, pencadangan logis bukanlah pilihan yang baik untuk basis data besar, dan pencadangan biner adalah satu-satunya cara.
- Berapa banyak ruang kosong yang Anda miliki untuk menyimpan cadangan Anda? Cadangan cenderung memakan banyak ruang. Putuskan apakah kompresi diperlukan dan tingkat kompresi yang Anda mampu. Kompresi yang lebih baik membutuhkan penggunaan CPU yang lebih tinggi.
- Bagaimana jika server cadangan mati selama waktu pencadangan? Haruskah itu mem-failover cadangan ke host lain yang tersedia? Melewatkan pencadangan karena masa pemeliharaan biasanya bukan ide yang baik.
- Bagaimana cara memastikan integritas cadangan yang dibuat? Ingat, cadangan bukanlah cadangan jika tidak dapat dipulihkan.
- Apakah Anda memercayai penyimpanan cadangan? Enkripsi mungkin merupakan ide yang baik untuk melindungi data Anda.
Secara umum, dengan menjawab pertanyaan-pertanyaan itu, kita dapat menemukan strategi cadangan yang tepat. Daftar pertanyaan bisa lebih panjang bergantung pada kebijakan pencadangan dan pemulihan Anda.
Kami telah membahas bab ini secara mendetail dalam whitepaper kami, Panduan DevOps untuk Pencadangan Basis Data untuk MySQL dan MariaDB.
Menjadwalkan Pencadangan
Dengan ClusterControl, penjadwalan cukup mudah. Langsung ke Backup -> Create Backup -> Schedule Backup dan Anda akan disajikan dialog berikut:
Tergantung pada jenis cluster, opsinya mungkin berbeda, seperti yang ditunjukkan pada tangkapan layar berikut untuk PostgreSQL dan MongoDB:
PostgreSQL MongoDBSebagian besar opsi sudah cukup jelas, dan tercakup secara rinci dalam Panduan Pengguna. Setelah jadwal dibuat, Anda dapat mengedit cadangan konfigurasi, mengaktifkan/menonaktifkan cadangan, atau menghapus jadwal di bawah tab "Cadangan Terjadwal":
Perhatikan saat menjadwalkan pencadangan dengan ClusterControl, semua waktu harus dijadwalkan dalam zona waktu UTC dari server ClusterControl. Alasan di balik ini adalah untuk memotong kebingungan waktu eksekusi pencadangan. Saat bekerja dengan sebuah cluster, server database dapat tersebar di zona waktu yang berbeda dan wilayah geografis yang berbeda. Menggunakan satu zona waktu referensi untuk mengelola semuanya akan memastikan pencadangan selalu dijalankan pada waktu yang tepat.
Anda dapat memantau kemajuan pencadangan dengan melihat Aktivitas -> Pekerjaan setelah waktunya tiba. Jika pekerjaan pencadangan gagal, Anda akan langsung melihat kesalahan:
Log di atas juga dapat diakses di bawah tab Cadangan pada setiap entri cadangan:
Pemeriksaan dan Verifikasi Pasca-Pencadangan
Setelah pekerjaan pencadangan selesai, itu tidak berarti tanggung jawab Anda selesai. Ada beberapa hal yang perlu ditindaklanjuti. Yang paling penting adalah status cadangan yang dibuat. ClusterControl menyediakan pemberitahuan email dan akan memberi tahu Anda tentang statusnya. Layanan pemberitahuan ini tentu saja dapat dikonfigurasi berdasarkan tingkat keparahan di bawah Pengaturan -> Pengaturan Umum -> Pengaturan Pemberitahuan Email -> Cadangan:
Deliver berarti ClusterControl akan mengirimkan email notifikasi segera setelah alarm untuk komponen ini dimunculkan. Anda juga dapat mengonfigurasinya sebagai Abaikan, atau Intisari, tempat ClusterControl mengirimkan ringkasan harian dari alarm yang dimunculkan.
Jika cadangan berhasil dibuat, sangat disarankan untuk memverifikasi apakah cadangan dapat dipulihkan. Anda dapat menggunakan fitur Verifikasi Cadangan dengan mengklik tombol "Pulihkan" dari ID cadangan yang dipilih dan Anda akan disajikan dua opsi pemulihan:
"Pulihkan dan verifikasi pada host mandiri" memerlukan host terpisah, yang belum menjadi bagian dari penyiapan basis data. ClusterControl pertama-tama akan menerapkan instance MySQL pada host target, memulai layanan, menyalin cadangan dari repositori cadangan, dan memulai pemulihan. Setelah selesai, Anda dapat memiliki opsi untuk mematikan server setelah dipulihkan atau membiarkannya berjalan sehingga Anda dapat melakukan penyelidikan lebih lanjut pada server.
Tata graha juga penting untuk menyimpan hanya cadangan yang berguna di penyimpanan Anda. Jadi, konfigurasikan penyimpanan cadangan seperlunya. Secara default ClusterControl membersihkan cadangan yang lebih lama dari 30 hari. Anda juga dapat menyesuaikan setiap jadwal pencadangan dengan periode penyimpanan yang berbeda.
Jika penyimpanan cadangan mendekati batas ruang, atau Anda ingin mengarsipkan cadangan Anda secara offside, Anda dapat memilih untuk menghapus file secara manual dengan mengklik ikon tempat sampah atau mengunggahnya ke awan, seperti yang disorot di bawah ini:
Pada saat penulisan, AWS S3 dan GCP Cloud Storage didukung. Kredensial cloud harus dikonfigurasi sebelumnya di Menu Samping -> Integrasi -> Penyedia Cloud.
Itu saja, orang-orang. Selamat mengelompokkan!