Metadb POSTGRESQL 升级
本文介绍 Metadb 的大版本升级所需的操作。
单机/集群 部署
升级前验证
启动metadb服务后出现以下提示, 表示您的 metadb 版本低于当前 HENGSHI SENSE 内置版本
在安装升级时出现以下提示, 表示您的 metadb 版本低于当前 HENGSHI SENSE 内置版本
版本升级
执行前需要从hengshi升级包内将metadb新版本拷贝到当前部署的lib目录下 例如;
cp -a hengshi-sense-[version]/lib/postgresql-17.4-linux-64 {HENGSHI_HOME}/lib/
cd {HENGSHI_HOME}
bin/hengshi-sense-bin stop hengshi ## 停止hengshi服务
bin/hengshi-sense-bin stop metadb ## 保证 metadb 升级操作前,服务处于停止状态。
bin/hengshi-sense-bin upgrade metadb ## 升级操作
2
3
4
出现下面提示显示您的 metadb 数据库已经升级完成
提示
如果自行准备postgresql安装包 可在hengshi-sense-env.sh文件中配置export METADB_VERSION="17.4" 变量指定升级版本
版本回滚
- 升级过程中出现异常信息,请执行下述操作完成版本回滚操作
其中要回滚的程序 postgresql-x.y.z 为升级前的 postgresql 版本号,本例中为 postgresql-13.5.4-linux-64
cd {HENGSHI_HOME}
rm -rf pg_data
mv pg_data_bak pg_data
cd /opt/hengshi/lib
rm -rf pgsql
ln -s postgresql-13.5.4 pgsql
2
3
4
5
6
旧数据清理
待升级以及启动衡石,登录确认业务数据正常后,可以执行以下操作清理旧数据:
cd /opt/hengshi
rm pg_data_bak -rf
2
容器 部署
升级前验证
请联系售后人员,确认当前 metadb 版本信息,升级 metadb 版本信息。 例如:
- 正在运行衡石版本为 5.4.6, metadb 版本为 postgresql-13.5
- 待升级衡石版本为 6.0.0, metadb 版本为 postgresql-17.4
版本升级
- 升级 metadb 服务主版本,需要使用升级镜像 hengshi-sense:metadb-upgrade-X.0 ,请先获取对应镜像,其 tag 中 X.0 为衡石的主版本号
- 修改.env 文件,HS_IMAGE_TAG=$TAG 将$TAG 配置成
metadb-upgrade-X.0
升级镜像 tag - 修改 docker-compose.yaml 文件,在 metadb 服务下 增加如下配置 ,注意 13.5.4 信息是当前 metadb 版本编号
environment:
PG_VERSION: 13.5.4
2
说明:PG_VERSION 可以填详细的 13.5.4 版本号,也可以只填 13.5 版本号,升级程序会匹配其主版本号 13 对应的可用最新版本
- 升级前操作
# 停止 hengshi 服务
docker-compose stop hengshi
# 停止 metadb 服务
docker stop hengshi-metadb
docker rm -f hengshi-metadb
# 启动 metadb-upgrade-X.0
docker-compose up -d hengshi-metadb
2
3
4
5
6
7
8
9
- 执行升级操作
# 确保metadb-upgrade容器状态为Up,才能继续执行升级操作。
docker-compose run --rm metadb upgrade metadb
2
出现上面提示表示您的 metadb 数据库升级完成
- 修改.env 文件,HS_IMAGE_TAG=$TAG 将$TAG 配置成
X.0
升级镜像 tag, 比如当前例子应为6.0.0
版本回滚
- 升级过程中出现异常信息,请执行下述操作完成版本回滚操作
- 确认 env 配置文件信息,HSHOME 地址信息
cd $HSHOME #进去到 HSHOME 配置的目录下
cd hsdata
rm -rf pg_data
mv pg_data_bak pg_data
2
3
4
- 回滚完成后恢复 .env 文件中镜像 tag 到旧版本, 在本例中为 5.4.6
k8s 部署
升级前验证
请联系售后人员,确认当前 metadb 版本信息,升级 metadb 版本信息。 例如:
- 正在运行衡石版本为 5.4.6, metadb 版本为 postgresql-13.5
- 待升级衡石版本为 6.0.0, metadb 版本为 postgresql-17.4
版本升级
- 升级 metadb 服务版本,需要使用升级镜像 hengshi-sense:metadb-upgrade-X.0,请先获取对应镜像,其 tag 中 X.0 为衡石的主版本号
- 修改 metadb.yaml 中 image: registry.hengshi.org/hengshi-sense:5.4.6 镜像版本为 hengshi-sense:metadb-upgrade-X.0
- 修改 configmap.yaml 配置参数 增加如下配置,注意 13.5.4 信息是当前 metadb 版本编号
PG_VERSION: 13.5.4
说明:PG_VERSION 可以填详细的 13.5.4 版本号,也可以只填 13.5 版本号,升级程序会匹配其主版本号 13 对应的可用最新版本
- 升级前操作
# 停止 hengshi 服务
kubectl -n hengshi scale deployment hengshi-sense --replicas=0
# 停止 metadb 服务
kubectl -n hengshi scale sts metadb --replicas=0
# 启动 metadb-upgrade-X.0 服务(请确认 metadb.yaml 中的镜像地址已经修改)
kubectl -n hengshi apply metadb.yaml
kubectl -n hengshi scale sts metadb --replicas=1
2
3
4
5
6
7
8
9
- 执行下列升级操作
# 确保metadb-upgrade容器状态为Up,才能继续执行升级操作。
kubectl -n hengshi exec -it metadb-0 -- /docker-entrypoint.sh upgrade metadb single
2
出现上面提示表示您的 metadb 数据库升级完成
- 修改 metadb.yaml 中 image: registry.hengshi.org/hengshi-sense:metadb-upgrade-X.0 镜像版修改为主服务版本,比如当前例子应为
6.0.0
版本回滚
- 升级过程中出现异常信息,请执行下述操作完成版本回滚操作
kubectl -n hengshi exec -it metadb-0 -- /bin/bash
cd /opt/hengshi
rm -rf pg_data
mv pg_data_bak pg_data
2
3
4
- 回滚完成后恢复 metadb.yaml 文件中镜像 tag 到旧版本, 在本例中为 5.4.6
windows 部署
升级前验证
确定当前版本,查看安装目录下\pg_data\PG_VERSION文件内容,确定当前 metadb 版本。
请注意
确认当前 安装目录\lib\ 目录下存在升级前 metadb 版本程序 如 PG_VERSION 文件内容为 9.6,lib\ 目录下应存在 postgresql-9.6.2-windows-64 程序目录
版本升级
开始升级,输入待升级版本程序名称
点击开始升级按钮
出现升级完成提示,此次升级工作完成
- 提示:升级后出现 pg_data_bak 目录,此目录为旧版本数据库文件,确认升级后数据库无误后此文件可根据情况清理。
版本回滚
- 升级过程中出现异常信息,请执行下述操作完成版本回滚操作。
- 删除 pg_data 目录,重命名 pg_data_bak 目录为 pg_data 目录。
- 编辑安装目录\bat\common.bat文件,将 pgsql 变量修改为pgsql=postgresql-9.6.2-windows-64。