Skip to content

Metadb master-slave 主从配置

配置说明

  1. Metadb 主从配置,适用于 Metadb 数据库版本高于13.5的环境,低于此版本的 Metadb 服务 先参考 数据库服务升级

单机/集群部署

准备工作

  1. 配置/opt/hengshi/conf/hengshi-sense-env.sh 文件中的 export PG_METASLAVE_HOST=(10.10.10.xx 10.10.10.xx)参数, 10.10.10.xx 表示从节点 ip 地址 支持多从库配置,可以选择一台从库或者多从库,支持水平扩展从库数量。
  2. 请确保从库服务器,与主库服务器之间可以免密码登录
  3. 执行初始化从库操作前,请确保主库 metadb 服务在启动状态 注意 从库端口不可配置,使用主库配置的 HS_PG_PORT 值,请保证从库此端口可用

初始化操作

注意

  1. 初始化 metaslave 前,请保证 metadb 服务处于启动状态。
  2. 初始化的从库为只读权限没有写入权限,不可直接连接作为数据库使用
shell
cd /opt/hengshi
bin/hengshi-sense-bin init metaslave

启动操作

shell
cd /opt/hengshi
bin/hengshi-sense-bin start metaslave

停止操作

shell
cd /opt/hengshi
bin/hengshi-sense-bin stop metaslave

切换从库操作

  1. 提升从库写权限,此次操作需要在 HS_PG_HOST 配置的原从库地址服务器上执行
shell
cd /opt/hengshi
bin/hengshi-sense-bin promote metadb
  1. 出现下述述提示请输入 Y 确认此次操作,操作成功界面如下
  2. 请修改/opt/hengshi/conf/hengshi-sense-env.sh 文件中的 HS_PG_HOST 参数为想要切换为主库的从库地址。 注意
    1. HS_ENGINE_HOST 参数如果未配置请配置,使用默认参数会引用 HS_PG_HOST 参数信息,导致引擎地址错误。
    2. 切换到从库后 PG_METASLAVE_HOST 参数请重新配置,之前配置的主从关系将失效,需要重新进行初始化操作
  3. 重启衡石服务完成主从切换操作
shell
cd /opt/hengshi
bin/hengshi-sense-bin restart hengshi

集群部署注意事项

  1. 将集群操作节点上的(默认 Node-A)的 /opt/hengshi/ansible/hosts 以下内容取消注释
shell
[metaslave] #metadb 数据库从库(选填)可用于主库down机 备用库使用
Node-B
  1. 将 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. 在集群操作节点上(默认Node-A)上执行初始化和启动操作
shell
/opt/hengshi/bin/hengshi-sense-bin init metaslave
/opt/hengshi/bin/hengshi-sense-bin start metaslave

看到 "streaming" 字样表示主从配置成功

容器部署

准备工作

  1. 使用特定的 docker-compose.yaml 文件部署 Metadb 主从,请联系售后人员
  2. 配置 hsenv 文件
    • HS_MASTER_PG_HOST 部署服务节点,服务器 ip 信息(不是 docker 容器内部 ip 信息)
    • HS_SLAVE_PG_HOST 部署从库节点,服务器 ip 信息(不是 docker 容器内部 ip 信息)
  3. 请保持 HS_MASTER_PG_HOST 和 HS_SLAVE_PG_HOST 服务器可以正常连通 并且 HS_PG_EXPOSE_PORT 端口互为开放

初始化操作

注意

  1. 初始化 metaslave 前,请保证 metadb 服务处于启动状态。
  2. 初始化的从库为只读权限没有写入权限,不可直接连接作为数据库使用
shell
cd single
docker-compose run --rm metadb init metaslave

启动操作

shell
cd single
docker-compose up -d

停止操作

shell
cd single
docker-compose down

切换从库操作

  1. 提升从库读写权限,此次操作需要在 HS_SLAVE_PG_HOST 配置的原从库地址服务器上执行
shell
cd single
docker-compose run --rm metadb promote metadb
  1. 出现下述述提示请输入 Y 确认此次操作,操作成功界面如下
  2. 请修改 metaslave/docker-compose.yaml 配置文件,hengshi>environment>HS_PG_HOST:hengshi-metadb 修改为部署从库服务器 ip
  3. 重启衡石服务完成主从切换操作
shell
cd single
docker-compose down
docker-compose up

k8s 部署

准备工作

  1. 请联系售后人员,获取 metaslave.yaml 配置文件。

启动操作

注意

  1. 执行操作 metaslave 前,请保证 metadb 服务处于启动状态。
  2. 初始化的从库为只读权限没有写入权限,不可直接连接作为数据库使用
  3. 请确认 configmap.yaml 文件中存在 LOCAL_HOST_NAME 参数配置
shell
kubectl -n hengshi apply -f configmap.yaml
kubectl -n hengshi apply -f metaslave.yaml

切换从库操作

  1. 提升从库读写权限
shell
kubectl -n hengshi exec -it metaslave-0 -- /docker-entrypoint.sh promote metadb single
  1. 出现下述述提示请输入 Y 确认此次操作,操作成功界面如下
  2. 修改 configmap.yaml 文件,HS_PG_HOST: metadb-0.hengshi-hs 参数为 metaslave-0.hengshi-hs
  3. 重启衡石服务完成主从切换操作
shell
kubectl -n hengshi apply -f hengshi.yaml

衡石分析平台使用手册