Lab 15: MongoDB Replica Sets
Overview
Step 1: Launch Three MongoDB Nodes
docker network create mongo-repl-net
# Start 3 MongoDB nodes with replica set enabled
for i in 1 2 3; do
docker run -d \
--name mongo-node${i} \
--network mongo-repl-net \
--hostname mongo-node${i} \
mongo:7 \
--replSet "rs0" \
--bind_ip_all
echo "Started mongo-node${i}"
done
# Wait for all to be ready
for i in 1 2 3; do
for j in $(seq 1 30); do
docker exec mongo-node${i} mongosh --quiet --eval "db.runCommand({ping:1})" 2>/dev/null | grep -q "ok.*1" && break || sleep 2
done
echo "mongo-node${i} ready"
doneStep 2: Initialize the Replica Set
Step 3: rs.conf() and rs.status() Deep Dive
Step 4: Write and Read Operations
Step 5: writeConcern and readPreference
Step 6: Oplog — Operations Log
Step 7: Special Member Types — Hidden and Delayed
Step 8: Capstone — Automatic Failover
Summary
Component
Command
Purpose
Key Takeaways
Last updated
