centos

centos mongodb复制集配置教程

小樊
93
2025-02-13 00:06:45
栏目: 云计算

在CentOS系统上配置MongoDB复制集的步骤如下:

1. 安装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

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官方文档

0
看了该问题的人还看了