MongoDB 单节点转换为副本集
基于 HAP 产品的系统架构,MongoDB 单节点分为 使用存储组件镜像内置 MongoDB 或 使用单独部署的 MongoDB。另外在这基础上,还需要区分是否开启认证。所以包含以下 4 种情况:
- 使用内置 MongoDB 未开启认证
- 使用内置 MongoDB 开启认证
- 使用外置 MongoDB 未开启认证
- 使用外置 MongoDB 开启认证
- 使用内置 MongoDB 未开启认证
- 使用内置 MongoDB 开启认证
- 使用外置 MongoDB 开启认证
- 使用外置 MongoDB 已开启认证
内置 MongoDB 指 mingdaoyun-sc:3.0.0 镜像包含的 MongoDB 组件
-
在 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: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-community:6.1.2
environment: &app-environment
ENV_MONGODB_DAEMON_ARGS: "--replSet sc-mongodb" -
重启服务,在管理器根目录下执行:
bash ./service.sh restartall
内置 MongoDB 指 mingdaoyun-sc:3.0.0 镜像包含的 MongoDB 组件
-
创建 keyfile 文件
echo $(openssl rand -base64 32) > /data/mingdao/script/volume/data/mongodb/keyfile
chmod 400 /data/mingdao/script/volume/data/mongodb/keyfile -
修改环境变量
ENV_MONGODB_DAEMON_ARGS
,追加--keyFile /data/mongodb/keyfile --replSet sc-mongodb
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-community:6.1.2
environment: &app-environment
ENV_MONGODB_DAEMON_ARGS: "--auth --keyFile /data/mongodb/keyfile --replSet sc-mongodb" -
重启服务,在管理器根目录下执行:
bash ./service.sh restartall
-
副本集转换
进入存储组件容器
docker exec -it script_sc_1 bash