温馨提示×

centos下mongodb集群怎么搭建

小樊
47
2025-11-19 21:03:01
栏目: 云计算

在CentOS系统下搭建MongoDB集群,通常需要以下几个步骤:

1. 安装MongoDB

首先,确保你的CentOS系统已经更新到最新状态:

sudo yum update -y

然后,添加MongoDB官方YUM仓库:

sudo tee /etc/yum.repos.d/mongodb-org.repo <<EOF
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF

安装MongoDB:

sudo yum install -y mongodb-org

启动MongoDB服务并设置开机自启:

sudo systemctl start mongod
sudo systemctl enable mongod

2. 配置MongoDB副本集

假设你有三台服务器,IP分别为192.168.1.1, 192.168.1.2, 192.168.1.3

在每台服务器上编辑MongoDB配置文件 /etc/mongod.conf

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

replication:
  replSetName: rs0

在每台服务器上启动MongoDB服务

sudo systemctl start mongod

初始化副本集

连接到任意一台服务器的MongoDB实例:

mongo --host 192.168.1.1 --port 27017

在Mongo shell中执行以下命令初始化副本集:

rs.initiate(
  {
    _id: "rs0",
    members: [
      { _id: 0, host: "192.168.1.1:27017" },
      { _id: 1, host: "192.168.1.2:27017" },
      { _id: 2, host: "192.168.1.3:27017" }
    ]
  }
)

3. 验证副本集状态

在Mongo shell中执行以下命令查看副本集状态:

rs.status()

你应该能看到所有节点的状态都是SECONDARYPRIMARY

4. 配置分片集群(可选)

如果你需要搭建一个分片集群,可以参考MongoDB官方文档进行配置。分片集群通常包括配置服务器、分片服务器和mongos路由器。

安装配置服务器

在每台配置服务器上安装MongoDB并配置/etc/mongod.conf

sharding:
  clusterRole: configsvr

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27019
  bindIp: 0.0.0.0

启动配置服务器并设置开机自启:

sudo systemctl start mongod
sudo systemctl enable mongod

初始化配置服务器副本集:

mongo --host 192.168.1.1 --port 27019
rs.initiate(
  {
    _id: "configReplSet",
    configsvr: true,
    members: [
      { _id: 0, host: "192.168.1.1:27019" },
      { _id: 1, host: "192.168.1.2:27019" },
      { _id: 2, host: "192.168.1.3:27019" }
    ]
  }
)

安装分片服务器

在每台分片服务器上安装MongoDB并配置/etc/mongod.conf

sharding:
  clusterRole: shardsvr

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27018
  bindIp: 0.0.0.0

启动分片服务器并设置开机自启:

sudo systemctl start mongod
sudo systemctl enable mongod

安装mongos路由器

在每台mongos路由器上安装MongoDB并配置/etc/mongos.conf

sharding:
  configDB: configReplSet/192.168.1.1:27019,192.168.1.2:27019,192.168.1.3:27019

net:
  port: 27017
  bindIp: 0.0.0.0

启动mongos路由器并设置开机自启:

sudo systemctl start mongos
sudo systemctl enable mongos

添加分片

连接到mongos路由器:

mongo --host 192.168.1.1 --port 27017
sh.addShard("shard0/192.168.1.1:27018")
sh.addShard("shard1/192.168.1.2:27018")
sh.addShard("shard2/192.168.1.3:27018")

启用数据库分片

sh.enableSharding("yourDatabaseName")
sh.shardCollection("yourDatabaseName.yourCollectionName", { "shardKey": 1 })

以上步骤完成后,你就成功搭建了一个MongoDB集群。根据你的需求,你可以进一步配置副本集和分片集群。

0