在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复制集。