混合云数据库RDS MySQL自治管理
本实践介绍了通过云数据库RDS的CloudDBA的功能完成对云数据库RDS的数据自治管理。
前提条件
本实践适用于云数据库RDS,基于企业版V3.15及以上版本。
使用场景
混合云数据库RDS MySQL自治管理功能,数据库自治服务DAS提供RDS MySQL自治中心功能,DAS会对核心指标进行异常检测,如发现异常会自动进行会话诊断、SQL诊断、容量诊断,确认造成异常的原因,并给出优化或止损的建议,并且在用户授权的情况下,自动进行优化或止损操作。
实践步骤
-
数据库平台准备工作。
-
登录Apsara Uni-manager运营控制台,在顶部菜单栏,选择 产品 > 数据库 > 云数据库 RDS 。
-
进入云数据库 RDS页面,单击 创建实例 ,创建RDS实例,数据库类型选择 MySQL 。
-
在左侧导航栏,单击 CloudDBA ,找到对应下拉功能项。
-
-
一键诊断功能使用。
-
单击 一键诊断 ,展示当前资源使用率、数据库信息。
-
单击 发起诊断 ,可选择自定义时间段对于页面中各指标的诊断。再单击 查看历史 ,可对诊断信息进行查阅。
注意慢SQL的默认时长为2s,当某SQL语句或事务执行时长超过该值会产生慢日志。自治功能开关开启时,当CPU使用率大于70%,活跃会话数大于16,持续时间大于2分钟可触发自动限流最低标准。
-
单击 会话管理 ,有会话统计功能可查看活跃会话,并可选择会话进行结束。
还可以对会话SQL进行自动分析。
-
单击 实时性能 ,可对慢查询、TPS、QPS、连接数、DML执行次数等参数进行实时的性能监控,并以实时图标和实时表格的形式展示出来。
-
单击 空间分析 ,可查看库表空间概况、异常列表、空间变化趋势、表空间等情况。
-
单击 锁分析 ,可诊断指定时间的锁的具体情况。
模拟死锁过程:
客户端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会为对一个客户产生错误信息并释放锁。返回给客户的信息:
所以,另一个客户可以正常执行任务。死锁结束。
-
-
性能趋势功能使用。
-
单击 性能趋势 ,可以用图表形式展示自定义时间内该实例各个指标情况。
-
单击 性能趋势对比查看 ,可以查看指定两个日期同一时间段的性能指标情况。
-
慢SQL功能使用。
-
模拟产生慢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。
-
单击 慢SQL ,慢日志趋势可以图表的形式查看指定时间的慢日志数量,CPU使用情况,慢日志统计可查看SQL的详情和执行情况,并可以对SQL进行诊断优化。慢日志明细可以指定数据库查看慢SQL详情,并导出指定慢日志。
-
-
诊断报告功能使用。
-
单击 诊断报告>自动生成报告设置 ,可设置指定时间段自动生成报告。
-
选择指定时间段,单击 发起诊断 ,生成诊断报告,报告包括开始、结束、生成报告时间和诊断分数和状态。
查看报告,包含健康状况、会话列表、慢SQL、表空间、死锁、性能趋势等指标,且支持诊断报告下载。
-
-
- 本页导读