张小白OpenGauss训练营日记1——openGauss训练营学习心得

举报
张辉 发表于 2021/09/13 00:59:33 2021/09/13
【摘要】 openGauss训练营第一天流水账

在这个周末能做什么呢?不如参加下 openGauss社区、Gauss松鼠会、云和恩墨 举办的“openGauss布道师朱金伟出品:8小时玩转openGauss训练营(第二期)”活动吧。

打开 https://www.modb.pro/event/370 可以看到活动详情:


连续两天,每天下午4小时的培训活动,应该会让人感到干货满满的吧。。。


当然,在参加培训之前,张小白总得先了解openGuass到底是什么。华为在各个领域都进行了深度布局,其中昇腾、鲲鹏、IoT等张小白都略有了解,但是数据库这块,确实没怎么深入关注过。因此,张小白对此做了简单的搜索和分析(如有错漏,还请专家指出)


虽然张小白也参加过几次《云享读书会》数据库方面的活动,比如  《数据仓库工具箱:维度建模权威指南》( https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=29753&page=1 )和《SQL优化核心思想》( https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=49168&page=1 )。

前者在品书的过程中,让学员了解了华为的数据仓库服务 GaussDB for DWS:

后者学员了解了华为的云数据库服务 PostgreSQL:

但其实,华为在数据库上的布局并不简单,不仅有开源增强型的关系型数据库RDS系列:RDS for MySQL、RDS for PostgreSQL:

也有云数据库GaussDB系列:GaussDB for MySQL、GaussDB for openGauss:

还有云数据库GaussDB for NOSQL系列:Cassandra、MongoDB、Influx、Redis:

这真的让人眼花缭乱。


那我们单看 关系型数据库吧,华为的数据库分两大类:自研和开源增强。个人理解,自研就是自主研发,开源增强就是拿着开源的软件做了功能完善。。。

华为自研的云数据库GaussDB有两个产品:
(1)GaussDB for openGauss:定位为XC场景,应用于金融、电信、政府等行业关键核心系统、高性能场景
(2)GaussDB for MySQL:定位为OLTP和OLAP一般性能要求场景,例如金融、互联网等

 
华为开源增强的云数据库RDS有两个产品:
(1)RDS for PostgreSQL:定位在去Oracle场景(PG增强版)、开源PG业务迁移上云场景
(2)RDS for MySQL:定位在开源MySQL业务迁移上云场景

 
那么openGauss到底是啥?2019年9月19日在华为全联接大会上,华为宣布将开源其数据库产品,开源后命名为openGauss。


openGauss跟前面 GaussDB for openGauss 的关系也容易理解了:GaussDB for openGauss是华为使用自己的免费的开源数据库openGauss提供的收费云服务。


也就是说,openGauss的源代码是公开的,你可以下载源码安装到本地运行,而GaussDB和RDS这些只能在云上运行。当然,云上运行也分公有云运行和私有化运行两种,后者也可能收费不菲。


那么,第一天4个小时的培训到底说了啥呢?


第一讲 openGauss体系架构,由openGauss布道师朱金伟主讲。

朱老师介绍了openGauss的发展历程:



说的好像跟张小白前面调查的结果相似:


openGauss的定位是:高性能、高可用、高安全、易运维、全开放:


朱老师从一般DBMS的体系架构,讲到了openGauss的体系架构:


openGauss主要通过线程池多线程任务调度,实现了各种DB的功能,比如监控/事件Auditor、WalSender/WalReceiver同步复制等。


openGauss的逻辑模块如下所示:


以openGauss的双机复制版本为例,SQL命令的处理流程如下:


具体以执行一句查询的SQL为例:分别包含了SQL解析、查询优化、查询执行、存储读写等各个环节:


openGauss将该语句字符串通过 词法分析解析成token、Keyword,再通过语法分析生成ParseTree,再通过语义分析,解析成QueryTree,接着通过优化器生成PlanTree:


openGauss对以上内容进行查询优化:


再通过执行引擎执行相关查询:


openGauss的存储引擎接收查询执行,通过控制事务、锁、缓冲区、文件等实现对数据的访问,并且记录Redo Log。


朱老师接着讲了openGauss的一些核心技术:


比如:

SMP并行架构:


64位事务ID:


如何解决大并发场景的问题:


线程池实现原理:


事务处理机制:


增量checkpoint技术:


接着,朱老师介绍了openGauss的典型场景OLTP和OLAP:


