SQL审核的迭代设计方案

作者: admin 分类: 公众号存档            0 次浏览 发布时间: 2018-08-16 18:09

公众号:杨建荣的学习笔记 · 作者:杨建荣 · 发布:2018-08-16 18:09:09 · 原文链接

SQL审核对于提高DBA工作的幸福度有重大的意义,同样也对开发同学有很大的帮助,至少他们能够看到DBA体现出的直接价值,这种价值不是通过口头或者苦劳,而是通过一种类似知识库的方式体现出来。 

SQL审核项目初步做了一些测试,也总结了一些工具的特点,然后在这个基础上就可以做一些定制工作了。

1.提示信息定制。

2.部署方式,采用agent的方式部署,数据库用户可以根据测试情况(只读用户)来决定是否需要统一创建

3.是否安排在slave端测试

4.定制SQL审核逻辑

5.线上环境对接和测试

6.通用查询的对接

7.自动化上线的集成和对接

1.提示信息定制

目前主要侧重于Inception的提示信息定制

2.部署方式

采用agent的方式部署,数据库用户可以根据测试情况(只读用户)来决定是否需要统一创建,目前只使用check模式

目前测试在测试环境中指定的测试实例,后续可以逐步扩大到1-2台服务器,3-4个实例

3.是否安排在slave端测试

需要提前配置数据库用户,确保slave端可测试

需要重点关注主从的延迟情况

测试3-4套主从环境

4.定制SQL审核逻辑

删除已有的不需要的审核逻辑

目前暂定为 字符集utf8mb4的逻辑可以改动

修改已有的审核逻辑

主要方向是truncate和drop操作,直接禁用

添加部分审核逻辑

主要对于alter操作的审核

5.线上环境对接和测试

对于表是否存在的判断和校验,需要开发对应的接口,直接在后端逻辑中通过调用接口判断。

在表存在的前提下,对于SQL审核的逻辑可以根据如上的定制逻辑来提示

在内部迭代测试初步成效的前提下,可以推广到平台系统中,需要对接开发相应的接口。

6.通用查询的对接

1)通用查询使用SQL Advisor的接口定制完成。

2)对于数据查询结果集的发送,需要使用对应的接口或者统一的共享存储/ftp的方式来对接。 

3)通用查询优先考虑使用slave

7.自动化上线的集成和对接

SQL自动化上线预期使用PT工具来完成在线的结构变更(alter操作)。

对于数据的备份根据数据量采用对应的策略:

1)数据量较小,可以创建一个临时库来存储

2)数据量较大,需要使用mysqldump来备份,数据推送到备份机中

3)数据量大,需要做性能改进,比如变更时临时调整数据库参数,是否需要拆解数据集,预计操作时间和锁的细节。

对于复杂需求,需要通过人工审核来完成,需要逐步完善对应的规则配置。

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注