FAQ系列 | MySQL DBA修炼秘籍

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: FAQ系列 | MySQL DBA修炼秘籍

0、导读

本文主要写给那些立志成为MySQL DBA,以及正在学习MySQL的同行们,结合个人及业内其他同行的职业发展经历给大家一些参考,如何成为合格的MySQL DBA。

1、什么是MySQL DBA

首先,DBA是database administrator(数据库管理员)的简称,在一些招聘网站上,也可能会把职位写成数据库[管理]工程师,MySQL DBA是目前互联网企业中最为炙手可热的岗位需求之一,前(钱)景大好,快到碗里来吧。

下面是拉勾网的MySQL DBA招聘需求(若无“MySQL中文网水印”的二维码请勿打开):


2、MySQL DBA的职责

传统意义上的DBA基本上只要管好database system就可以,一般无需关注操作系统、硬件、网络、安全、NOSQL等相关技术细节,在一些传统企业或者操作集成商里的ORACLE DBA就是这样的,最多关注到主机(小机为主)及相应的存储设备。

而MySQL一般在互联网业务中使用,MySQL DBA需要关注的方面也相应更多了,主要就是上面提到的主机硬件、OS、网络、安全、NOSQL,以及一些MySQL运维自动化开发(这不奇怪,一个好平台,通常都要自己亲自开发才顺手)的工作。

此外,随着企业规模的变化,可能在公司初期是由一些比较资深的开发工程师负责所有服务器大小事宜,当然也包括MySQL的管理及优化。随着规模的扩大,可能改由运维工程师来负责这些事了。更进一步的话,就开始需要专职的MySQL DBA了,随着业务发展,形成DBA team,同时负责和数据及存储相关的事务,比如存储设备、NOSQL、日志存储&分析,甚至大数据平台。

在一线的大型互联网公司里,甚至还区分运维DBA开发DBADB架构师等不同岗位,为的就是能做到术业有专攻,让专业的人专注做专业的事

比较理想的MySQL DBA工作状态应该是这样的:

  • 例如MySQL实例安装、备份&恢复、SLAVE搭建、权限管理、DDL&DML变更上线等基础的工作,通过DB平台鼠标点点点即可完成,大概占用10%的时间;
  • 关键业务的SQL审核也可采用DB平台来完成,尤其是一些常规的SQL规范规则,DDL相对好办,DML可能需要进一步完善的评估,个别SQL再采用人工审核,平时经常和业务部门进行沟通,了解下阶段的业务目标,预估DB端可能需要承载的压力,大概占用20-30%的时间;
  • 通过监控系统来完成可用性及性能监控,发现异常时,再进行人工干预处理,一些容易引发性能问题的常见情景,也可以固化到自动化处理机制中,比如自动探测超过N秒的纯SELECT查询,避免这种慢SQL产生连锁反应,或者自动杀掉一些有SQL注入风险的请求,大概占用10%的时间;
  • 数据库主动优化,一个有丰富经验的DBA,看到数据库的一些现场情况时,一般即可预感到是否需要进一步深入优化工作。而SQL开发规范推送也很重要,可以在开发阶段让程序猿做好基本的SQL优化,这样上线后不会手忙脚乱,反复的出现一些低级SQL性能问题,大概占用20-30%的时间;
  • 其余的时间可以用来充电学习,以及圈内的交流扯淡了,扩展知识面。

3、如何成为MySQL DBA

事实上,MySQL DBA的入门并不难,但若想要成为高级、资深的DBA就有一定难度了。

如果是在校生,最起码要先把《数据库概论》那门课程给学一遍,其实如果是已经在职但对数据库还没什么概念的人,最好也要学习下这本书,对数据库基本概念有一定理解。

此外,最好还要对Linux有一定了解,现如今在互联网公司中,如果想从事和技术相关的岗位,你告诉面试官不懂Linux为何物的话,估计直接就被pass了。想学习Linux,可以买本《鸟哥linux私房菜》或者参加专业培训(花钱参加培训并不是什么丢人的事,关键是要找到一个靠谱的机构,靠谱的老师,学习效率会更高,知识也更为系统化,而自学毕竟要消耗更多时间,也可能比较零散,花钱买时间学会后,可以更快获得回报)。

有了基础概念后,可以再买一本MySQL相关的基础入门书籍,比如《MySQL必知必会》、《深入浅出MySQL》等,其实我更建议把MySQL官方手册中的关键章节完整看一遍(关注公众号imysql_wx,发送“章节”获得推荐),并结合里面的案例进行测试,或者自己用wordpress搭一个博客站,平时可以自己做些实践演练。

