在Debian上部署MongoDB集群涉及多个步骤,包括安装MongoDB、配置复制集、分片服务器、配置服务器和路由服务器(mongos)。以下是一个详细的部署方案:
首先,在所有节点上安装MongoDB。可以使用以下命令:
sudo apt update
sudo apt install -y mongodb-org
在每个节点上编辑MongoDB配置文件(通常是 /etc/mongod.conf
),添加或修改以下内容:
net:
port: 27017
bindIp: 0.0.0.0
replication:
replSetName: rs0
启动MongoDB服务:
sudo systemctl start mongod
在每个节点上重启MongoDB服务以应用配置更改:
sudo systemctl restart mongod
连接到任意一个MongoDB实例并初始化复制集:
mongo --host <node_ip> --port 27017
在mongo shell中执行以下命令:
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "<node1_ip>:27017" },
{ _id: 1, host: "<node2_ip>:27017" },
{ _id: 2, host: "<node3_ip>:27017" }
]
})
验证复制集状态:
rs.status()
在每个分片服务器上安装MongoDB并初始化副本集:
mongo --host shard-server1:27017
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "shard-server1:27017" },
{ _id: 1, host: "shard-server2:27017" },
{ _id: 2, host: "shard-server3:27017" }
]
})
配置分片服务器:
mongo --host mongos:27017
sh.enableSharding("database")
sh.shardCollection("database.collection", { "field" : 1 })
在每个配置服务器上安装MongoDB并初始化副本集:
mongo --host config-server1:27017
rs.initiate({
_id: "cfgReplSet",
configsvr: true,
members: [
{ _id: 0, host: "config-server1:27017" },
{ _id: 1, host: "config-server2:27017" },
{ _id: 2, host: "config-server3:27017" }
]
})
在每个mongos实例上安装MongoDB:
sudo apt update
sudo apt install -y mongodb-org
配置mongos:
mongo --host mongos:27017
sh.addShard("shard-server1:port,shard-server2:port,shard-server3:port")
sh.addConfigServer("config-server1:port,config-server2:port,config-server3:port")
sh.enableSharding("database")
sh.shardCollection("database.collection", { "field" : 1 })
检查分片状态:
mongo --host mongos:27017 sh.status()
检查配置服务器状态:
mongo --host mongos:27017 sh.status("configsvr")
使用MongoDB的监控工具(如MongoDB Atlas、MongoDB Compass等)来监控集群的健康状态。定期检查和维护分片服务器、配置服务器和路由服务器。