温馨提示×

MongoDB在Debian上的高可用性如何实现

小樊
49
2025-09-01 10:57:41
栏目: 云计算

在Debian上实现MongoDB高可用性主要有以下两种方式:

一、副本集(Replica Set)

  1. 安装MongoDB:在所有节点执行 sudo apt update && sudo apt install -y mongodb-org
  2. 配置副本集:编辑 /etc/mongod.conf,添加 replication: replSetName: "rs0"rs0为副本集名称,可自定义)。
  3. 重启服务:在每个节点执行 sudo systemctl restart mongod
  4. 初始化副本集:连接到主节点(任意一个节点),在Mongo shell中执行:
    rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "节点1IP:27017" }, { _id: 1, host: "节点2IP:27017" }, { _id: 2, host: "节点3IP:27017" } ]})
  5. 验证状态:执行 rs.status() 查看节点状态,确保主从节点正常。

二、分片集群(Sharded Cluster)

  1. 配置分片组件
    • 配置服务器:至少3个节点,用于存储元数据,启动命令:
      mongod --configsvr --replSet configReplSet --dbpath /var/lib/mongodb/configdb --port 27019
    • 分片服务器:每个分片需配置为副本集,启动命令类似副本集配置。
    • 路由服务器(mongos):连接客户端与分片集群,命令:
      mongos --configdb configReplSet/节点IP:27019 --port 27017
  2. 添加分片:连接到 mongos,执行:
    sh.addShard("分片副本集名称/分片节点IP:端口")
  3. 启用分片:对数据库和集合执行:
    sh.enableSharding("数据库名")sh.shardCollection("数据库.集合", { "分片键": 1 })

关键注意事项

  • 网络配置:确保节点间网络通畅,防火墙开放对应端口(默认27017)。
  • 安全设置:生产环境需启用认证(如SCRAM-SHA-256)和加密。
  • 监控与备份:使用 mongostatmongotop 或第三方工具(如Prometheus)监控集群状态,定期通过 mongodump 备份数据。

副本集适用于中小规模高可用场景,分片集群适合大规模数据水平扩展需求,可根据业务规模选择合适方案。

0