Apa itu Replikasi MongoDB?
Replikasi mengacu pada proses untuk memastikan bahwa data yang sama tersedia di lebih dari satu Server DB Mongo. Ini terkadang diperlukan untuk tujuan meningkatkan ketersediaan data.
Karena jika Server MongoDB utama Anda mati karena alasan apa pun, tidak akan ada akses ke data. Tetapi jika Anda memiliki data yang direplikasi ke server lain secara berkala, Anda akan dapat mengakses data dari server lain bahkan jika server utama gagal.
Tujuan replikasi lainnya adalah kemungkinan penyeimbangan beban. Jika ada banyak pengguna yang terhubung ke sistem, alih-alih membuat semua orang terhubung ke satu sistem, pengguna dapat dihubungkan ke beberapa server sehingga ada distribusi beban yang sama.
Di MongoDB, beberapa Server MongDB dikelompokkan dalam set yang disebut set Replica. Kumpulan Replika akan memiliki server utama yang akan menerima semua operasi tulis dari klien. Semua instance lain yang ditambahkan ke set setelah ini akan disebut instance sekunder yang dapat digunakan terutama untuk semua operasi baca.
Dalam tutorial ini, Anda akan belajar -
- Replica Set: Menambahkan Anggota Pertama menggunakan rs.initiate ()
- Replica Set: Menambahkan Sekunder menggunakan rs.add ()
- Replica Set: Konfigurasi Ulang atau Penghapusan menggunakan rs.remove ()
- Memecahkan Masalah Kumpulan Replika
Replica Set: Menambahkan Anggota Pertama menggunakan rs.initiate ()
Seperti yang disebutkan di bagian sebelumnya, untuk mengaktifkan replikasi, pertama-tama kita perlu membuat satu set replika instance MongoDB.
Mari kita asumsikan bahwa untuk contoh kita, kita memiliki 3 server yang disebut ServerA, ServerB, dan ServerC. Dalam konfigurasi ini, ServerA akan menjadi server Utama kami dan ServerB dan ServerC akan menjadi server sekunder kami. Tangkapan layar di bawah ini akan memberikan gambaran yang lebih baik tentang itu.
Di bawah ini adalah langkah-langkah yang perlu diikuti untuk membuat set replika bersama dengan penambahan anggota pertama ke set.
Langkah 1) Pastikan bahwa semua instance mongod.exe yang akan ditambahkan ke set replika diinstal di server yang berbeda. Ini untuk memastikan bahwa bahkan jika satu server mati, yang lain akan tersedia dan karenanya contoh MongoDB lainnya akan tersedia.
Langkah 2) Pastikan semua instance mongo.exe dapat terhubung satu sama lain. Dari ServerA, keluarkan 2 perintah di bawah ini
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
Demikian pula, lakukan hal yang sama dari server yang tersisa.
Langkah 3) Mulai contoh mongod.exe pertama dengan opsi replSet. Opsi ini menyediakan pengelompokan untuk semua server yang akan menjadi bagian dari kumpulan replika ini.
mongo -replSet "Replica1"
Di mana "Replica1" adalah nama kumpulan replika Anda. Anda dapat memilih nama yang bermakna apa pun untuk nama set replika Anda.
Langkah 4) Sekarang server pertama ditambahkan ke set replika, langkah selanjutnya adalah memulai set replika dengan mengeluarkan perintah berikut rs.initiate ()
Langkah 5) Verifikasi set replika dengan mengeluarkan perintah rs.conf () untuk memastikan replika disiapkan dengan benar
Replica Set: Menambahkan Sekunder menggunakan rs.add ()
Server sekunder dapat ditambahkan ke set replika hanya dengan menggunakan perintah rs.add. Perintah ini mengambil nama server sekunder dan menambahkan server ke kumpulan replikasi.
Langkah 1) Misalkan jika Anda memiliki ServerA, ServerB, dan ServerC, yang diperlukan untuk menjadi bagian dari set replika Anda dan ServerA, ditetapkan sebagai server utama di set replika.
Untuk menambahkan ServerB dan ServerC ke set replika, berikan perintah
rs.add("ServerB")rs.add("ServerC")
Replica Set: Konfigurasi Ulang atau Penghapusan menggunakan rs.remove ()
Untuk menghapus server dari set konfigurasi, kita perlu menggunakan perintah "rs.remove"
Langkah 1) Pertama-tama, matikan instance yang ingin Anda hapus. Seseorang dapat melakukan ini dengan mengeluarkan perintah db.shutdownserver dari mongo shell.
Langkah 2) Hubungkan ke server utama
Langkah 3) Gunakan perintah rs.remove untuk menghapus server yang diperlukan dari set replika. Jadi misalkan jika Anda memiliki set replika dengan ServerA, ServerB, dan ServerC, dan Anda ingin menghapus ServerC dari set replika, jalankan perintah
rs.remove("ServerC")
Memecahkan Masalah Kumpulan Replika
Langkah-langkah berikut adalah cara yang sama yang dapat dilakukan seseorang untuk memecahkan masalah ketika masalah ditemui dengan penggunaan kumpulan replika.
- Pastikan semua instance mongo.exe dapat terhubung satu sama lain. Misalkan jika Anda memiliki 3 server bernama ServerA, ServerB, dan ServerC. Dari Server A, keluarkan 2 perintah di bawah ini
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Jalankan perintah rs.status. Perintah ini memberikan status kumpulan replika. Secara default, setiap anggota akan saling mengirim pesan yang disebut pesan "detak jantung" yang hanya menunjukkan bahwa server hidup dan berfungsi. Perintah "status" mendapatkan status pesan ini dan menunjukkan apakah ada masalah dengan anggota mana pun di set replika.
- Periksa ukuran Oplog - Oplog adalah kumpulan di MongoDB yang menyimpan riwayat penulisan yang dilakukan ke database MongoDB. MongoDB kemudian menggunakan Oplog ini untuk mereplikasi penulisan ke anggota lain di set replika. Untuk memeriksa Oplog, sambungkan ke instance anggota yang diperlukan dan jalankan perintah rs.printReplicationInfo. Perintah ini akan menunjukkan ukuran log dan berapa lama ia dapat menyimpan transaksi dalam file lognya sebelum menjadi penuh.
Ringkasan: