Setup dan Replication MongoDB


Berbagai aplikasi Database Management System (DBMS) semakin berkembang seiring dengan kebutuhan dan inovasi teknologi. Sebelumnya telah ada DBMS dengan tipe relational atau relasi yang pengoperasiannya menggunakan query atau bahasa yang disebut SQL. Dengan menggunakan SQL, kita dapat menyusun data dalam bentuk tabel. Namun, terdapat kekurangan dari skema database tersebut saat membutuhkan relasi data yang kompleks dan skala yang lebih besar.

Untuk menutupi kekurangan SQL, saat ini telah ada Database NoSQL yang memiliki struktur lebih fleksibel. Jenis NoSQL ini dapat menyimpan data dalam bentuk dokumen JSON, pasangan key-value, kolom record, dan bentuk grafik. Dalam pengembangan website atau aplikasi, database ini banyak dipilih karena memiliki kemampuan pemrosesan data yang lebih efisien, integrasi dengan berbagai bahasa pemrograman, dan banyak fitur mendukung lainnya.

MongoDB

MongoDB merupakan salah satu aplikasi yang menggunakan sistem pengoperasian NoSQL. Seperti penjelasan sebelumnya, MongoDB menyimpan data dalam format BSON atau Binary JSON. Untuk menyimpan data, MongoDB menggunakan dokumen dengan format JSON. Walaupun bisa menggunakan query sederhana, dalam pengoperasiannya lebih disarankan untuk menggunakan dokumen JSON.

Dengan MongoDB, kita dapat membuat struktur database dengan lebih fleksibel karena skema yang digunakan tidak berbentuk tabel. Pada artikel ini, kita akan membahas bagaimana cara melakukan instalasi dan konfigurasi MongoDB, serta melakukan konfigurasi replikasi menggunakan dua buah server atau lebih. Server yang digunakan sebagai contoh menggunakan sistem operasi Ubuntu 20.04 Live Server.

Langkah 1. Instalasi MongoDB

Sebelum melakukan instalasi, kita membutuhkan gnupg dan curl untuk pemasangan repository. Untuk itu, instal gnupg dan curl terlebih dahulu:

apt install gnupg curl

Setelah itu, import key repository dari official website MongoDB. Sebenarnya di dalam repository ubuntu terdapat MongoDB, namun sudah tidak mendapatkan pembaruan. Maka dari itu, import key repository terlebih dahulu:

curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
   --dearmor

Kemudian buat file repository MongoDB:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Setelah berhasil memasang repository MongoDB, lakukan pembaruan repository:

apt update

Setelah itu, jalankan perintah instalasi MongoDB:

apt install mongodb-org*

Setelah proses instalasi selesai, periksa status service MongoDB:

Secara default setelah proses instalasi, MongoDB tidak langsung berjalan. Untuk mengaktifkan service-nya, jalankan perintah:

systemctl enable mongod.service
systemctl start mongod.service

Setelah diaktifkan, periksa status MongoDB. Maka service akan berjalan normal dan siap untuk dioperasikan.

Langkah 2. Pengoperasian MongoDB

Seperti yang dijelaskan sebelumnya, MongoDB lebih direkomendasikan untuk dioperasikan menggunakan dokumen JSON. Namun terdapat beberapa perintah sederhana yang dapat digunakan untuk mengoperasikan MongoDB. Untuk masuk ke dalam prompt MongoDB, jalankan perintah:

mongosh

Untuk melihat daftar database jalankan perintah:

show dbs

Untuk membuat database baru jalankan perintah:

use nama_db

Di dalam MongoDB terdapat collections yang analoginya sama dengan tabel dalam database tipe SQL. Untuk melihat collections jalankan perintah:

show collections

Kemudian, untuk membuat collections dan mengisi collections gunakan perintah:

db.nama_collections.insert({ key1 : value1, key2 : value2 })

Dan untuk melihat isi collections gunakan perintah:

db.nama_collections.find()

Untuk menghapus isi collections gunakan perintah:

Untuk memasukkan banyak data sekaligus gunakan perintah:

db.nama_collections.insertMany([{key1 : value1, key2 : value2}, {key1.2 : value1.2, ...}])

Untuk menghapus database gunakan perintah:

db.nama_db.drop()

Replication Primary Secondary

Seperti pada database lainnya, MongoDB dapat digunakan dengan mekanisme replikasi database pada server utama atau server primary ke server lainnya. Hal tersebut digunakan untuk melakukan pencadangan data, sehingga data tidak hilang ketika server utama mengalami gangguan.

Untuk menggunakan mekanisme replikasi ini, dibutuhkan setidaknya dua buah server yang sudah terinstal MongoDB di dalamnya. Dalam tahap ini terdapat dua server yang akan digunakan, yaitu:

  • Server Primary: 10.23.2.93
  • Server Secondary: 10.23.2.102

Langkah 1. Konfigurasi Server Primary

Pertama-tama akses server primary, kemudian buka file konfigurasi MongoDB:

vim /etc/mongod.conf

Setelah terbuka, konfigurasi pada:

bindIP: 127.0.0.1, IP server primary 
replication:
   replSetName: "nama_replikasi"

Setelah dikonfigurasi muat ulang service MongoDB:

systemctl restart mongod.service

Langkah 2. Konfigurasi Server Slave

Setelah selesai melakukan konfigurasi server primary, lakukan konfigurasi pada server secondary. Buka file konfigurasi MongoDB:

vim /etc/mongod.conf

Sama dengan server primary, konfigurasi pada:

bindIP: 127.0.0.1, IP server secondary
replication:
   replSetName: "nama_replikasi"

Pada parameter replication, gunakan nama yang sama dengan server primary. Setelah itu muat ulang service MongoDB:

systemctl restart mongod.service

Langkah 3. Inisiasi/Mulai Replikasi

Masuk ke dalam program MongoDB di server primary:

mongosh

Kemudian jalankan perintah untuk melakukan inisiasi, agar server secondary dapat melakukan replikasi:

rs.initiate({
	_id: "repl1",
	members: [
	{ _id: 0, host: "IP-Primary" },
	{ _id: 1, host: "IP-Secondary" },
	]
	})

Setelah memulai replikasi pada server primary, periksa status replikasi di server secondary:

rs.status()

Maka akan menampilkan hasil dengan data IP address yang sesuai dengan IP server primarydan secondary. Jika sudah menampilkan hasil seperti di atas, maka replikasi sudah berjalan.

Langkah 4. Pengujian

Untuk melakukan pengujian, apakah replikasi sudah berjalan atau belum, coba buat database dan collections di server primary:

Kemudian lihat daftar database dan collections di server secondary:

Kemudian lihat juga isi dari collections yang telah dibuat:

Sampai tahap ini, sudah berhasil melakukan konfigurasi replikasi dan berfungsi dengan baik.

Kesimpulan

Database NoSQL memiliki mekanisme struktur data yang berbeda dengan database relasional. Dengan penyusunan data berbentuk BSON atau Binary JSON, biasanya akan memudahkan seorang pengembang aplikasi ketika menggunakan bahasa pemrograman Javascript. MongoDB juga menyediakan fitur replikasi dari server utama ke server lainnya yang mana konfigurasinya tergolong sangat mudah untuk dilakukan. Hal tersebut sangat bermanfaat untuk mencegah terjadinya kehilangan data ketika terjadi masalah pada server.

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.

Penulis : Bazigan Tsamara Sukamto