DBA很多事情,重复劳动,容易出错,手工操作效率低
总结一下我们在为DEV、QA做什么
1. 读数据
2. 数据表结构修改
3. 写数据
4. 数据库运行状况查看
DEV、QA关于数据、数据库的一切
1. 读数据
2. 数据表结构修改
3. 写数据
4. 数据库运行状况查看
数据查询工具定制
定制开发:phpMyAdmin、phpRedisAdmin、phpHbaseAdmin、RockMongo
doing:统一数据查询平台 DataQ ,支持MySQL、Redis、Memcache、Hbase、
MongoDB等等
我们做了什么
• 权限控制
• 问题查询拦截
• 特殊数据查询支持(cobar的引入等)
• 查询审计
• 数据安全防护
每天为开发、NOC节省1500多次查询的沟通成本
数据自助导出
• SQL倒出
• 整库整表倒出
• 特殊类型数据导出(数据加密、解密)
数据自助导出
每天为DBA节省十几次的数据下载需求
数据字典
数据字典
DEV、QA关于数据、数据库的一切
1. 读数据
2. 数据表结构修改
3. 写数据
4. 数据库运行状况查看
DDL发布为什么这么累
-> DEV设计
-> 邮件到DBA review
-> N轮为什么这样,怎么不那样(这个DBA就是个傻x,这个DEV就是个傻x)
-> DBA邮件确认审批通过
-> DEV转发到QA发测试
-> DEV邮件到DBA发回归
-> DEV在变更管理系统建单到DBA发预发布/生产
-> DBA找N个人审批
-> DBA上生产执行发布生产
他累我也累!!!
理想的DDL应该怎么发布
-> DEV设计
-> DEV自助review
-> 系统自动发布测试
-> DEV自助提起发布生产
-> 系统自动发布生产
提交到测试环境,自动检测
为烂DDL量身定制20多条检测规则
1. 必须使用InnoDB存储引擎
2. 一定要设置bigint无符号(unsigned)自增主键
3. 不要使用char,用varchar代替
4. 避免使用tinytext、text
5. 不要使用tinyblob、blob、mediumblob、longblob等二进制lob类型
6. 太长的varchar
7. int(1)和int(100)的区别
8. 怎样存储日期和时间呢?
9. 所有的表、字段都必须有注释
等等等
自动发布测试环境
每天为QA、DBA执行上百到几百的测试环境发布,几百
到几千次测试环境发布任务
提交生产,自动生成执行任务(推广中)
每天为DBA节省十几次ddl发布生成的沟通成本
以及十几次发布生成的ccs创建时间
新建库,资源申请
每天为DBA节省几次到十几次的资源申请需求
一共处理了531次资源申请需求
DEV、QA关于数据、数据库的一切
1. 读数据
2. 数据表结构修改
3. 写数据
4. 数据库运行状况查看
DBA怎么做DML
-> 执行评估
-> 备份数据
-> 执行变更内容
-> 查看执行中有无报错
让工具像DBA一样DML(开发、推广中)
-> 根据explain,count(*)自动评估执行影响范围
-> 自动备份数据,任务依赖,备份不成功不进入下一步
-> 执行变更内容
-> 记录并检验执行日志
-> 随时准备着回滚,一键回滚支持
DML应该怎么发布
每天为DBA节省十几次dml发布生成的沟通成本
以及十几次发布生成的ccs创建时间
DEV、QA关于数据、数据库的一切
1. 读数据
2. 数据表结构修改
3. 写数据
4. 数据库运行状况查看
运行状态,DEV想看什么?
• 慢查询
• 系统负载
• 系统容量
慢查询自助服务
查看慢查询报告
慢查询趋势分析
慢查询自助诊断
Dashboard:数据库当前状况
Dashboard:单个业务的当前运行状况
容量报告:对比历史、预测未来

自助工具助Dba提升效率