版本升级注意事项
本文介绍升级版本中的注意事项,请仔细阅读后执行后续升级操作。
need migrate data, skip installation
当安装程序检测到当前已安装和升级包内的组件版本不一致时, 无法通过直接替换进行升级。
需要通过脚本来做数据迁移后才能进行升级操作。
Version<=4.2版本升级到此版本
Metadb 版本不支持9.x 版本,升级前请确认使用的 Metadb 版本信息。
- 使用衡石内置数据库,参考 数据库服务升级
- 使用外部数据库,自行升级数据库版本,建议升级版本为13.xx。
JDK 版本不在支持1.8版本,容器、K8s 部署方式忽略此问题,VM 单机、集群部署方式升级操作前 必要执行 init-os all
- 内网环境联系售后人员获取 JDK 静态资源
cd /opt/hengshi/lib
export hs_version="openjdk-11.0.17_8.1"
wget https://download.hengshi.com/hs-jdk/${hs_version}.tar.gz
tar -zxf ${hs_version}.tar.gz && rm ${hs_version}.tar.gz
ln -sf ${hs_version} jdk
- 注意 如有要求使用特定 JDK 版本,请在 conf/hengshi-sense-env.sh 配置下列参数
export HS_JDK_HOME="JDK 安装目录" # bin 目录上级目录位置
- 提供内置的 Doris 引擎,如需存在使用 Doris 引擎作为内置默认引擎需求,请参考Doris 引擎配置
版本回滚到 Version<4.4版本
- 4.4版本对 Greenplum 引擎进行逻辑层面的优化,不兼容 Version<4.4版本程序启动运行,执行版本回滚操作前,执行下列操作
cd /opt/hengshi
bin/clean_engine.sh -d true
执行结束后,继续进行版本回滚操作
使用外部 PostgreSQL 数据库替代 Metadb 注意事项
请参考替换衡石 metadb,准备工作中 使用超级管理员账号对用户进行授权操作 步骤。
配置二级路径注意事项
本版本中不再支持使用CONTEXT_PATH参数实现二级路径访问。 如果需要二级路径访问请参考二级访问路径配置
清理 minio 注意事项
之前版本有些删除 app 的场景没有删除图片,导致 minio 产生了一些无用的图片。因此对 minio 无用的图片进行清理,完善删除逻辑,重新进行存储布局。
升级前请做好以下准备工作。
- 做好 minio 备份(包括云上环境)及 metadb 备份。
- 升级时需等待清理逻辑执行完成,可以通过观察日志了解清理的进度,可以通过
MinioImageClean
过滤出相关信息。经测试,清理11G 的无用照片大概需要4分钟左右。
提示
4.5.4及之前版本、4.6版本,4.6.1版本升级到当前版本时会执行 minio 清理操作,其他版本升级到当前版本时不会执行 minio 清理操作。
LDAP 认证方式修改默认配置
LDAP 认证方式启用用户属性默认配置为 false,升级时不再同步用户属性。所以在升级前请确认是否需要同步用户属性,如果需要同步请将该配置设为 true。
提示
升级影响范围 4.5.11及之前版本、5.0.0版本、5.0.1版本、5.0.2版本、5.0.3版本、5.0.4版本、5.1.0 版本升级到当前版本时需要检查该配置项。
会话 Cookie 修改默认名称注意事项
会话 Cookie 的默认名称为_USER_SESSION_ID
,升级后需要重新登录。如客户系统有使用原 Cookie 名称 sid
的逻辑,需要修改为新的名称_USER_SESSION_ID
, 或者设置参数 export SESSION_COOKIE_NAME=sid(原 cookie 名称)。
提示
升级影响范围是4.5.15及之前版本、5.0.0~5.0.8、5.1.0~5.1.4 ,其他版本不受影响。
6.0+ 首次升级耗时与健康检查配置建议
6.0.0 的升级迁移过程耗时较长,不同的 metadb 数据量,cpu 性能,磁盘 io 性能相应的耗时不同,例如 metadb 40GB (7.5万仪表盘,43万图表),Xeon W-2191B @ 2.30GHz,普通云盘SSD 升级大约需要 15 分钟左右。建议在首次 6.0+ 进行大版本升级前先关闭启动健康检查,升级和成功启动后再恢复健康检查。以下为几种部署方式的修改建议:
2-1 关闭健康检查
- [单机和集群部署]
停止monit监控服务
${HENGSHI_HOME}/bin/hengshi-sense-bin stop monit
# {HENGSHI_HOME} 为hengshi安装的目录变量,不能直接复制执行。
- [docker 部署]
将 docker-compose 文件中 hengshi 部分的 healthcheck 注释掉再启动 hengshi 服务
healthcheck:
test: /opt/hengshi/bin/hengshi-sense-bin health hengshi
interval: 10s
timeout: 30s
retries: 90
- [k8s 部署]
将 hengshi-sense deployment 部署清单中的三项注释掉再启动 hengshi 服务
- startupProbe
- livenessProbe
- readinessProbe
kubectl -n [namespace] edit deployment hengshi-sense
startupProbe:
exec:
command:
- /bin/bash
- /opt/hengshi/bin/hengshi-sense-bin
- health
- hengshi
- single
periodSeconds: 10
successThreshold: 1
failureThreshold: 90
livenessProbe:
exec:
command:
- /bin/bash
- /opt/hengshi/bin/hengshi-sense-bin
- health
- hengshi
- single
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
readinessProbe:
exec:
command:
- /bin/bash
- /opt/hengshi/bin/hengshi-sense-bin
- health
- hengshi
- single
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
2-2 成功后恢复健康检查
- [单机和集群部署]
恢复monit监控服务
${HENGSHI_HOME}/bin/hengshi-sense-bin start monit
# {HENGSHI_HOME} 为hengshi安装的目录变量,不能直接复制执行。
- [docker 部署] 与 [k8s 部署]
将关闭阶段注释掉的内容恢复,再重启 hengshi 服务
提示
升级影响范围是 6.0.0 之前版本首次进行 6.0+ 的升级,比如 4.5.x -> 6.2.y、5.4.x -> 6.0.y
已经在运行 6.0+ 版本的系统再次进行大版本升级不受影响,即 6.0.x -> 6.1.0 不受本事项影响,无需关闭健康检查进行首次升级