centos

CentOS如何管理和维护MongoDB集群

小樊
52
2025-08-28 17:56:07
栏目: 云计算

一、集群部署与配置

  1. 安装MongoDB
    通过官方YUM仓库安装,添加仓库配置后执行 sudo yum install -y mongodb-org
  2. 配置副本集/分片
    • 副本集:修改 /etc/mongod.conf,设置 replication.replSetName,启动服务后通过 rs.initiate() 初始化。
    • 分片集群:需配置配置服务器(configsvr)、分片服务器(shardsvr)和路由服务(mongos),通过 sh.addShard() 添加分片。
  3. 防火墙与权限
    开放MongoDB端口(默认27017),配置KeyFile实现节点间认证。

二、日常管理与维护

  1. 状态监控
    • 使用 rs.status() 查看副本集状态,sh.status() 查看分片集群状态。
    • 通过 mongostatmongotop 监控性能,或使用Prometheus+Grafana实现可视化监控。
  2. 备份与恢复
    • 定期使用 mongodumpmongorestore 备份数据,建议配置自动化脚本。
    • 对于分片集群,需分别备份配置服务器和分片数据。
  3. 性能优化
    • 为常用查询字段创建索引,使用 db.collection.createIndex() 操作。
    • 调整WiredTiger缓存大小(storage.wiredTiger.engineConfig.cacheSizeGB)以适配服务器内存。
  4. 日志与故障处理
    • 查看 /var/log/mongodb/mongod.log 定位异常,如连接超时、磁盘空间不足等。
    • 若节点故障,通过 rs.remove() 移除故障节点,重新添加新节点并同步数据。

三、进阶操作

  1. 分片键设计
    选择高基数、低频率更新的字段作为分片键,避免数据倾斜。
  2. 集群扩缩容
    • 添加新节点:修改配置后通过 rs.add()sh.addShard() 纳入集群。
    • 移除节点:先标记为隐藏(rs.hide()),再安全移除。
  3. 安全加固
    • 启用TLS/SSL加密通信,配置 net.ssl 参数。
    • 限制IP访问,通过防火墙或 bindIp 仅允许可信IP连接。

参考来源:[1,2,3,4,5,6,7,8,9,10,11]

0
看了该问题的人还看了