Contents
  1. 1. 对DBA的一些思考
    1. 1.1. DBA的认知
    2. 1.2. DBA的价值
      1. 1.2.1. 一、稳定
      2. 1.2.2. 二、性能
        1. 1.2.2.1. 2.1 高性能
        2. 1.2.2.2. 2.2 高扩展
      3. 1.2.3. 三、服务
        1. 1.2.3.1. 3.1 如何让老板幸福
        2. 1.2.3.2. 3.2 如何让开发幸福
        3. 1.2.3.3. 3.3 如何让自己幸福
    3. 1.3. DBA的未来
      1. 1.3.1. 危机感
      2. 1.3.2. 拨开云雾

对DBA的一些思考

DBA的认知?
DBA的价值?
DBA的未来?

依稀记得从去年的某个时候,就开始思考这几个问题了。
当时,咨询过业界的一些大牛,也和身边的一些DBA讨论过,
可是一直都没有得到我想要的答案。今年国庆的7天oncall,突然有了些灵感,故写下来作为我今后的守则。

DBA的认知


DBA 是什么? 我想这个问题大家一定不陌生。

回答:

  • DBA: Doctor of Business Administration 工商管理博士
1
呵呵~~
  • DBA: DataBase Administrator 数据库管理员
1
应该都是这么认为的吧。不过,传统DBA大部分都是这样的角色。
  • DBA:DataBase Architect 数据库架构师
1
区别不用多说了吧。你想成为什么样的人,完全取决于你的态度和认知。

DBA的价值


DBA的职责和工作内容
DBA的核心价值

DBA的工作内容&内心读白:

1
2
开发: DBA整天都在做啥?除了执行下SQL,其他也没啥事吧 ~~~
DBA: 一天到晚忙死了,但是也不知道忙了个啥,整天就在擦屁股,救火 ~~~

回答以上问题,往下看…

为什么会有DBA这个职位呢?

DBA的核心价值又是什么呢?

换位思考下,如果把自己当做是公司的老板,你会怎么考虑这个问题,想想其实很简单了。

首先:我不希望数据库挂掉,应该要 365 7 24 对外提供服务。
其次:我希望它很快,很快,很快。
最后:幸福感

最后也不难总结了

1
核心价值: 稳定,性能,服务,让DB变得更简单

一、稳定

可靠性: 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
  • 高效:快速修复,急中生智
1
2
* 数据恢复
* 监控+自动化修复

二、性能

高性能,可扩展

2.1 高性能

  • MySQL + NoSQL
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)
  • slow query
1
2
3
4
5
1. 为什么会有slow?
2. 哪些slow 值得优化?
3. 怎么优化?
4. 如何彻底避免类似SQL再次出现?SQL最佳实践?
5. 如何主动积极的去消除slow?

2.2 高扩展

  • scale up
1
* 如何快速提升主机的处理能力?
  • scale out
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么?

拨开云雾

  • 核心竞争力
1
2
3
* 云的缺点是什么
* 核心价值
* 职业规划

总结:如果以上都能完成80%左右,DBA的幸福感会非常高,也是优秀DBA的一个衡量标准。
但是要到到这些,中间会完成很多知识点的学习,原理的理解,多年经验的积累,才能打通任督二脉。
之后,会整理出打怪升级的DBA相关技能表,在此之前可以先修炼下这个绝世武功:http://www.xaprb.com/blog/2015/08/08/innodb-book-outline/

Contents
  1. 1. 对DBA的一些思考
    1. 1.1. DBA的认知
    2. 1.2. DBA的价值
      1. 1.2.1. 一、稳定
      2. 1.2.2. 二、性能
        1. 1.2.2.1. 2.1 高性能
        2. 1.2.2.2. 2.2 高扩展
      3. 1.2.3. 三、服务
        1. 1.2.3.1. 3.1 如何让老板幸福
        2. 1.2.3.2. 3.2 如何让开发幸福
        3. 1.2.3.3. 3.3 如何让自己幸福
    3. 1.3. DBA的未来
      1. 1.3.1. 危机感
      2. 1.3.2. 拨开云雾

幸福,不在于得到的多

而在于计较的少