文档

混合云数据库RDS MySQL自治管理

更新时间:
一键部署

本实践介绍了通过云数据库RDS的CloudDBA的功能完成对云数据库RDS的数据自治管理。

前提条件

本实践适用于云数据库RDS,基于企业版V3.15及以上版本。

使用场景

混合云数据库RDS MySQL自治管理功能,数据库自治服务DAS提供RDS MySQL自治中心功能,DAS会对核心指标进行异常检测,如发现异常会自动进行会话诊断、SQL诊断、容量诊断,确认造成异常的原因,并给出优化或止损的建议,并且在用户授权的情况下,自动进行优化或止损操作。

实践步骤

  1. 数据库平台准备工作。

    1. 登录Apsara Uni-manager运营控制台,在顶部菜单栏,选择 产品 > 数据库 > 云数据库 RDS 1

    2. 进入云数据库 RDS页面,单击 创建实例 ,创建RDS实例,数据库类型选择 MySQL 1 1 1

    3. 在左侧导航栏,单击 CloudDBA ,找到对应下拉功能项。 2

  2. 一键诊断功能使用。

    1. 单击 一键诊断 ,展示当前资源使用率、数据库信息。 1

    2. 单击 发起诊断 ,可选择自定义时间段对于页面中各指标的诊断。再单击 查看历史 ,可对诊断信息进行查阅。

      注意

      慢SQL的默认时长为2s,当某SQL语句或事务执行时长超过该值会产生慢日志。自治功能开关开启时,当CPU使用率大于70%,活跃会话数大于16,持续时间大于2分钟可触发自动限流最低标准。

      4
    3. 单击 会话管理 ,有会话统计功能可查看活跃会话,并可选择会话进行结束。 1

      还可以对会话SQL进行自动分析。 6

    4. 单击 实时性能 ,可对慢查询、TPS、QPS、连接数、DML执行次数等参数进行实时的性能监控,并以实时图标和实时表格的形式展示出来。 1 8

    5. 单击 空间分析 ,可查看库表空间概况、异常列表、空间变化趋势、表空间等情况。 1 11

    6. 单击 锁分析 ,可诊断指定时间的锁的具体情况。

      模拟死锁过程:

      客户端A:

      CREATE TABLE t1 (i INT) ENGINE = InnoDB;

      INSERT INTO t1 (i) VALUES(1);

      START TRANSACTION;

      SELECT * FROM t1 WHERE i = 1 LOCK INSHARE MODE;

      首先,客户A创建一个表T,并向T中插入一条数据,客户A开始一个SELECT事务,所以拿着共享锁S。

      客户端B:

      START TRANSACTION;

      DELETE FROM t1 WHERE i = 1;

      然后,客户B开始一个新事务,新事务是DELETE表T中的唯一一条数据。

      删除操作需要互斥锁 (X),但是互斥锁X和共享锁S是不能相容的。所以删除事务被放到锁请求队列中,客户B阻塞。

      最后,客户A也想删除表T中的那条数据。

      客户端A:

      DELETE FROM t1 WHERE i = 1;

      死锁产生了!因为客户A需要锁X来删除行,而客户B拿着锁X并正在等待客户A释放锁S。看看客户A,B的状态:

      客户A: 拿着锁S,等待着客户B释放锁X。

      客户B: 拿着锁X,等待着客户A释放锁S。

      发生死锁后,InnoDB会为对一个客户产生错误信息并释放锁。返回给客户的信息:

      所以,另一个客户可以正常执行任务。死锁结束。 1

  3. 性能趋势功能使用。

    1. 单击 性能趋势 ,可以用图表形式展示自定义时间内该实例各个指标情况。 1

    2. 单击 性能趋势对比查看 ,可以查看指定两个日期同一时间段的性能指标情况。 1

    3. 慢SQL功能使用。

      1. 模拟产生慢SQL的方法,首先通过sysbench产生数据。

        sysbench --db-driver=mysql --mysql-host=localhost--mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=az--table_size=1000000 --tables=4--events=0 --time=600--threads=20 oltp_read_write prepare

        然后执行 select s1.id,s2.k,s3.c,s4.pad from sbtest1s1,sbtest2 s2,sbtest3 s3,sbtest4 s4 where s1.id=s2.id and s1.id=s3.id ands1.id=s4.id;

        系统默认查询返回时间大于2 s产生慢日志,执行该SQL后即会被认定为慢SQL。

      2. 单击 慢SQL ,慢日志趋势可以图表的形式查看指定时间的慢日志数量,CPU使用情况,慢日志统计可查看SQL的详情和执行情况,并可以对SQL进行诊断优化。慢日志明细可以指定数据库查看慢SQL详情,并导出指定慢日志。 1 16 17

    4. 诊断报告功能使用。

      1. 单击 诊断报告>自动生成报告设置 ,可设置指定时间段自动生成报告。 1

      2. 选择指定时间段,单击 发起诊断 ,生成诊断报告,报告包括开始、结束、生成报告时间和诊断分数和状态。 19

        查看报告,包含健康状况、会话列表、慢SQL、表空间、死锁、性能趋势等指标,且支持诊断报告下载。 20 21 22 23

  • 本页导读