Replication is the process of synchronizing data across multiple servers. Replication provides redundancy and increases data availability with multiple copies of data on different database servers. Replication protects a database from the loss of a single server. Replication also allows you to recover from hardware failure and service interruptions. With additional copies of the data, you can dedicate one to disaster recovery, reporting, or backup.
Why Replication?
- To keep your data safe
- High (24*7) availability of data
- Disaster recovery
- No downtime for maintenance (like backups, index rebuilds, compaction)
- Read scaling (extra copies to read from)
- Replica set is transparent to the application
How Replication Works in MongoDB
MongoDB achieves replication by the use of replica set. A replica set is a group of mongod instances that host the same data set. In a replica, one node is primary node that receives all write operations. All other instances, such as secondaries, apply operations from the primary so that they have the same data set. Replica set can have only one primary node.
Replica set is a group of two or more nodes (generally minimum 3 nodes are required).
In a replica set, one node is primary node and remaining nodes are secondary.
All data replicates from primary to secondary node.
At the time of automatic failover or maintenance, election establishes for primary and a new primary node is elected.
After the recovery of failed node, it again join the replica set and works as a secondary node.
A typical diagram of MongoDB replication is shown in which client application always interact with the primary node and the primary node then replicates the data to the secondary nodes.
Replica Set Features
- A cluster of N nodes
- Any one node can be primary
- All write operations go to primary
- Automatic failover
- Automatic recovery
- Consensus election of primary
Set Up a Replica Set
In this tutorial, we will convert standalone MongoDB instance to a replica set. To convert to replica set, following are the steps −
Shutdown already running MongoDB server.
Start the MongoDB server by specifying -- replSet option. Following is the basic syntax of --replSet −
Example
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0It will start a mongod instance with the name rs0, on port 27017.
Now start the command prompt and connect to this mongod instance.
In Mongo client, issue the command rs.initiate() to initiate a new replica set.
To check the replica set configuration, issue the command rs.conf(). To check the status of replica set issue the command rs.status().
Add Members to Replica Set
To add members to replica set, start mongod instances on multiple machines. Now start a mongo client and issue a command rs.add().
Syntax
The basic syntax of rs.add() command is as follows −
>rs.add(HOST_NAME:PORT)Example
Suppose your mongod instance name is mongod1.net and it is running on port 27017. To add this instance to replica set, issue the command rs.add() in Mongo client.
>rs.add("mongod1.net:27017") >You can add mongod instance to replica set only when you are connected to primary node. To check whether you are connected to primary or not, issue the command db.isMaster() in mongo client.
Putri is an SEO Content Writer at Niagahoster. She has experience in SEO writing with business and tech topic.Home » Web Development & Design » MongoDB: Pengertian, Manfaat, dan Cara Menggunakannya!
MongoDB: Pengertian, Manfaat, dan Cara Menggunakannya!March 22, 2021 5 min read
Pengguna MongoDB terus meningkat hingga mencapai 85 juta pengguna. Ini tentu tak lepas dari kemudahan, kecepatan dan fleksibilitas yang ditawarkan sistem database ini. Namun, apakah MongoDB merupakan pilihan pas untuk project Anda?
Yuk, cari tahu jawabannya! Di artikel ini, Anda tak akan hanya belajar MongoDB di permukaannya saja, tapi juga info-info detailnya. Mulai dari pengertian, keunggulan, hingga cara menggunakan database ini.
Penasaran, kan? Simak selengkapnya!
Daftar isi
Apa itu MongoDB?
MongoDB adalah salah satu jenis database NoSQL yang cukup populer digunakan dalam pengembangan website. Berbeda dengan database jenis SQL yang menyimpan data menggunakan relasi tabel, MongoDB menggunakan dokumen dengan format JSON.
Hal inilah yang dianggap membuat pengelolaan data menggunakan MongoDB lebih baik. Alhasil, banyak perusahaan besar seperti Adobe, Google dan ebay yang menggunakannya.
Sistem database ini menggunakan beberapa komponen penting, yaitu:
- Database – merupakan wadah dengan struktur penyimpanan yang disebut collection.
- Collection – merupakan tempat kumpulan informasi data yang berbentuk dokumen. Collection dipadankan seperti tabel-tabel yang berisi data pada database SQL.
- Document – merupakan satuan unit terkecil dalam MongoDB.
Sebagai satuan terkecil, dokumen akan berisi baris-baris data tanpa schema tertentu, tapi berupa struktur pasangan key-value. Key digunakan untuk melacak objek dengan (value) nilai yang bervariasi, seperti data angka, string, atau objek kompleks lainnya.
Nah, berikut ini contoh data pada MongoDB:
Dengan format dokumen tersebut, MongoDB mampu menampung data yang lebih bervariasi dan kompleks. Selain itu, Anda juga bisa melakukan scale out database untuk meningkatkan kapasitas data tanpa mengganggu performa server. Itulah yang menjadikannya salah satu aplikasi database terbaik.
Baca Juga: Apa Itu MySQL?
Oh ya, meskipun kemampuan scale out MongoDB memang menarik bagi perusahaan besar, database juga cocok dipakai untuk project pemula kok. Masih belum yakin?
Keunggulan Menggunakan MongoDB untuk Project Anda
Inilah beberapa keunggulan dari MongoDB yang akan bermanfaat untuk project Anda:
1. Performa Lebih Cepat
MongoDB menawarkan performa database yang lebih cepat dibanding database jenis SQL. Sebab, database ini menggunakan dokumen dengan format JSON yang lebih ringan. Tak hanya itu, database ini juga didukung oleh Memcached yang mampu menyimpan data dalam skala memori besar.
2. Pengelolaan Database Lebih Mudah
Pengelolaan database melalui MongoDB akan jauh lebih simple dan mudah. Sebab, tidak memerlukan struktur tabel yang akan semakin rumit seiring bertambahnya data. MongoDB akan secara otomatis membuat struktur tabel ketika Anda menginput data.
Selain itu, database ini juga terintegrasi dengan Javascript yang tentu cukup familiar bagi developer. Jadi, developer tak perlu mempelajari bahasa pemrograman baru seperti SQL untuk mengelola database.
Baca Juga: Apa itu PostgreSQL?
3. Mampu Menampung Banyak Data yang Bervariasi
MongoDB mampu menampung lebih banyak data kompleks karena menggunakan schema table yang dinamis (dynamic schema). Dengan skema data tersebut, database ini bisa menyimpan data yang lebih bervariasi, mulai dari data terstruktur hingga tidak terstruktur.
Data terstruktur merupakan data yang informasinya mudah didapatkan langsung dari database, seperti data karyawan dan penjualan. Sedangkan, data tidak terstruktur memerlukan analisis untuk mendapatkan nilainya, seperti data berformat foto, video, teks dan suara di website.
4. Bisa Mengelola Query Lebih Baik
MongoDB adalah database yang memiliki kemampuan untuk menangani query dengan baik. Selain itu, akses terhadap data juga mudah dilakukan sehingga Anda dapat melihat hasil suatu data yang rumit atau tak terstruktur dengan cepat.
Katakanlah Anda ingin melihat data dari hasil komentar blog Anda. Anda tinggal jalankan perintah untuk menampilkan dokumen data tersebut untuk mendapatkan data yang Anda inginkan.
5. Memiliki Kemampuan Skalabilitas Sesuai Kebutuhan
Sebagai jenis database NoSQL, MongoDB memiliki kemampuan untuk melakukan scale out. Artinya, jika kebutuhan data meningkat, Anda bisa menambah beberapa server cloud untuk memperbesar kapasitas database Anda.
Ini tentu berbeda dengan jenis SQL yang mengharuskan Anda melakukan scale-up dengan membeli hardware baru dengan spesifikasi lebih tinggi.
Dengan kemampuan tersebut, Anda jadi bisa menjalankan program big data untuk bisnis Anda. Lonjakan data yang besar pun dapat diatasi dengan membaginya ke beberapa server cloud yang telah Anda tambahkan.
6. Dapat Memperbarui Skema Data Tanpa Downtime
Kalau di database lain, website atau aplikasi harus dalam kondisi tidak diakses saat Anda memperbarui struktur data. Nah, di MongoDB, Anda tak perlu mengalami downtime saat perubahan itu dilakukan.
Kenapa? Sebab, database ini didesain untuk bisa tetap diakses ketika pembaharuan skema dan struktur data dilakukan. Jadi, akan lebih kecil gangguan pada aplikasi atau website selama proses pembaruan skema data.
7. Bisa Digunakan Secara Gratis
MongoDB adalah software sistem database yang bisa Anda gunakan gratis, baik untuk pengguna Windows, Linux atau macOS. Ini tentu pilihan yang cocok apabila Anda sedang mengerjakan project kecil atau pribadi dan tidak menyediakan anggaran khusus untuk membeli lisensi.
Baca Juga: Panduan Belajar phpMyAdmin
Tutorial MongoDB: Cara Install hingga Cek Status
Setelah mengetahui berbagai keunggulannya, mari simak tutorial menggunakan sistem database ini, mulai dari instalasi di Ubuntu hingga pembuatan databasenya.
1. Install MongoDB
Untuk menginstallnya di Ubuntu, masukkan perintah berikut di Terminal:
sudo apt-get install mongodb2. Mengaktifkan MongoDB
Selanjutnya aktifkan database dengan perintah berikut:
sudo systemctl enable mongodbSetelah aktif, kemudian jalankan dengan perintah berikut ini:
sudo systemctl start mongodb3. Cek Status
Untuk memastikan MongoDB telah aktif dan berjalan di server Anda, lakukanlah pengecekan status database MongoDB dengan perintah ini:
sudo systemctl status mongodbKalau Anda melihat hasil tampilan seperti berikut, berarti database MongoDB Anda sudah aktif dan berjalan.
Baca juga: Cara Lengkap Install MongoDB di Ubuntu 18.04
Perintah Dasar MongoDB
Setelah berhasil menginstall dan mengaktifkan MongoDB di Ubuntu, Anda perlu mempelajari beberapa perintah dasarnya. Berikut adalah sejumlah perintah dasar MongoDB yang sering digunakan:
1. Masuk Database MongoDB
Untuk masuk ke dalam database MongoDB, Anda bisa menggunakan perintah berikut:
mongoOutputnya akan seperti pada gambar di bawah ini:
2. Membuat Database
Untuk membuat database pada MongoDB, Anda bisa menggunakan perintah di bawah ini. Pada panduan ini kami akan membuat database dengan nama admin-dev. Anda bisa mengganti perintah admin-dev dengan nama database yang akan Anda buat.
use admin-devOutputnya akan seperti pada gambar di bawah ini:
3. Melihat Database
Untuk melihat database saat ini yang digunakan pada server, Anda bisa menggunakan perintah berikut:
dbOutputnya akan seperti pada gambar di bawah ini. Setiap output akan berbeda-beda hasilnya, tergantung dari database yang sudah Anda tambahkan pada server.
4. Menghapus Database
Untuk menghapus database, Anda bisa menggunakan perintah berikut
db.dropDatabase()Outputnya akan seperti pada gambar di bawah ini yang artinya database admin-dev telah dihapus. Hasil dari output akan berbeda-beda, tergantung dari database mana yang telah dihapus.
5. Insert Data
Dalam panduan ini kami akan memasukan data ke dalam database admin-dev. Di sini kami akan membuat sekaligus memasukkan data ke collection admin-dev menggunakan perintah insert() dengan nama collection “admin”.
Pilih database menggunakan perintah berikut:
use nama_database_andaMasukkan data ke dalam database Anda menggunakan perintah berikut:
db.admin.insert({"nama" : "Dapit Kurniawan", "alamat" : "Jl. Ninjaku" , "jenkel" : "laki-laki"})Output dari perintah di atas akan seperti pada gambar di bawah ini.
6. Melihat Daftar Collection dalam Database
Untuk melihat daftar collection dalam database, Anda bisa menggunakan perintah berikut:
sudo systemctl enable mongodb0Outputnya akan seperti pada gambar di bawah ini. admin dan person adalah data collections dari database admin-dev.
7. Melihat Isi Collection
Untuk melihat isi data collection, Anda bisa menggunakan perintah find. Pada panduan ini kami akan melihat isi data collection dari admin.
sudo systemctl enable mongodb1Outputnya seperti pada gambar di bawah ini:
8. Melihat Isi Collection Dalam Bentuk JSON
Untuk melihat isi data collection dalam bentuk JSON, Anda bisa menggunakan perintah berikut. Perintah Admin adalah nama data collection yang akan kami lihat. Anda bisa menggantinya dengan nama data collection yang akan Anda lihat.
sudo systemctl enable mongodb2Outputnya akan seperti pada gambar di bawah ini, _id adalah nama kode file JSON.
9. Melihat Isi Collection Hanya 1 Result
Anda juga bisa melihat 1 data collection saja dalam database menggunakan perintah di bawah ini. Pada panduan ini kami akan melihat 1 data collection pada collection person.
sudo systemctl enable mongodb3Output dari perintah di atas seperti pada gambar di bawah ini. Perintah findone akan menampilkan 1 data dari collection.
10. Menghapus Data
Untuk menghapus data, hal pertama yang harus dilakukan adalah cek nama file JSON menggunakan .pretty. Pada tutorial ini kami akan menghapus data pada collection person. Salin kode _id dan masukkan pada perintah berikut.
sudo systemctl enable mongodb4Apabila perintah di atas berhasil, hasil outputnya akan seperti pada gambar di bawah ini:
11. Mengubah Data
Anda juga bisa melakukan perubahan pada data yang sudah ada menggunakan perintah di bawah ini. Pada panduan ini kami akan mengubah data pada collection admin. Kami akan mengubah informasi data dari nama, alamat, dan jenis kelamin dari data collection admin.
sudo systemctl enable mongodb5Outputnya adalah seperti pada gambar di bawah ini. Terlihat hasil perubahan dari nama, alamat, dan jenis kelamin.
12. Menghapus Collection
Untuk menghapus collection, Anda bisa menggunakan perintah berikut.
sudo systemctl enable mongodb6Outputnya akan seperti pada gambar di bawah ini.
Pakai MongoDB untuk Project Website Terbaik Anda!
MongoDB adalah salah satu jenis database NoSQL yang berbasis dokumen dengan format JSON. Database ini tidak menggunakan tabel dan struktur yang baku seperti database jenis SQL.
MongoDB semakin banyak digunakan oleh developer karena berbagai keunggulan yang dimilikinya, yaitu:
- Performa lebih cepat
- Pengelolaan database lebih mudah
- Mampu menampung banyak data bervariasi
- Mampu mengelola query lebih baik
- Skalabilitas lebih mudah dilakukan
- Dapat memperbarui skema data tanpa terjadi downtime
- Bisa digunakan secara gratis
Dengan berbagai kelebihan tersebut, Anda tentu semakin yakin untuk mencobanya pada project Anda. Kami juga sudah memberikan panduan instalasinya. Sekarang, Anda bisa mulai membuat database untuk project aplikasi website terbaik Anda. Selamat mencoba!
Share
Putri Aprilia Follow Putri is an SEO Content Writer at Niagahoster. She has experience in SEO writing with business and tech topic.
Subscribe Sekarang
Dapatkan beragam artikel tutorial, insight dan tips menarik seputar dunia online langsung melalui email Anda. Subscribe sekarang dan raih kesuksesan bersama kami!