Membuat cadangan database yang tepat adalah tugas yang penting. Selain mengatur arsitektur ketersediaan tinggi MongoDB Anda untuk layanan database, Anda juga perlu memiliki cadangan database Anda untuk memastikan ketersediaan data jika terjadi bencana. Misalnya, jika Anda tidak sengaja menghapus beberapa data dari database produksi, satu-satunya cara untuk memulihkan data dari sudut pandang database adalah dengan memulihkan dari cadangan.
Baru-baru ini, ClusterControl mulai mendukung metode pencadangan baru, yang disebut Percona Backup for MongoDB, yang dikembangkan oleh Percona. Itu dapat menjalankan pencadangan yang konsisten untuk Kumpulan Replika MongoDB dan Cluster Sharded.
Di blog ini, kita akan melihat pengelolaan cadangan untuk Kumpulan Replika MongoDB dan Cluster Sharded.
Cadangan MongoDB dalam Arsitektur yang Sangat Tersedia
ClusterControl mendukung 3 metode pencadangan, yaitu mongodump, mongodb konsisten , dan Percona Backup for Mongodb. Cadangan konsisten mongodb menggunakan utilitas mongodump sebagai metode pencadangan, dan cadangan dapat dipulihkan menggunakan mongorestore.
Metode pencadangan terbaru yang didukung adalah Percona Backup for Mongodb untuk pencadangan Replica Set dan Sharded Cluster yang konsisten dan tepat waktu, ini memerlukan agen untuk berjalan di setiap node atau kumpulan replika atau node shard dan node manajemen untuk shard cluster seperti yang dijelaskan di sini.
Mengonfigurasi dan menjadwalkan pencadangan yang konsisten menggunakan Percona Backup untuk Mongodb di ClusterControl sangat mudah. Buka halaman Cadangan, lalu konfigurasikan Cadangan Percona untuk Mongodb. Prasyaratnya adalah memiliki Percona Backup untuk MongoDB yang berjalan di setiap node, yang juga dapat diinstal dari ClusterControl.
Kita perlu menginstall Percona Backup for MongoDB agent terlebih dahulu sebelum dapat menjadwalkan Backup seperti di bawah ini:
Dan kemudian konfigurasikan direktori cadangan. Harap perhatikan bahwa direktori cadangan harus berupa disk bersama yang telah dipasang pada semua node dengan jalur pemasangan yang sama persis seperti di bawah ini:
Jika Anda tidak memiliki disk bersama apa pun yang siap di sistem, Anda dapat menggunakan NFS untuk mencapai ini. Untuk mengkonfigurasi server NFS, kita memerlukan dedicated server / mesin virtual dengan ruang kosong yang cukup untuk menyimpan cadangan. Instal library nfs-utils dan nfs-utils-lib di server seperti di bawah ini (dengan asumsi kita menggunakan berbasis CentOS):
[[email protected] ~]# yum install nfs-utils nfs-utils-lib
[[email protected] ~]# yum install portmap
Dan mulai portmap dan layanan nfs.
[[email protected] ~]# /etc/init.d/portmap start
[[email protected] ~]# /etc/init.d/nfs start
Setelah itu, tambahkan entri baru di /etc/exports seperti gambar di bawah ini:
[[email protected] ~]# vi /etc/exports
/backup 10.10.10.11(rw,sync,no_root_squash)
Pada node database, kita hanya perlu memasang disk penyimpanan sebagai penyimpanan bersama.
Terakhir, cukup klik tombol instal dan itu akan memicu tugas baru untuk mengonfigurasi agen di setiap node.
Setelah semua PBM ggent terinstal, kita dapat mengkonfigurasi metode backup untuk klaster seperti di bawah ini:
Cadangan Fisik vs Logika
Pencadangan MongoDB mendukung pencadangan logis dan pencadangan fisik. Metode pencadangan logis dengan menggunakan utilitas mongodump disertakan saat Anda menginstal paket mongodb. Mongodump memerlukan akses ke database mongodb Anda, sehingga memerlukan akses kredensial untuk mongodump dengan hak istimewa peran pencadangan dan harus memiliki tindakan grant find untuk mencadangkan database.
Ini berfungsi untuk format dump data BSON. Mongodump akan terhubung ke database Anda dengan kredensial yang disediakan, membaca seluruh data dalam database Anda dan membuang data ke dalam file. Karena ini adalah proses berulir tunggal, pencadangan akan memakan waktu lebih lama terutama dengan ukuran basis data yang besar. Mongodump tidak mempertahankan atomisitas transaksi di seluruh shard, oleh karena itu tidak dapat digunakan sebagai strategi cadangan untuk mongodb versi 4.2 dan di atasnya dalam sharded cluster. Percona Backup untuk MongoDB adalah pencadangan logis tetapi mendukung pencadangan cluster yang konsisten.
Cadangan fisik di MongoDB bekerja melalui snapshot dari sistem file mongodb, menyalin file mongodb yang mendasarinya ke lokasi lain sebagai cadangan dasar database mongodb Anda. Snapshot sistem file adalah sistem operasi jika Anda menggunakan LVM (Logical Volume Manager) sebagai perangkat lunak untuk mengelola tata letak dan perangkat disk Anda, atau perangkat lunak mis. Veritas, atau Pencadangan NetApp. Anda harus mengaktifkan penjurnalan, log aktivitas perubahan di mongodb sebelum menjalankan snapshot sistem file agar pencadangan konsisten.
Selain snapshot sistem file, Anda juga dapat menggunakan perintah cp atau rsync untuk menyalin file data MongoDB, tetapi Anda harus menghentikan proses penulisan ke mongodb karena proses menyalin file data bukanlah operasi atom. Cadangan tidak dapat digunakan untuk Point in Time Recovery di Replika Set atau arsitektur Sharded Cluster.
Percona Backup for MongoDB terdiri dari dua komponen, pbm-agent yang perlu diinstal pada setiap node dan pbm sebagai antarmuka baris perintah untuk berinteraksi dan menjalankan backup. Pbm-agent berkoordinasi antara node database dan menjalankan proses backup dan restorasi. Pbm-agent akan memutuskan node terbaik untuk mengambil cadangan.
Cadangan PITR
Dalam banyak sistem basis data, biasanya menggunakan pos pemeriksaan untuk menghapus data ke dalam disk. MongoDB menggunakan mesin penyimpanan WiredTiger sebagai mesin penyimpanan default dan juga menggunakan pos pemeriksaan untuk memberikan tampilan data yang konsisten. Tidak hanya itu, checkpoint di MongoDB dapat digunakan untuk melakukan recovery dari checkpoint terakhir. Penjurnalan bekerja di antara setiap pos pemeriksaan, penjurnalan diperlukan untuk pulih dari pemadaman tak terduga yang terjadi kapan saja di antara pos pemeriksaan. Penjurnalan menjamin operasi tulis dicatat ke disk, MongoDB akan membuat entri jurnal untuk setiap perubahan, termasuk byte yang diubah dan lokasi disk.
Mongodump dan mongorestore dapat digunakan untuk pencadangan pemulihan titik waktu, ada opsi untuk memanfaatkan oplog. Oplog adalah koleksi yang dibatasi di MongoDB yang melacak semua perubahan dalam koleksi untuk setiap transaksi tulis (mis. menyisipkan, memperbarui, menghapus). Jadi, jika Anda ingin melakukan pemulihan titik waktu, Anda perlu memulihkan dari cadangan penuh terakhir dan juga menggunakan file oplog untuk menerapkan perubahan ke waktu yang tepat yang ingin Anda pulihkan. Alat lain yang dapat digunakan adalah Percona Backup for MongoDB, prosesnya mirip seperti mongodump, kita perlu memulihkan dari cadangan dan kemudian menerapkan oplog.
Kesimpulan
Mengambil cadangan yang konsisten adalah penting, terutama dalam pengaturan MongoDB berkerumun (set replika atau sharded cluster). ClusterControl menyediakan cara mudah untuk mengonfigurasi Pencadangan Percona untuk MongoDB di klaster Anda dan menjadwalkan pencadangan Anda.