By
兰春
Updated:
对DBA的一些思考
DBA的认知?
DBA的价值?
DBA的未来?
依稀记得从去年的某个时候,就开始思考这几个问题了。
当时,咨询过业界的一些大牛,也和身边的一些DBA讨论过,
可是一直都没有得到我想要的答案。今年国庆的7天oncall,突然有了些灵感,故写下来作为我今后的守则。
DBA的认知
DBA 是什么? 我想这个问题大家一定不陌生。
回答:
- DBA: Doctor of Business Administration 工商管理博士
- DBA: DataBase Administrator 数据库管理员
1
| 应该都是这么认为的吧。不过,传统DBA大部分都是这样的角色。
|
- DBA:DataBase Architect 数据库架构师
1
| 区别不用多说了吧。你想成为什么样的人,完全取决于你的态度和认知。
|
DBA的价值
DBA的职责和工作内容
DBA的核心价值
DBA的工作内容&内心读白:
1 2
| 开发: DBA整天都在做啥?除了执行下SQL,其他也没啥事吧 ~~~ DBA: 一天到晚忙死了,但是也不知道忙了个啥,整天就在擦屁股,救火 ~~~
|
回答以上问题,往下看…
为什么会有DBA这个职位呢?
DBA的核心价值又是什么呢?
换位思考下,如果把自己当做是公司的老板,你会怎么考虑这个问题,想想其实很简单了。
首先:我不希望数据库挂掉,应该要 365 7 24 对外提供服务。
其次:我希望它很快,很快,很快。
最后:幸福感
最后也不难总结了
一、稳定
可靠性: 99.999% 提供服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| * 哪里可能会有问题: 监控 1. 压力分析系统:对每台服务器做到胸有成足,了解自己的服务器负载。 a)今天和过去(近1天,1周)对比,压力(qps,util,iowait)趋势(高了/低了/异常了)如何? b)异常的性能趋势,必须报警出来。 2. DBMO 3. slow * 具体分析点:point 1. slow 分析系统 2. SQL 智能分析 3. My-Redis 缓存失效分析 4. SQL 误操作预防,show processlist 分析 5. TMC 分析&预防 6. disk 自动化分析 7. util 分析 8. load 分析 9. swap 分析 10. slave 延迟 11. Replication error: 1048,1062... 12. 如何监控‘我们的监控系统’ 13. DDL & SQL 预审核 14. 测试(基准测试 + 压力测试)
|
1 2 3 4 5 6 7 8
| * HA 1. MHA 2. MHA + GTID * 集群 1. Percona XtraDB Cluster 2. MariaDB Galera Cluster
|
二、性能
高性能,可扩展
2.1 高性能
1 2 3 4 5 6 7
| * 缓存为王,用好NoSQL,来弥补MySQL的不足 * 数据架构方案的选择,会导致不同的性能表现 1. MySQL + Hbase 2. MySQL + Redis 3. MySQL + MongoDB 以上,what,why,how,how good 四维分析 * 日志分析和管理(general log,slow log,tcpdump log,binlog)
|
1 2 3 4 5
| 1. 为什么会有slow? 2. 哪些slow 值得优化? 3. 怎么优化? 4. 如何彻底避免类似SQL再次出现?SQL最佳实践? 5. 如何主动积极的去消除slow?
|
2.2 高扩展
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 1. 查询迁移 * 如何干净,快速的切换query? DNS? LVS? VIP? 2. 写入迁移 * 目前还没有办法做到? 3. 水平拆分 * 分库分表 * 中间件 4. 垂直拆分 * 如何快速拆分库 a)如何快速迁移一个库的query * 如何快速拆分表 b)如何快速迁移一个表的query 5. 数据库升级 * 如何快速,安全,优雅的升级
|
三、服务
对内服务
对外服务
3.1 如何让老板幸福
- 赚钱 — 保障网站稳定,快速的运行就是赚钱
- 省钱 — 合理的资源分配,垃圾数据清理
3.2 如何让开发幸福
1 2 3 4 5 6 7 8 9 10
| 相关服务: * DDL --大表很痛苦,沟通成本 * 库表的拆分&迁移 -- SQL无法快速迁移 * 实例的迁移 -- SQL无法快速迁移 * 数据归档 -- 性能和容量 * slow sql推进 -- 缓慢 * 数据误操作的预防 -- 难 * 恢复 -- 速度 * 开发对SQL的认知
|
3.3 如何让自己幸福
- 自动化一切,Make DBA’s life easy
1 2 3 4 5 6 7 8 9 10 11 12 13
| 规范化 --> 流程化 --> 自动化 --> 平台化 --> 云服务化 , 这是趋势。 * DB服务器自动化初始 * MySQL 一键安装 * DBRT自动审核系统 * 自动化备份系统 * 自动化归档系统 * 自动化扩容 * 自动化索引创建和优化 * 自动化容量评估系统 * 数据库一键迁移 * percona-tools 自动化工具 等等
|
1 2 3
| * 监: 健康,性能检查,报表化分析 * 控: 智能修复故障,DBA不用半夜苦逼的爬起来。
|
1 2 3
| * 备份,备份,备份 * 有效的备份,有效的备份,有效的备份 重要的事情说三遍
|
DBA的未来
危机感
1 2 3 4 5 6
| * 云数据库能做什么? * 优势有哪些? * 云DBA 可以做哪些事情? * 为什么会有云DBA? * 云DBA的现状? * 未来企业中还会有DBA么?
|
拨开云雾
总结:如果以上都能完成80%左右,DBA的幸福感会非常高,也是优秀DBA的一个衡量标准。
但是要到到这些,中间会完成很多知识点的学习,原理的理解,多年经验的积累,才能打通任督二脉。
之后,会整理出打怪升级的DBA相关技能表,在此之前可以先修炼下这个绝世武功:http://www.xaprb.com/blog/2015/08/08/innodb-book-outline/