qq说说赞在线自助下单网站,网站的栏目结构简图怎么做,宁波 外贸网站建设,域名备案完了怎么做网站近日#xff0c;在第14届中国数据库技术大会#xff08;DTCC2023#xff09;的GaussDB“五高两易”核心技术#xff0c;给世界一个更优选择专场#xff0c;华为云数据库运维研发总监李东详细解读了GaussDB运维系统自动驾驶探索和实践。 随着企业数字化转型进入深水区… 近日在第14届中国数据库技术大会DTCC2023的GaussDB“五高两易”核心技术给世界一个更优选择专场华为云数据库运维研发总监李东详细解读了GaussDB运维系统自动驾驶探索和实践。 随着企业数字化转型进入深水区数据库系统越来越复杂运维团队维护的数据库规模越来越大传统工具化的运维已无法满足当前运维的要求数据库运维逐渐向智能化发展。
如何更好地感知和预测数据库故障进而进行智能诊断、自适应恢复是我们一直探索的内容。接下来本篇将分享GaussDB在运维自动化驾驶上的探索与实践分别从云数据库运维挑战GaussDB运维体系架构以及我们如何进行快速感知和快速诊断4个方向进行分享。 云数据库运维面临哪些挑战
随着企业将数据库搬迁上云云上数据库运维面临的挑战更加复杂。数据库可能会部署在裸金属、虚拟机、容器等多样化的基础设施上不同的基础设施面对的故障场景也随之多样化。
如果我们遇到一个性能抖动的亚健康问题通常解决思路是从应用数据库、操作系统、计算、存储、网络等方面多层次全面分析每一层都可能发生故障不同层次发生故障可能引发相同的亚健康现象。比如说一个慢SQL可能是磁盘故障导致的也有可能是网络抖动引起的但是表现上对于客户来讲都是一个慢SQL。
如果运维能力不足我们很难在短时间内去定位和解决亚健康问题因为它在处理过程中一般有三个挑战
第一无法准确预测和监控亚健康问题
这里主要涉及到多和少的问题“少”就是在每一层上缺少对亚健康问题的监控比如说磁盘故障了可以很容易感知到但如果磁盘出现了坏块或者慢盘的情况我们就没有办法快速监控。“多”体现在我们在每一层都做了监控和告警但告警之间是没有关联性的很难从这些告警中识别真正发生问题的点在哪里所以很难精确发现当前的亚健康问题。
第二发现亚健康问题之后没有办法进行快速诊断
对于数据库内部发生的问题往往依赖DBA经验进行诊断和决策对运维的能力要求比较高效率也无法保证。
第三恢复能力不足
我们当前诊断到发生问题的根源之后需要去恢复但恢复能力不足比如限流、扛过载的有效能力不足涉及数据库参数调优、烂SQL优化等需要很深的数据库能力和经验的积累。 GaussDB整体运维架构
GaussDB是如何处理这些问题的下面我们看一下GaussDB整体运维的架构
GaussDB统一运维平台主要分为5个部分
第一部分是实例运维主要负责GaussDB集群生命周期的管理比如创建、变更以及进行备份恢复和参数调整。
第二部分是容灾管理主要提供流式容灾、同城容灾、两地三中心能力。
第三部分是智能运维是GaussDB运维体系中最关键的部分通过AI4DB的能力打造自治运维系统主要分为以下四层 第一层是数据采集层负责采集各层的监控数据以及上层下发的操作指令。 第二层是数据计算层负责将采集到的数据进行缓存、持久化以及数据加工包括时序数据库、算法模型库、故障规则库等。 第三层是自治服务层包括SQL诊断调优、安全、数据库运维等能力。 第四层是全景监控包括告警监控、全量SQL等能力。
GaussDB通过构建一系列的智能运维中心打造了全链路、端到端的自动驾驶体验。 GaussDB故障快速感知 数据库全景监控大盘实时感知系统运行状态 下面我们看一下GaussDB全景监控大盘通过全景监控可以看出我们所维护的数据库集群哪些是正常的哪些是异常的哪些是存在亚健康情况的。比如查看告警统计模块通过分析可以看出整个集群当前的告警情况如果有紧急告警和重要告警可以优先处理。也可以看到资源使用的风险通过资源使用预测能力预警即将会发生哪些资源瓶颈比如说磁盘空间不足、CPU不足方便我们及时处理和恢复。智能诊断这块通过分析当前数据库有哪些性能瓶颈同时也支持自定义监控大盘选取用户重点业务数据库自定义重点监控指标对重点业务进行自定义维度的保障监控。
数据库全景大盘首先要依赖全链路、全方位的监控。数据库的可观测能力对于数据库的运维十分重要GaussDB全链路监控具备从硬件、OS、DB等分层监控构建从采集、发送、展示、分析到巡检等全链路能力并且打通了硬件到操作系统到数据库整个监控链的通道。比如说硬件出现故障问题如果在云上硬件故障属于不同部门维护数据库部门只能看到数据库集群如何感知到硬件发生亚健康或者操作系统存在问题这个时候就得联合硬件部门打通硬件到操作系统、数据库的通知机制如果在这层发生了亚健康问题可以把故障信息向上通知相关的运维部门解决。 全量SQL数据采集分析
接下来看一下全量SQL采集的能力。相较于传统全量SQL采集方式即通过流量抓取或者日志方式获取全量SQLGaussDB通过轻量化的方式构建了全量SQL的洞察。采集进程与数据库建立内存缓冲区通道直接从内存通道里把SQL信息进行采集并转存到外部设备中这个过程不需要发生任何磁盘IO操作对性能影响极低。
传统的采集场景我们可能需要开启全量SQL对业务的影响在30%左右一般情况下用户是不敢开启的。而GaussDB的全量SQL可以把风险降到最低。GaussDB提供的全量SQL方案具备以下4个特点
低风险
GaussDB通过内存方式把日志信息全部读取完再转存到第三方对数据库性能损耗不超过5%。 低成本
GaussDB不将全量SQL数据转存到本地IO而是直接转存到第三方比如说云上的OBS并支持全量SQL的压缩成本比较低。
高扩展
GaussDB全量SQL会默认采集部分信息如果这些信息不满足当前的诉求可以进行扩展。 高安全
当需要将全量SQL转存到第三方设备上时GaussDB在转存过程中进行了默认的数据脱敏确保数据安全。
通过全链路监控GaussDB支持快速自动巡检对可用性、可靠性、性能、资源使用趋势等内容进行巡检并输出巡检报告由此可以查看当前存在的问题并给出一些相应建议。所以通过上述全链路以及自动巡检的能力GaussDB可以做到快速感知。 GaussDB智能诊断
下面我们看一下GaussDB在故障诊断方面有哪些能力
1. SQL自诊断
我们基于离线在线的方式进行SQL诊断首先收集可能存在慢SQL的场景包括SQL文本、SQL执行时间以及扫描行数、返回行数并收集跟数据库、操作系统或者是资源相关的关键指标通过业务SQL信息和关键指标信息进行离线的训练最终得到一个慢SQL特征库。
这个特征库有什么用呢当我们在生产环境中遇到慢SQL问题可以基于特征库和KNN算法进行在线推理诊断出SQL产生的原因然后针对根因给出一些优化建议。
2. SQL全链路分析
之前有客户反馈平时我们的SQL执行非常快能在一秒内返回但是最近反馈偶现执行频繁超时。我们业务人员通过查看每一层状况对客户端、数据库CN、DN、操作系统等进行串行分析发现这个偶现的问题可能发生在某个分片上这样的诊断效率非常低。
GaussDB提供的SQL全链路监控分析能力则很好地解决了这个问题。它包括全链路追踪和聚合分析两方面通过业务SQL关键字或客户端traceID等条件查询到数据库SQLID并追踪该SQL在数据库集群中的解析过程和执行耗时以及每条SQL在集群中的转发、聚合情况进而追踪到问题发生的源头。
3. 多维指标关联分析
数据库运维过程中需要对大量指标进行监控当其中某个或多个关键指标发生异常时运维人员需要快速准确定位到异常根因以便决定下一步的操作。但是当指标数量很多时筛选信息的工作量也会很庞大因此我们需要一个高效的工具去解决这个问题。
我们知道某些数据库指标之间是存在强关联性的通过有方向性的关联性算法在异常发生时将同一时间段的指标进行比对根据相关性的强弱将异常时间段内与关键指标相关的指标筛选出来。GaussDB当前支持毛刺、持续增长、漂移、周期性等场景的检测算法可以帮助运维人员迅速定位问题减轻运维人员的工作量助其锁定问题的根因。
4. 趋势预测
在日常系统运维及故障处置实践中负载的变化往往也蕴含着当前系统的亚健康及故障的影响反馈基于传统的组件指标监控和告警在故障异常发现的及时性上具有挑战。GaussDB通过建立对实例级关键指标的监控基于历史数据和时序预测、异常检测等关键算法对黄金KPI进行指标预测发现异常信息进而提醒用户采取措施避免异常情况造成严重后果。
5. 索引推荐
应用开发者在对SQL进行优化的过程中索引优化是关键的优化内容但由于其在性能分析、优化手段等多方面存在复杂分析和实践门槛给SQL优化带来了挑战。
索引推荐的核心方法是基于原生的词法和语法解析对查询语句中的字句和谓词进行分析和处理再结合字段选择度、聚合条件、多表join关系等输出最优的索引建议。GaussDB 提供索引推荐功能给出索引推荐列表以及每一个索引的正向和负向SQL的收益识别当前数据库存在的冗余索引、无用索引优化数据库查询速度。GaussDB还提供了优化器评估能力它提供了一个虚拟索引的能力不需要真实创建索引通过虚拟索引评估索引推荐的结果是不是合适通过持续对索引配置进行优化可以解决用户的负载漂移情况及时发现索引不优、冗余索引以便避免故障发生。
6. SQL会话查杀
应用开发的复杂逻辑可能导致人工难以发现的逻辑问题出现异常SQL需要有对应手段帮助运维人员快速对异常会话进行查杀限制。GaussDB应用平台提供了一个会话管理的能力实时会话页面支持会话统计、活跃会话、会话锁分析、会话查杀等功能帮助运维和管理人员快速掌握实例的会话信息管理实例会话并高效定位数据库会话连接相关人工难以发现的逻辑问题。
7. SQL限流和自治限流
我们可以想象一个场景在数据库正常运行过程中某一个应用上线了一个新功能这个新功能引入了一个超级烂SQL导致数据库逐渐从正常对外服务状态转为资源使用逐渐升高大量的SQL因为获取不到线程、CPU等资源而执行的速度变慢最终导致业务异常。如果遇到异常SQL(如不优索引)、SQL并发上升等场景会对整个数据库的可服务性影响比较大这时我们就可以通过对SQL精准化限流的方式进行抑制保证业务能够正常运行。
GaussDB提供的SQL限流提供了以下能力 全局快慢车道。所谓全局快慢车道就是定义两个资源池一个是正常资源池我们称为快车道快车道提供大量的资源正常业务在快车道运行如果出现交通事故这里的交通事故就是指异常的SQL业务我们可以通过页面一键将异常SQL放到慢车道中慢车道限制了对资源的使用这样交通事故处理完了快车道可以继续保持高速运行。 单类SQL精准管控。对于单类SQL需要从执行时间、IO使用等角度进行精准管控因为管控这类SQL的资源占用可以起到紧急限流的效果。 内存熔断。提供内存上下限配置内存使用超过最大内存上限后禁止新连接接入并kill当前会话待内存恢复到内存下限后停止kill会话并允许新连接接入。 SQL自治限流。提供按照一定的SQL规则或者CPU、内存等资源使用规则来进行SQL的自治限流能力避免对应类别的SQL拖慢整个数据库。 今天我分享的内容主要到这里谢谢大家