在CentOS系统上配置MongoDB复制集的步骤如下:
首先,在所有参与复制集的服务器上安装MongoDB。
# 创建并配置MongoDB的yum仓库
cat <<EOF > /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
为每个服务器创建一个配置文件,例如:
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
对其他服务器重复上述步骤,确保每个实例使用不同的端口和数据目录。
为副本集之间做通信认证,生成一个key文件:
openssl rand -base64 756 > /opt/mongodb/mongodb.key
chmod 400 /opt/mongodb/mongodb.key
chown mongod:mongod /opt/mongodb/mongodb.key
在每个实例的配置文件中添加以下内容:
security:
keyFile: /opt/mongodb/mongodb.key
replication:
replSetName: "rs0"
net:
bindIp: 0.0.0.0
使用不同的配置文件启动每个实例:
mongod --config /etc/mongod_1.conf
对其他服务器重复上述步骤。
连接到主节点并初始化复制集:
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" }
]
})
使用以下命令检查复制集的状态:
rs.status()
如果需要添加从节点或仲裁节点,可以使用rs.add()
和rs.addArb()
命令:
rs.add("192.168.0.4:27017") // 添加从节点
rs.addArb("192.168.0.5:27017") // 添加仲裁节点
可以为节点设置特殊角色,如隐藏节点或延迟节点:
cfg = rs.conf()
cfg.members[1].priority = 0
cfg.members[1].hidden = true
rs.reconfig(cfg)
通过以上步骤,你就可以在CentOS系统上成功配置MongoDB复制集。更多详细信息和高级配置,请参考MongoDB官方文档。