跳到主要内容

MongoDB 单节点转换为副本集

基于 HAP 产品的系统架构,MongoDB 单节点分为 使用存储组件镜像内置 MongoDB使用单独部署的 MongoDB。另外在这基础上,还需要区分是否开启认证。所以包含以下 4 种情况:

  • 使用内置 MongoDB 未开启认证
  • 使用内置 MongoDB 开启认证
  • 使用外置 MongoDB 未开启认证
  • 使用外置 MongoDB 开启认证

内置 MongoDB 指 hap-sc:3.0.0 镜像包含的 MongoDB 组件

  1. 在 docker-compose.yaml 增加 ENV_MONGODB_DAEMON_ARGS: "--replSet sc-mongodb",如下:

    增加 ENV_MONGODB_DAEMON_ARGS 后,会自动转换成副本集模式。内置脚本为:rs.initiate({_id: "sc-mongodb",members:[ {_id : 1, host : "sc:27017"} ]})如果存在其他客户端连接此 MongoDB,需要在客户端增加针对 sc 服务名的 host 解析记录

    services:
    app:
    image: nocoly/hap-community:5.8.0
    environment: &app-environment
    ENV_MONGODB_DAEMON_ARGS: "--replSet sc-mongodb"
  2. 重启服务,在管理器根目录下执行:

    bash ./service.sh restartall