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