Metadb master-slave 主从配置
配置说明
- Metadb 主从配置,适用于 Metadb 数据库版本高于13.5的环境,低于此版本的 Metadb 服务 先参考 数据库服务升级
单机/集群部署
准备工作
- 配置/opt/hengshi/conf/hengshi-sense-env.sh 文件中的 export PG_METASLAVE_HOST=(10.10.10.xx 10.10.10.xx)参数, 10.10.10.xx 表示从节点 ip 地址 支持多从库配置,可以选择一台从库或者多从库,支持水平扩展从库数量。
- 请确保从库服务器,与主库服务器之间可以免密码登录
- 执行初始化从库操作前,请确保主库 metadb 服务在启动状态 注意 从库端口不可配置,使用主库配置的 HS_PG_PORT 值,请保证从库此端口可用
初始化操作
注意
- 初始化 metaslave 前,请保证 metadb 服务处于启动状态。
- 初始化的从库为只读权限没有写入权限,不可直接连接作为数据库使用
shell
cd /opt/hengshi
bin/hengshi-sense-bin init metaslave
1
2
2
启动操作
shell
cd /opt/hengshi
bin/hengshi-sense-bin start metaslave
1
2
2
停止操作
shell
cd /opt/hengshi
bin/hengshi-sense-bin stop metaslave
1
2
2
切换从库操作
- 提升从库写权限,此次操作需要在 HS_PG_HOST 配置的原从库地址服务器上执行
shell
cd /opt/hengshi
bin/hengshi-sense-bin promote metadb
1
2
2
- 出现下述述提示请输入 Y 确认此次操作,操作成功界面如下
- 请修改/opt/hengshi/conf/hengshi-sense-env.sh 文件中的 HS_PG_HOST 参数为想要切换为主库的从库地址。 注意
- HS_ENGINE_HOST 参数如果未配置请配置,使用默认参数会引用 HS_PG_HOST 参数信息,导致引擎地址错误。
- 切换到从库后 PG_METASLAVE_HOST 参数请重新配置,之前配置的主从关系将失效,需要重新进行初始化操作
- 重启衡石服务完成主从切换操作
shell
cd /opt/hengshi
bin/hengshi-sense-bin restart hengshi
1
2
2
集群部署注意事项
- 将集群操作节点上的(默认 Node-A)的
/opt/hengshi/ansible/hosts
以下内容取消注释
shell
[metaslave] #metadb 数据库从库(选填)可用于主库down机 备用库使用
Node-B
1
2
2
- 将 metadb slave 所在机器节点(默认 Node-B) /opt/hengshi/conf/hengshi-sense-env.sh 中的 export PG_METASLAVE_HOST=(Node-B) 参数指定为 Node-B ,多个 host 用空格分割。
也可以直接更改 Node-A 的 /opt/hengshi/conf/hengshi-sense-env.sh
,然后使用以下命令进行同步配置文件到其他节点
shell
# 跳过备份和gpdb文件可以加 -s t -g false 参数
./hs_install -m config -c ../cluster-conf/
1
2
2
- 在集群操作节点上(默认Node-A)上执行初始化和启动操作
shell
/opt/hengshi/bin/hengshi-sense-bin init metaslave
/opt/hengshi/bin/hengshi-sense-bin start metaslave
1
2
2
看到 "streaming" 字样表示主从配置成功
容器部署
准备工作
- 使用特定的 docker-compose.yaml 文件部署 Metadb 主从,请联系售后人员
- 配置 hsenv 文件
- HS_MASTER_PG_HOST 部署服务节点,服务器 ip 信息(不是 docker 容器内部 ip 信息)
- HS_SLAVE_PG_HOST 部署从库节点,服务器 ip 信息(不是 docker 容器内部 ip 信息)
- 请保持 HS_MASTER_PG_HOST 和 HS_SLAVE_PG_HOST 服务器可以正常连通 并且 HS_PG_EXPOSE_PORT 端口互为开放
初始化操作
注意
- 初始化 metaslave 前,请保证 metadb 服务处于启动状态。
- 初始化的从库为只读权限没有写入权限,不可直接连接作为数据库使用
shell
cd single
docker-compose run --rm metadb init metaslave
1
2
2
启动操作
shell
cd single
docker-compose up -d
1
2
2
停止操作
shell
cd single
docker-compose down
1
2
2
切换从库操作
- 提升从库读写权限,此次操作需要在 HS_SLAVE_PG_HOST 配置的原从库地址服务器上执行
shell
cd single
docker-compose run --rm metadb promote metadb
1
2
2
- 出现下述述提示请输入 Y 确认此次操作,操作成功界面如下
- 请修改 metaslave/docker-compose.yaml 配置文件,hengshi>environment>HS_PG_HOST:hengshi-metadb 修改为部署从库服务器 ip
- 重启衡石服务完成主从切换操作
shell
cd single
docker-compose down
docker-compose up
1
2
3
2
3
k8s 部署
准备工作
- 请联系售后人员,获取 metaslave.yaml 配置文件。
启动操作
注意
- 执行操作 metaslave 前,请保证 metadb 服务处于启动状态。
- 初始化的从库为只读权限没有写入权限,不可直接连接作为数据库使用
- 请确认 configmap.yaml 文件中存在 LOCAL_HOST_NAME 参数配置
shell
kubectl -n hengshi apply -f configmap.yaml
kubectl -n hengshi apply -f metaslave.yaml
1
2
2
切换从库操作
- 提升从库读写权限
shell
kubectl -n hengshi exec -it metaslave-0 -- /docker-entrypoint.sh promote metadb single
1
- 出现下述述提示请输入 Y 确认此次操作,操作成功界面如下
- 修改 configmap.yaml 文件,HS_PG_HOST: metadb-0.hengshi-hs 参数为 metaslave-0.hengshi-hs
- 重启衡石服务完成主从切换操作
shell
kubectl -n hengshi apply -f hengshi.yaml
1