开发者学堂课程【企业运维训练营之数据库原理与实践课程 :视频-数据库 DAS 简介和备份上云方案(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1201/detail/18303
视频-数据库 DAS 简介和备份上云方案
内容介绍:
一:DAS 的介绍
二:SQL 自动限流
三:SQL 自动优化
四:空间碎片自动优化
五:DAS 三大自动功能演示
六:数据上云
七:DTS 是如何进行数据迁移
接下来就开始今天的内容。首先非常欢迎大家在星期三的晚上参加我们的企业运维训练营之数据库原理与实践课程。今天我们进行第五讲的内容数据库 DAS 简介和备份上云方案。上周周二、周三、周四由我和其他两位同事也给大家带来了前三讲的内容,主要包括 r 数据库, RDS 的一个基本架构,阿里SQL,以及d、m、 s 的主要内容。这周我的同事在昨天也给大家简要的介绍了一些常用的问题的定位方法,也涉及到部分 DAS 的一个知识。今天由我继续给大家进行 DAS 的其他的一些功能的介绍。第二部分主要的内容是一个数据上云备份上云的方案。首先进行简单自我介绍,可能新同学不认识我,我的花名叫魁星,来自于阿里云全球技术服务部 AES 专家服务团队的数据库组。非常高兴今天和大家进行数据库的交流。本次第五讲的课程目标主要是两个方面,第一个是让大家了解 DAS 产品的相关原理和功能,第二个是了解 DTS 的产品功能和备份上线方案。我们两个目录主要是两大块内容。首先我们就进入第一部分的介绍。
一:DAS 的介绍
第一部分是关于 DAS 的介绍。数据库自制服务。它的全称叫 database autonomy service,即数据库自制服务。数据库自制服务是基于一种机器学习和专家经验,实现数据库自感知、自修复、自优化、自运维以及自安全的云服务。它的目标是帮助用户消除数据库管理复杂性及人工操作引发的一些故障,有效保障数据库服务的稳定、高效和安全。
该服务已经在我们阿里集团上线有 3 年多,有自动优化,有 4200 万家的 SQL 回收了 4PB 的空间,自动优化将近 27 TB 的内存,为我们的用户的数据库治理其实做出了非常大的贡献。所以他在线上现在已经是发展也比较成熟,而想推广到更多的用户对他进行使用。
DAS 的核心产品理念有这么几部分,一是数据驱动机器学习加专家经验诊断流程闭环,主动和持续进行全局优化和规模优化。 DAS 主要是基于机器学习和细粒度的监控数据,实现我们提升 24 小时的异常监测,提供了注入自动 SQL 限流、异常快照、自动 SQL view 和优化存储空间自动扩展、计算资源自动扩展等功能。
本讲因为时间关系,我们挑选三大块内容,接下来第一个是自动 SQL 限流,第二个是自动 SQL 优化,第三个是空间碎片的自动回收等。它通过从异常发现、根因分析进行止损和优化,实现诊断流程的闭环。DAS 实现了无人工参与的自制场景支持是数据库自制服务。系统自身具备不断构建自学习能力。比如我们的一些异常的自动标注案例,系统设置、异常模拟,量化反馈评估等。依托线上的业务场景的丰富性,积累,沉淀了大量的案例,用这些案例作为驱动,加速自我进化,不断的提升自制的有效性。
第一个是我们刚才提及产品理念,里面有数据驱动,这个数据驱动是通过海量实时的数据收集,比如有一些性能指标,一些负载收购的请求日志,还有一些运维的变更日志等。在此基础上,构建一个探测能力,具备环境态势的实时感知,异常实时发现的一个能力。第二块是自我决策的能力,是通过机器学习和数据库领域专家多年的经验的深度融合,用 DAS 做业务场景做出决策。第三是自动执行的能力,根据自治中心决策,自动进行任务编排,自动进行执行决策。主要是提供一个能力。接下来我们就讲解 DAS 里三大块内容。
二:SQL 自动限流
第一是 SQL 自动限流。在平常的线上的应用过程中,比如有一些应用发布后会产生一些烂SQL,或者是应用流量突增的情况,数据库会不断的 q 会话,但是当重启数据库或者 q 会话,或者是进行准备切换这些常用的运营方案都没有办法让数据库恢复到稳定的状态的场景下, DAS 的一个自动 SQL 限流功能,就可以快速的帮助我们发现数据库的异常,并且自动找到限流的SQL,把数据库恢复到一个正常的状态下。
一般的情况下,自动限流主要应用于下面三个场景。第一是流量问题,当出现缓存穿透或者是异常调用的情况,导致某类 SQL 的并发量急剧上升,是在短时间内急剧上升。这样一个流量问题,适合于用自动社会限流。第二个是数据问题,比如存在大量订单数据的账号,在该账号下相关 SQL 占用了大量的数据库资源的场景。第三个场景是 SQL 问题,未创建索引的 SQL 被大量调用,影响了正常的业务。
在图上我们可以看到还有几个模块的流程。第一个是异常检测模块。这个模块是通过机学习对实例历史性能数据进行一个离线训练获得的模型。对这个模型进行这些指标数据进行异常监测,会形成 24 小时的异常监测,能够非常及时的发现数据库的一些异常。根据这些异常,会进行根因分析,根因分析模块会订阅实例的一个异常事件,并采集出异常时的一些会话信息。结合 SQL 审计中的全量 SQL,还有 Mysql 中的 performance schema 中的一些统计信息来进行判断定位实例的异常原因。
这些异常通常分为如下几种,第一种是阻塞性 SQL,第二种是资源消耗型SQL,烂 SQL 可能并发量不大,但是会消耗大量的 IO 网络资源这类SQL。第三个是流量型 SQL,可以触发数据库瓶颈,导致 KV 类查询 SQL 的响应时间都出现异常。这是根因分析会分析这类这几类SQL。
接下来是特征提取模块。当发现存在需要限流的异常SQL,就会对这些 SQL 的特征进行精确的限流,防止因特征提取错误导致的业务的全面受损。在理想的情况下,这些 SQL 的特征是唯一的,只对识别到的异常 SQL 进行限流,而不影响其他的 SQL。这是特征提取,最后会触发自动限流。当发现实例有刚才的一些原因中的消耗型资源 SQL 或者是流量型 SQL 时, DAS 会自动提取特征,根据我们的配置对 SQL 进行限流。接下来比如自动优化,跟踪和回滚。比如根因分析模块发现存在可以优化的异常 SQL 时,除发起应急的处理外,还会将异常 SQL 发到自动优化模块,而自动创建索引进行优化。
自动限流,在我们 DAS 的一个自治中心会话管理页面,我们可以对它进行开关操作,来达到限流的目的。等下我会进行创建的演示,在把三个大块主要的内容都讲完。限流,它会将发现我们即使有一些烂 SQL 的流量问题,它会进行自动的判断,也对它进行相应的处理。
这里我可以给大家观看我们演示的视频,关于 SQL 自动限流的。
视频内容:大量全标扫描重开始,数据库正常运行。 22: 56 活跃绘画突然飙升到 100 以上,大量全标扫描的 SQL 不断被提交到数据库中。采用 q 操作无法解决,流量基本上跌0,也就是企业的业务已经处于不可服务的状态。 DAS 通过 7* 二十四小时的异常检测技术,迅速定位到该异常,并自动进行根因分析,定位到该异常SQL, 自动触发了限流操作,限制,包含上述关键字的 SQL 允许执行的最大并发唯一,二十二点五十九分业务恢复正常。数据库自治服务。DAS 为您提供自感知、自修复、自优化、自安全的数据库服务,保障您的业务持续可用,因治而治。 DAS 邀您进入数据库自动驾驶时代。
刚才播放的一个视频为大家介绍了测试环境下, DAS 的自动 SQL 限流是如何工作的。
三:SQL 自动优化
接下来我们讲第二块内容是 SQL 自动优化。 DAS 是支持 SQL 诊断功能的,用户可以根据 SQL 诊断或得到索引优化的建议,对实例中的一些表进行索引的创建,也可以在自治中心中打开创建索引的开关,DAS 将会自动为您进行 SQL 诊断和创建索引。稍后也会跟 SQL 限流还有自动优化还有空间碎片一起给大家演示。
自动创建索引是DAS 自动收购优化中其中的功能的一种。它的原理是 Mysql 内核原生支持的 online DDL,之前也提到 online DDL,所以 online DDL 是不会像普通加索引发索表的,所以不需要我们的用户来进行担心。
下图我们可以看到,如果有大量的 SQL 被 Mysql 被检测到,它会在这个页面会给大家展示出具体的问题和创建的索引。需要创建的索引在某一个时段下为您自动的添加索引以后,它性能就会得到相应的提升。