技术实践丨GaussDB(DWS)运维管理功能“升级”的原理和使用
摘要:本文将详细介绍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)升级的大致流程和基本原理,及性能目标。如果现网变更中遇到升级相关问题,还需联系相关技术支持。
技术实践丨GaussDB(DWS)运维管理功能“升级”的原理和使用的更多相关文章
- 解决连锁零售行业IT运维管理四大困境
解决连锁零售行业IT运维管理四大困境 中国近年来,连锁零售行业进入了行业的发展高潮,迅速崛起一批大型连锁业态.而随着IT技术的不断进步,连锁零售企业已经步入IT信息化快速发展的重要阶段:在面对激烈 ...
- 广通软件获“2016年度中国最具影响力IT运维管理软件提供商”殊荣
12月16日,“科技原力觉醒引领创新巅峰”-- 2016创新影响力年会暨国家产业服务平台•2016年终评活动在北京裕龙国际酒店落下帷幕. 本活动在主管部门的指导参与下,总结本年度技术成果并籍此对未来科 ...
- 国产安全自主可控IT智能运维管理解决方案
新一轮科技革命和产业变革席卷全球,大数据.云计算.物联网.人工智能.区块链等新技术不断涌现,数字经济正深刻地改变着人类的生产和生活方式,作为经济增长新动能的作用日益凸显.伴随增长的,还有网络中不断涌现 ...
- GaussDB(DWS)运维:导致SQL执行不下推的改写方案
摘要:本文就针对因USING子句的书写方式可能导致MERGE INTO语句的执行不下推的场景,对USING子句的SQL语句进行改写一遍,整个SQL语句可以下推. 本文分享自华为云社区<Gauss ...
- Linux运维之Ansible自动化运维管理工具
Ansible简介:Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用.安装软件.执行命令.配置和编排任务.后面会提到批量安装 ...
- django 实现linux运维管理平台
概述 使用django实现一个linux运维管理平台,可以实现注册登录,机器管理 ,服务器批量操作,服务器性能监控. 详细 代码下载:http://www.demodashi.com/demo/112 ...
- CentOS 7运维管理笔记(9)----Apache 安全控制与认证
Apache 提供了多种安全控制手段,包括设置Web访问控制.用户登陆密码认证及 .htaccess 文件等.通过这些技术手段,可以进一步提升Apache服务器的安全级别,减少服务器受攻击或数据被窃取 ...
- 日常运维管理技巧一(查看负载 W)
日常运维管理技巧一(查看负载 W) 今天针对Linux系统管理做一个专题的记录,以后会用的几率也是很大的,只要掌握必备的基础知识,做初级系统管理员是不成问题的. 作为一个运维工程师.系统管理员,如果对 ...
- 华为云和开源Istio运维管理对比样例应用部署
前言 在公有云方面,华为云已经率先将 Istio 作为产品投入到公有云中进行商业应用中,保持和开源istio高度兼容,做了商业化的运维管理界面,同时进行了性能优化.这里我们做一次验证测试. Booki ...
- 【Python】神器:Streamlit,仅使用Python开发一个运维管理后台(不需要编写html,js,css)
背景 作为SRE,我们有很多很多自动化的工具,大部分都是自动运行的,还有一部分是CLI,我们一直苦于没有一个自己的管理后台网站,受限于前端能力薄弱,开发出来的网页只能说凑活能用,但是不好用. 现在我们 ...
随机推荐
- HCTF 2023 wp
HCTF 2023 wp 一.Misc 1.玩原神玩的 分析:附件为一张图片 观察最后一行,明显有flag的格式 搜索得知是 对照得flag为:hctf{yuanlainiyewanyuanshenh ...
- 当scroll-view水平滚动,内容溢出时,文本会自动竖向排列问题
当scroll-view水平滚动,内容溢出时,文本会自动竖向排列 解决方法:thite-space:nowrap:规定段落中的文本不进行换行
- Go命令大全:全面解析与实践
本文详尽地探讨了Go语言的内建命令集,包括但不限于go build.go run.go get等.文章首先列举了所有常用的Go命令,并用表格形式简洁地解释了它们的功能.随后,我们逐一深入讲解了每个命令 ...
- 🎊OpenTiny Vue 3.11.0 发布:增加富文本、ColorPicker等4个新组件,迎来了贡献者大爆发!
你好,我是 Kagol. 非常高兴跟大家宣布,2023年10月24日,OpenTiny Vue 发布了 v3.11.0 . OpenTiny 每次大版本发布,都会给大家带来一些实用的新特性,8.14 ...
- java代审之XXE
一.什么是XXE漏洞 xxe攻击也叫xml外部实体注入攻击,是一种常见的Web应用安全漏洞,通过漏洞可导致任意文件读取.目录遍历.探测内网端口.攻击内网网站.发起DoS拒绝服务攻击.执行系统命令等安全 ...
- JVM-JVM是如何执行方法调用的
重载.重写 void invoke(Object obj, Object... args) { ... } void invoke(String s, Object obj, Object... ar ...
- 【scipy 基础】--积分和微分方程
对于手工计算来说,积分计算是非常困难的,对于一些简单的函数,我们可以直接通过已知的积分公式来求解,但在更多的情况下,原函数并没有简单的表达式,因此确定积分的反函数变得非常困难. 另外,相对于微分运算来 ...
- Java SPI机制总结系列之万字详细图解SPI源码分析
原创/朱季谦 我在<Java SPI机制总结系列之开发入门实例>一文当中,分享了Java SPI的玩法,但是这只是基于表面的应用.若要明白其中的原理实现,还需深入到底层源码,分析一番. 这 ...
- python之字符串format()方法
format()方法就是格式化指定的值,然后再将其插入字符串的占位符内 占位符用大括号{}来定义哈,可以使用命名索引{sws}.编号索引{0}.甚至空的占位符{}来标识占位符. 语法就是 string ...
- 函数计算的新征程:使用 Laf 构建 AI 知识库
Laf 已成功上架 Sealos 模板市场,可通过 Laf 应用模板来一键部署! 这意味着 Laf 在私有化部署上的扩展性得到了极大的提升. Sealos 作为一个功能强大的云操作系统,能够秒级创建多 ...