在CentOS系统上配置MongoDB复制集的步骤如下:
1. 安装MongoDB
首先,在所有参与复制集的服务器上安装MongoDB。
# 创建并配置MongoDB的yum仓库 cat </etc/yum.repos.d/mongodb-org-5.0.repo [mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc EOF # 安装MongoDB yum install -y mongodb-org
2. 配置MongoDB实例
为每个服务器创建一个配置文件,例如:
mongod_1.conf
systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod_1.log storage: dbPath: /var/lib/mongo journal: enabled: true processManagement: fork: true net: bindIp: 0.0.0.0 port: 27017
对其他服务器重复上述步骤,确保每个实例使用不同的端口和数据目录。
3. 创建key文件
为副本集之间做通信认证,生成一个key文件:
openssl rand -base64 756 > /opt/mongodb/mongodb.key chmod 400 /opt/mongodb/mongodb.key chown mongod:mongod /opt/mongodb/mongodb.key
4. 修改MongoDB配置文件
在每个实例的配置文件中添加以下内容:
security: keyFile: /opt/mongodb/mongodb.key replication: replSetName: "rs0" net: bindIp: 0.0.0.0
5. 启动MongoDB实例
使用不同的配置文件启动每个实例:
mongod --config /etc/mongod_1.conf
对其他服务器重复上述步骤。
6. 初始化复制集
连接到主节点并初始化复制集:
mongo --port 27017
在Mongo shell中执行以下命令:
rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "192.168.0.1:27017" }, { _id: 1, host: "192.168.0.2:27017" }, { _id: 2, host: "192.168.0.3:27017" } ] })
7. 验证复制集状态
使用以下命令检查复制集的状态:
rs.status()
8. 添加从节点和仲裁节点(可选)
如果需要添加从节点或仲裁节点,可以使用rs.add()
和rs.addArb()
命令:
rs.add("192.168.0.4:27017") // 添加从节点 rs.addArb("192.168.0.5:27017") // 添加仲裁节点
9. 配置特殊角色(可选)
可以为节点设置特殊角色,如隐藏节点或延迟节点:
cfg = rs.conf() cfg.members[1].priority = 0 cfg.members[1].hidden = true rs.reconfig(cfg)
通过以上步骤,你就可以在CentOS系统上成功配置MongoDB复制集。更多详细信息和高级配置,请参考MongoDB官方文档。