如果能专注把上面的内容学习完毕,我相信你已经可以成为一个合格的初级MySQL DBA了。接下来就是找到一个合适的工作机会(可以把简历给我,我根据情况可帮忙进行推荐),进行真正的实操,获得正式从业经验。

4、MySQL DBA如何提升

事实上,如果你已经获得了MySQL DBA工作机会之后,如何进行自我提升通常来说已经不需要我来说了,可以参考公司里的同事以及其他同行的提升发展道路模式。

通常来说,在这个阶段需要深入学习的是某些关键知识点,比如数据库原理、并发事务、锁控制、存储引擎、主机硬件优化等知识。有些不错的书可以推荐,比如:《高性能MySQL》、《数据库系统实现/概念》、《数据库与事务处理》、《数据库索引设计与优化》等等。

5、后记

后记一

从目前的行业情况来看,MySQL DBA还是个很热门的职位,现在加入还不算晚。除了自学成才外,还可以考虑参加我和吴炳锡合作的“知数堂MySQL DBA实战优化”培训课程,截止目前已经举办了六期两百多名同学,个别优秀学员成功加入支付宝、京东、去哪儿、畅游、美菜网、37游戏等各大互联网公司。

后记二

关于MySQL DBA求职面试的一些关键知识点,可以查看我的这篇历史分享:MySQL DBA面试全揭秘。扫描二维码直达(若无“MySQL中文网水印”的二维码请勿打开):

此外,也可以关注公众号imysql_wx,发送“新手”获得学习资料推荐。

后记三

此前有朋友让我推荐一些MySQL相关的技术资源,自己收藏吧:

  • 官方MySQL手册 http://t.cn/zR9VXxB ,一有不清楚问题我都会尝试先从手册里找到答案。
  • MySQL Planet聚合 http://t.cn/zWOqujX ,集合了几乎所有MySQL相关的技术站点
  • ORACLE MySQL官方 http://t.cn/Ry6IUzQ ,官方团队的blog,
  • MySQL Server团队 http://t.cn/R7vvhpw ,官方Server团队blog,比上面那个blog更实用,细节、技术型文章更多
  • Percona团队官方 http://t.cn/aWUo1W ,无需多说
  • MySQL Planet中文聚合 http://t.cn/Ry6IUz8 ,集合了不错的中文MySQL技术站点
  • 最后就是我自己的网站:http://imysql.com 哈哈哈
            </div>
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
JavaScript 前端开发
kettle从sftp下载多个文件并进行转换后输出
kettle从sftp下载多个文件并进行转换后输出
|
SQL 存储 运维
FAQ系列 | MySQL DBA修炼秘籍
FAQ系列 | MySQL DBA修炼秘籍
|
机器学习/深度学习 存储 SQL
[MySQL FAQ]系列 — 你所不知的table is full那些事
[MySQL FAQ]系列 — 你所不知的table is full那些事
110 0
|
3月前
|
语音技术
如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码
最好的中文TTS项目Bert-vits2更新了中文特化分支,但可能由于时间仓促,代码中存在不少的bug,作为普通用户,有的时候也想为自己喜欢的开源项目做一点点贡献,帮助作者修改一些简单的bug,那么该如何开始? 本次我们以Bert-vits2项目为例子,分享正确提交PR(Pull Requests)的方式。
|
10月前
|
Kubernetes Ubuntu Linux
安装k8s集群
1. 使用 kubeadm CentOS 7 安装 Kubernetes 准备环境 在开始之前,您需要准备以下环境: 一组至少包含两台物理机或虚拟机的计算机,并且它们之间可以相互通信。 每台计算机都应该运行一个支持 Kubernetes 的 Linux 操作系统,如 CentOS 7。 每台计算机都应该有一个静态 IP 地址,并且您需要为每台计算机选择一个主机名。 每台计算机上都需要安装 Docker。
191 0
|
9月前
|
存储 安全 网络安全
《内网安全攻防》DMZ访问控制策略(干货!)
《内网安全攻防》DMZ访问控制策略(干货!)
262 0
|
存储 Kubernetes 网络协议
k8s集群环境的搭建(二)
k8s集群环境的搭建
258 0
k8s集群环境的搭建(二)
|
数据可视化 应用服务中间件 nginx
Docker轻量级可视化工具Portainer的基本使用
Docker轻量级可视化工具Portainer的基本使用
180 0
Docker轻量级可视化工具Portainer的基本使用
|
canal Kubernetes 应用服务中间件
k8s集群环境的搭建(三)
k8s集群环境的搭建
449 0
k8s集群环境的搭建(三)
|
11月前
|
存储 弹性计算 容灾
《阿里云存储手册》—— 混合云备份HBR
《阿里云存储手册》—— 混合云备份HBR
343 0