在CentOS上部署MongoDB集群,通常指的是设置一个MongoDB副本集(Replica Set)。副本集是MongoDB的一个功能,它提供了数据冗余和高可用性。以下是部署MongoDB副本集的基本步骤:
准备工作:
配置MongoDB:
在每台服务器上创建MongoDB配置文件(例如/etc/mongod.conf),并确保以下配置项被正确设置:
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: <服务器IP地址> # 替换为实际的IP地址
replication:
replSetName: <副本集名称> # 替换为你想要的副本集名称
对于除了第一台服务器之外的其他服务器,你需要将bindIp设置为服务器的IP地址,并且不要指定priority(如果你想让第一台服务器成为主节点)。
启动MongoDB服务: 在每台服务器上启动MongoDB服务:
sudo systemctl start mongod
sudo systemctl enable mongod
初始化副本集: 连接到任意一台服务器上的MongoDB实例,并初始化副本集:
mongo --host <第一台服务器IP> --port 27017
在mongo shell中执行以下命令来创建副本集:
rs.initiate(
{
_id: "<副本集名称>",
members: [
{ _id: 0, host: "<第一台服务器IP>:27017" },
{ _id: 1, host: "<第二台服务器IP>:27017" },
{ _id: 2, host: "<第三台服务器IP>:27017" }
// ... 可以添加更多成员
]
}
)
确保将<副本集名称>替换为你之前设置的副本集名称,将<服务器IP>替换为实际的服务器IP地址。
验证副本集状态: 在mongo shell中执行以下命令来查看副本集的状态:
rs.status()
这将显示副本集中每个成员的状态信息,包括它们是否是主节点(primary)或者是从节点(secondary)。
配置防火墙: 如果你的服务器运行的是防火墙,确保开放MongoDB使用的端口(默认是27017):
sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
sudo firewall-cmd --reload
测试副本集: 你可以通过断开主节点的网络连接来测试副本集的自动故障转移功能。如果一切正常,一个从节点应该会自动升级为新的主节点。
请注意,这些步骤提供了一个基本的副本集部署指南。在生产环境中部署MongoDB集群时,你可能需要考虑更多的因素,比如安全性(启用认证和授权)、网络隔离、硬件资源规划、备份策略等。