centos

MongoDB复制在CentOS上如何设置

小樊
48
2025-09-03 17:51:33
栏目: 云计算

在CentOS上设置MongoDB复制(Replication)涉及以下几个步骤:

1. 安装MongoDB

首先,确保你已经在所有节点上安装了MongoDB。你可以从MongoDB官方网站下载并安装最新版本的MongoDB。

sudo yum install -y mongodb-org

2. 配置MongoDB

在每个节点上编辑MongoDB配置文件(通常是/etc/mongod.conf),确保以下配置项正确设置:

例如,在主节点上:

replication:
  replSetName: "rs0"

net:
  bindIp: 0.0.0.0

在从节点上:

replication:
  replSetName: "rs0"

net:
  bindIp: 0.0.0.0

3. 启动MongoDB服务

在所有节点上启动MongoDB服务:

sudo systemctl start mongod
sudo systemctl enable mongod

4. 初始化复制集

连接到任意一个MongoDB实例,并初始化复制集。假设你连接到主节点:

mongo --host <主节点IP>

在mongo shell中执行以下命令:

rs.initiate(
  {
    _id: "rs0",
    members: [
      { _id: 0, host: "<主节点IP>:27017" },
      { _id: 1, host: "<从节点1IP>:27017" },
      { _id: 2, host: "<从节点2IP>:27017" }
    ]
  }
)

5. 验证复制集状态

在mongo shell中执行以下命令来验证复制集的状态:

rs.status()

你应该看到所有节点都列在复制集中,并且状态为SECONDARYPRIMARY

6. 配置优先级(可选)

如果你希望某个节点成为主节点,可以配置优先级。在mongo shell中执行以下命令:

cfg = rs.conf()
cfg.members[0].priority = 2  # 主节点优先级最高
rs.reconfig(cfg)

7. 配置读写分离(可选)

默认情况下,所有读操作都在主节点上进行。你可以通过配置读偏好(read preference)来将读操作分发到从节点。

在应用程序中设置读偏好:

db.getMongo().setReadPref('secondaryPreferred');

或者在mongo shell中设置:

db.setSlaveOk()

8. 监控和维护

定期监控复制集的状态,并进行必要的维护,例如备份和恢复。

通过以上步骤,你就可以在CentOS上成功设置MongoDB复制。

0
看了该问题的人还看了