行列混合引擎——针对不同性质的查询和分析等操作,提供行存和列存不同方式的存储策略:


接着,朱老师介绍了openGauss的双机部署场景——主机读写,备机只读:


双机原理是通过日志收发线程将主库的Redo日志发送到备机,在备机做日志恢复:


openGauss通过优化,可以实现极致RTO:


朱老师接着介绍了openGauss如何处理安全问题:


这里采用了全密态等值查询技术:


数据流程如下:


openGauss还针对DBA日常的运维场景,将其大部分工作自动化:


还提供了AI for DB和DB for AI两大类AI全景:


DB4AI包含以下功能:



此外,openGauss还提供了离线和在线的参数调优的能力:


慢查询发现的能力:


核心技术总结如下:


openGauss的AI能力体现在DBMind上,它代表了openGauss的未来方向:更智能、更安全、更高效:



第二讲 场景演练:主备HA集群部署 ,由贾军锋 主讲

贾老师通过理论和实操,让大家知道了HA是什么架构:

HA主从同步复制、异步复制的时序图:





HA有哪些重要参数需要准备:



贾老师接着通过实操搭建了HA主备和备库级联模式的集群:

包含下载安装包:


修改安装脚本:


执行安装脚本:


在安装完毕后,贾老师还介绍了HA环境的日常运维:




其中主备切换有两种模式:switchover主动切换和failover故障切换:


切换的流程分别如下:



使用gs-ctl进行具体的切换:


另外,贾老师还介绍了集群服务器增删节点的过程:

dropnode删除节点的流程:



dropnode删除节点的具体操作:


expansion增加节点的流程:


expansion增加节点的具体操作:



第三讲 WDR报告和性能调优 由刁现峰 主讲



刁老师先介绍了openGauss集群的性能指标体系,然后介绍了WDR集群报表,最后介绍了一些性能调优的案例:


性能指标体系含系统级、对象级、应用级等多类:


核心指标矩阵包含以下内容:


(缺2)



第二部分,WDR包含以下内容:

WDR快照


WDR Report:



WDR集群级报表:


下图是实际范例:




WDR节点级报表:


接着介绍了如何从整体上分析性能的方法:


其中,对于单语句的性能问题,可以用以下的分析方法:



刁老师接着介绍了几个调优的案例:







第四讲 openGauss的AI特性 由王天庆老师主讲


王老师介绍了 数据库现在的发展趋势跟人工智能的结合是什么情况:


AI4DB和DB4AI的场景(这点第一点的朱老师也有提及)





AI在参数优化和调优上的能力:


慢查询发现能力:


数据库异常检测能力:


查询性能预测能力:


DB4AI能力:



第五讲 内存优化表 由王鹏主讲


王老师介绍了openGauss在MOT内存表上的实现:


openGauss已经完全支持MOT:


MOT是基于乐观并发控制技术,所以不一定适合所有的场景:


如果要在openGauss上实现MOT,仅需建立foreign table就可以了:


MOT拥有极致的性能:


MOT支持持久化和高可用:


内存规划如下:




具体MOT的操作如下:


MOT支持JIT编译提高运行速度:


但是,由于使用了OCC乐观并发控制技术,使用MOT时,客户端代码必须具备重试的功能:


MOT也提供了监控功能:



通过连续4个小时的5个讲座,张小白已经被openGauss完全征服了。openGauss尽管是开源的数据库,但是它仍然解决了张小白在使用别的数据库如IBM DB2、Oracle、MySQL等上的很多痛点,比如性能优化问题,监控问题。openGauss内核源自PostgreSQL,跟Oracle的语法接近,在目前信创的大环境下,还有便于从Oracle迁移的优势。此外,无论是AI,还是MOT,都使得这个数据库不是一个简单的数据库。它几乎代表了关系数据库的未来和趋势。张小白不得不动心去试一试openGauss了。


最后附上一些资源:


openGauss 2.0.0 安装部署(1主+1备+1级联备) https://www.modb.pro/db/49097

基于CentOS 7.6操作系统安装脚本链接地址:https://www.modb.pro/db/106407
基于openEuler操作系统安装脚本链接地址:https://www.modb.pro/db/52552

在线openGauss实训平台 https://www.modb.pro/marketlist?type=1

希望第二天下午的4个小时能够给张小白带来新的收获!


(全文完,谢谢阅读)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。