Catatan Sebelum Mengikuti Tutorial Ini
Beberapa catatan sebelum mengikuti tutorial ini
Antar replika, saling komunikasi lewat hostname bukan IP. Kenapa? karena jika ada replica set yang rusak, menggantinya mudah, tinggal ganti IP saja di /etc/hosts
SELinux dalam kondisi disable
Menggunakan MongoDB CE versi 5.xx
Menggunakan 3 VPS untuk memenuhi minimum requirement
Detail 3 VPS replica
| Hostname | IP | Port |
|---|---|---|
| replica1 | 192.168.3.2 | 27017 |
| replica2 | 192.168.3.3 | 27017 |
| replica3 | 192.168.3.4 | 27017 |
- Saya anggap pembaca sudah tahu basic instalasi mongodb ya
How To
- Tambahkan hosts di semua /etc/hosts
replica1 192.168.3.2
replica2 192.168.3.3
replica3 192.168.3.4
- Buat keyfile agar bisa replica set bisa menggunakan password, bisa di salah satu server atau bisa di laptop buatnya
openssl rand -base64 756 > /var/lib/mongo/mongo-replica-key
chmod 400 /var/lib/mongo/mongo-replica-key
chown mongod:mongod /var/lib/mongo/mongo-replica-key
Copy
/var/lib/mongo/mongo-replica-keyke semua replica-set serverTambahkan config replica set di /etc/mongod.conf
security:
keyFile: "/var/lib/mongo/mongo-replica-key"
authorization: disabled #we will change it later
replication:
replSetName: "replica-production"
- Inisialisasi replica set, login ke salah satu server replika
rs.initiate( {
... _id: “replica-production”,
... members: [
... { _id: 0, host: “replica1:27017” },
... { _id: 1, host: “replica2:27017” },
... { _id: 2, host: “replica3:27017” }
... ] })
- Buat akun root dengan cara
use admin
db.createUser({
user: "root",
pwd: "PasswordsetronG",
roles: [
{role: "root", db: "admin"}
]
})

Buat Root/Admin Replica Set
- Buat akun untuk spesifik database
use db_spesifik
db.createUser(
{
user: "username_db_spesifik",
pwd: "Pass_DB_spesifik",
roles: [
{role: "readWrite", db: "db_spesifik" }
]
}
)
Cek dengan
rs.conf()
Detail rs.conf()
Balik lagi ke /etc/mongod.conf
security:
keyFile: "/var/lib/mongo/mongo-replica-key"
authorization: enabled #change from disabled
replication:
replSetName: "replica-production"
Beberapa command yang bisa digunakan untuk cek replikasi
a. rs.status() -> mengecek status replication set status
b. rs.printSecondaryReplicationInfo() -> cek replikasi info (lebih simple dari rs.status() )

Cek Replication Lag
Catatan lagi!:
Silahkan setup mongodb log rotate setelah berhasil setup replica set
Setup mongodb memory/RAM limitation untuk mencegah OOM
Referensi:
percona blog - deploy mongo replica set
mongodb manual - deploy replica with keyfile

Jika kamu merasa tulisan ini bermanfaat & membantu kamu, kamu bisa berdonasi lewat saweria
If you feel this website help you, you can donate at saweria
