在CentOS上管理MongoDB集群的实用指南
一 架构与前提
二 常用管理操作清单
sudo systemctl start|stop|restart|enable mongodsudo systemctl start|stop|restart|enable mongos(若以服务方式管理)mongod/mongos --config /etc/mongod.confsudo cp /etc/mongod.conf /etc/mongod.conf.bak-$(date +%F)sudo systemctl reload mongod(热加载有限,涉及网络/角色变更建议重启)rs.status()rs.conf()rs.add("host:port")rs.remove("host:port")rs.stepDown(60)mongo --host <mongos_ip> --port 27017sh.addShard("rsName/host1:port1,host2:port2,host3:port3")sh.enableSharding("dbName")sh.shardCollection("db.coll", { "shardKey": 1 })sh.status()三 日常运维与故障排查
rs.status() 关注 members.stateStr(PRIMARY/SECONDARY/ARBITER)、optime、lastHeartbeat。sh.status() 检查 shards、chunks 均衡、balancer 状态;db.printShardingStatus() 查看更细粒度元数据。db.currentOp()、db.system.profile。sh.status() 的 balancer 是否开启,必要时 sh.startBalancer();观察 chunks 分布。四 安全与网络加固
五 快速命令示例
rs.initiate({ _id: "rs0", members: [{ _id: 0, host: "10.0.0.11:27017" }, { _id: 1, host: "10.0.0.12:27017" }, { _id: 2, host: "10.0.0.13:27017" }] })rs.status()sh.addShard("shard1/10.0.1.11:27018,10.0.1.12:27018,10.0.1.13:27018")sh.addShard("shard2/10.0.2.11:27018,10.0.2.12:27018,10.0.2.13:27018")sh.enableSharding("sales")sh.shardCollection("sales.orders", { "customerId": 1 })sh.status()rs.status()sudo systemctl restart mongod && sudo systemctl status mongodmongos --config /etc/mongos.conf(或 sudo systemctl restart mongos)