debian

MongoDB在Debian上的集群搭建流程是怎样的

小樊
47
2025-11-07 11:00:50
栏目: 云计算

MongoDB在Debian上的集群搭建流程(以分片集群为例)

1. 准备工作

2. 安装MongoDB

在所有节点上安装MongoDB:

sudo apt install -y mongodb-org

安装完成后,MongoDB服务会自动启动(默认端口27017)。

3. 配置配置服务器(Config Servers)

配置服务器存储集群元数据(如分片信息、集合分片规则),需至少3个节点以保证高可用。

3.1 创建数据目录

sudo mkdir -p /data/configdb
sudo chown -R mongodb:mongodb /data/configdb

3.2 配置文件(/etc/mongod.conf)

编辑配置文件,指定configsvr角色、副本集名称、端口(建议27019):

storage:
  dbPath: /data/configdb
  journal:
    enabled: true
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
net:
  port: 27019
  bindIp: 0.0.0.0  # 允许所有节点访问
replication:
  replSetName: configReplSet
sharding:
  clusterRole: configsvr

3.3 启动配置服务器

sudo systemctl start mongod
sudo systemctl enable mongod  # 设置开机自启

3.4 初始化副本集

连接到任意配置服务器节点,执行初始化命令:

mongo --port 27019

在mongo shell中输入:

rs.initiate({
  _id: "configReplSet",
  configsvr: true,
  members: [
    { _id: 0, host: "config1.example.com:27019" },
    { _id: 1, host: "config2.example.com:27019" },
    { _id: 2, host: "config3.example.com:27019" }
  ]
})

验证副本集状态:

rs.status()

4. 配置分片服务器(Shard Servers)

分片服务器存储实际数据,每个分片应为一个副本集(建议3节点)。

4.1 创建数据目录(以shard1为例)

sudo mkdir -p /data/shard1
sudo chown -R mongodb:mongodb /data/shard1

4.2 配置文件(/etc/mongod_shard1.conf)

编辑配置文件,指定shardsvr角色、副本集名称、端口(建议27018):

storage:
  dbPath: /data/shard1
  journal:
    enabled: true
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/shard1.log
net:
  port: 27018
  bindIp: 0.0.0.0
replication:
  replSetName: shard1ReplSet
sharding:
  clusterRole: shardsvr

4.3 启动分片服务器

sudo mongod --config /etc/mongod_shard1.conf

4.4 初始化副本集

连接到分片服务器节点,执行初始化命令:

mongo --port 27018

在mongo shell中输入:

rs.initiate({
  _id: "shard1ReplSet",
  members: [
    { _id: 0, host: "shard1.example.com:27018" },
    { _id: 1, host: "shard1.example.com:27019" },
    { _id: 2, host: "shard1.example.com:27020" }
  ]
})

验证副本集状态:

rs.status()

重复上述步骤,配置其他分片(如shard2、shard3)。

5. 配置路由服务器(Mongos)

mongos是客户端与集群的接口,负责请求路由。

5.1 创建数据目录

sudo mkdir -p /data/mongos
sudo chown -R mongodb:mongodb /data/mongos

5.2 配置文件(/etc/mongod_mongos.conf)

编辑配置文件,指定配置服务器地址(需包含所有config servers):

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongos.log
net:
  port: 27017
  bindIp: 0.0.0.0
sharding:
  configDB: configReplSet/config1.example.com:27019,config2.example.com:27019,config3.example.com:27019

5.3 启动mongos

sudo mongos --config /etc/mongod_mongos.conf

5.4 添加配置服务器到mongos

连接到mongos节点,添加配置服务器(需与配置文件一致):

mongo --port 27017

在mongo shell中输入:

sh.addShardToCluster("configReplSet/config1.example.com:27019")

6. 添加分片到集群

连接到mongos节点,将分片添加到集群:

mongo --port 27017

在mongo shell中输入(以shard1为例):

sh.addShard("shard1ReplSet/shard1.example.com:27018")

重复上述命令,添加其他分片(如shard2、shard3)。

7. 启用数据库和集合分片

7.1 启用数据库分片

sh.enableSharding("mydatabase")  // 替换为你的数据库名

7.2 启用集合分片

选择一个分片键(如_id或业务字段),执行分片操作:

sh.shardCollection("mydatabase.mycollection", { "shardKey": 1 })  // 替换为你的集合名和分片键

验证分片状态:

sh.status()

8. 验证集群

注意事项

0
看了该问题的人还看了