写点什么

技术实践丨 GaussDB(DWS) 运维管理功能“升级”的原理和使用

发布于: 2020 年 10 月 19 日

摘要:本文将详细介绍 GaussDB(DWS)重要运维管理功能“升级”的原理和使用。


运维管理模块是任何软件产品最基础和重要的一部分。是软件产品的门户,也是用户接触和使用软件产品的和前提和基础。如安装部署能让用户快速上手使用,升级能让产品平滑更新,扩容能让产品扩充能力,故障修复能让产品快速恢复,监控告警能让产品提前预知或及时排除故障。其在可用性,易用性,可靠性,可维护性、在线运维方面都有较高的要求。本文将详细介绍 GaussDB(DWS)重要运维管理功能“升级”的原理和使用。


前言


不断更新和演进是软件的一个重要行为,升级是软件更新的重要保证。伴随着新特性不断推出和历史问题修复,软件升级和打补丁显得格外重要。升级和打补丁需要满足如下要求:


  • 软件版本的无缝、平滑过渡。

  • 业务中断时间尽量少,以至于在线。

  • 用户体验前向兼容。


而数据库升级比其他软件升级更为复杂,不光是软件本身的更新,还要支持其管理的数据的升级。数据库升级需要考虑如下因素:


  • 软件升级,即软件本身的更新。

  • 元数据升级,即软件管理数据的方式的更新。

  • 业务数据升级,即软件管理的数据的升级。


随着数据库版本的快速演进,升级愈显重要,其可靠性、性能、业务中断、易用性急需改善。


升级演进


GaussDB(DWS)升级经过多个版本的演进,其性能,可靠性逐步提升。并提供了不同场景的各种升级方式。如下是演进过程:



大版本全量升级:新版本重建数据库,元数据导入导出,业务数据全量 mv 方式。依赖于数据库对象个数和业务数据量大小、业务数据表文件数。已在 V1R8 停用。


就地升级:原地替换二进制,修改系统表方式。依赖于系统表的逻辑大小(数据对象个数)和物理大小(系统表脏页)及数据库个数。


小版本离线升级:停机,替换二进制,启动集群。业务中断时间是一次集群的重启时间。


小版本滚动升级:保留老二进制文件,新目录安装新二进制,按照组件(om_monitor,cm_agent,ETCD,CN,dummy DN,standby DN/GTM/CM,master DN/GTM/CM)滚动切换到新二进制,然后主备切换。整个升级过程中涉及两次 switchover,业务中断时间依赖于在线 switchover 和 CN retry 能力。


小版本闪断升级:基于小版本滚动升级基础,保留老二进制文件,新目录安装新二进制,先切换管理组件(om_monitor、cm_agent、ETCD、cm_server),再一次性切换业务组件(GTM、CN、DN),只闪断一次业务。目前 DWS 已使用。


就地升级原理介绍


目前 8.0 主要使用的升级方式是就地升级。其已经支撑现网线下和公有云多套集群成功升级到新版本。


1、公有云升级流程


DWS 服务升级主要分 2 部分,管控面升级和租户面升级:



各个 region 的管控面升级回滚主要通过 CDK 平台完成,升级后组件自行功能验证。



升级实例的信息:



租户面升级在 ServiceCM 平台由 SRE 操作,操作可分为 DWS Guest 升级和数据库内核升级:



主要流程如下所示:



2、线下 updatetool 升级


通过登录 UpdateService 操作界面,创建升级工程,进行一键式升级。



3、数据库内核升级流程


数据库内核升级是通过替换二进制+更新元数据的方式进行升级。


包括初始阶段,准入检查,环境准备,停机,备份,升级,update catalog,提交 8 个阶段。




升级性能目标



升级问题定位


升级过程日志概览见下表:





UpdateService 的日志分为审计日志和调试日志,位置见下表:



结语


在数据仓库产品使用过程中,升级和打补丁是使用频率较高的功能。本文中仅仅介绍了 GaussDB(DWS)升级的大致流程和基本原理,及性能目标。如果现网变更中遇到升级相关问题,还需联系相关技术支持。


点击关注,第一时间了解华为云新鲜技术~


发布于: 2020 年 10 月 19 日阅读数: 43
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
技术实践丨GaussDB(DWS)运维管理功能“升级”的原理和使用