在CentOS上搭建MongoDB复制集(Replica Set)可以提供数据冗余和高可用性。以下是一个基本的步骤指南:
首先,确保你的CentOS系统已经安装了MongoDB。如果没有安装,可以使用以下命令进行安装:
sudo yum install -y mongodb-org
编辑MongoDB的配置文件 /etc/mongod.conf
,确保以下配置项正确设置:
# MongoDB Configuration File storage: dbPath: /var/lib/mongo journal: enabled: true systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log net: port: 27017 bindIp: 0.0.0.0 # 绑定所有IP地址 replication: replSetName: rs0 # 复制集名称
启动MongoDB服务并设置开机自启动:
sudo systemctl start mongod sudo systemctl enable mongod
连接到MongoDB实例并初始化复制集。你可以使用 mongo
shell 连接到任意一个MongoDB实例:
mongo --host <hostname> --port 27017
在 mongo
shell 中执行以下命令来初始化复制集:
rs.initiate( { _id: "rs0", members: [ { _id: 0, host: "<hostname>:27017" }, { _id: 1, host: "<hostname>:27018" }, { _id: 2, host: "<hostname>:27019" } ] } )
将 <hostname>
替换为你的主机名或IP地址,并确保每个实例使用不同的端口。
在 mongo
shell 中执行以下命令来验证复制集的状态:
rs.status()
你应该能看到复制集中所有成员的状态信息。
如果你需要添加更多的节点到复制集中,可以使用以下命令:
rs.add("<hostname>:<port>")
例如:
rs.add("hostname2:27018") rs.add("hostname3:27019")
确保你的防火墙允许MongoDB的端口(默认是27017)通信。你可以使用以下命令打开端口:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent sudo firewall-cmd --reload
定期监控复制集的健康状态,并进行必要的维护操作,例如备份和日志清理。
通过以上步骤,你应该能够在CentOS上成功搭建一个MongoDB复制集。