以下是在Linux上搭建MongoDB集群的两种常见方式(副本集和分片集群)的步骤要点:
apt/yum)安装,或从官网下载二进制包解压。/etc/mongod.conf,关键参数:storage:
dbPath: /data/mongodb/db # 数据目录
journal:
enabled: true
systemLog:
path: /var/log/mongodb/mongod.log
logAppend: true
net:
bindIp: 0.0.0.0 # 允许所有IP访问(生产环境需限制)
port: 27017 # 端口(每个节点需唯一)
replication:
replSetName: "rs0" # 副本集名称(所有节点一致)
sudo systemctl start mongod
sudo systemctl enable mongod
mongo --host <节点IP> --port 27017
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "节点1:27017" },
{ _id: 1, host: "节点2:27017" },
{ _id: 2, host: "节点3:27017" }
]
})
rs.status() // 查看主从节点状态
rs.add("新节点IP:27017")
配置服务器(副本集):
mongod.conf,指定replSetName: configRs和sharding.clusterRole: configsvr。mongod -f config-1.conf # 重复3个节点
rs.initiate({ _id: "configRs", members: [...] })
分片服务器(副本集):
replSetName: shardXRs(如shard1Rs)和sharding.clusterRole: shardsvr。Mongos路由:
mongos.conf,指定configDB: configRs/节点1:27019,节点2:27019,节点3:27019。mongos -f mongos.conf
mongo --host <mongos-IP> --port 27017
sh.addShard("shard1Rs/节点4:27001,节点5:27001,节点6:27001")
sh.enableSharding("mydb")
sh.shardCollection("mydb.users", { "_id": "hashed" }) // 按ID哈希分片
sh.status()
security.authorization: enabled)和密钥文件(keyFile)。mongostat、mongotop等工具监控集群状态,定期备份数据。详细步骤可参考官方文档:MongoDB副本集文档、分片集群文档。