设为首页 收藏本站
查看: 750|回复: 0

[经验分享] 公司招聘MySQL DBA,自己也面试了10个以上的2年MySQL DBA工作经验的朋友,谈谈自己的心得,欢迎大家指点。

[复制链接]

尚未签到

发表于 2016-10-17 08:46:23 | 显示全部楼层 |阅读模式
  公司招聘MySQL DBA,也面试了10个2年MySQL DBA工作经验的朋友,谈谈自己的心得,欢迎大家指点。
  各位可以先看下互联网公司的薪资待遇:http://blog.csdn.net/mchdba/article/details/22274351
  
  1  2年MySQL DBA经验
  其中许多有水分,一看到简历自我介绍,说公司项目的时候,会写上linux系统维护,mssql server项目,或者oracle data gard项目,一般如果有这些的话,工作在3年到4年的话,他的2年MySQL DBA管理经验,是有很大的水分的,结果很多人卡在基础知识这一环节之上,比如:
  (1)有的卡在复制原理之上
  (2)有的卡在binlog的日志格式的种类和分别
  (3)有的卡在innodb事务与日志的实现上。
  (4)有的卡在innodb与myisam的索引实现方式的理解上面。
  .........
  关于基础知识考查点,请参考我整理的基础面试点总结:http://blog.csdn.net/mchdba/article/details/13505701
  个人觉得如果有过真正的2年mysql专职dba经验,那么肯定会在mysql的基本原理上有所研究,因为很多问题都不得不让你去仔细研究各种细节,而自己研究过的细节肯定会记忆深刻,别人问起一定会说的头头是道,起码一些最基本的关键参数比如Seconds_Behind_Master为60这个值60的准确涵义。
  可以参考如下官方文档:
  http://docs.oracle.com/cd/E17952_01/refman-5.5-en/replication-administration-status.html
  

  2  对于简历中写有熟悉mysql高可用方案
  我一般先问他现在管理的数据库架构是什么,如果他只说出了主从,而没有说任何ha的方案,那么我就可以判断出他没有实际的ha经验。不过这时候也不能就是断定他不懂mysql高可用,也许是没有实际机会去使用,那么我就要问mmm以及mha以及mm+keepalived等的原理实现方式以及它们之间的优势和不足了。
  

  

  
  3  对于简历中写有批量MySQL 数据库服务器的管理经验
  这个如果他说有的话,我会先问他们现在实际线上的mysql数据库数量有多少,分多少个节点组,最后问这些节点组上面的slow log是如何组合在一起来统计分析的。如果这些他都答对了,那么我还有一问,就是现在手上有600台数据库,新来的机器,Mysql都安装好了,那么你如何在最快的时间里面把这600台mysql数据库的mysqld服务启动起来。这个重点在于最快的时间。


4  对于有丰富的SQL优化的经验
  首先问mysql中sql优化的思路,如果能准备说出来,ok,那么我就开始问explain的各种参数了,重点是select_type,type,possible_key, ref,rows,extra等参数的各种值的含义,如果他都回答正确了,那么我再问file sort的含义以及什么时候会出现这个分析结果,如果这里他也回答对了,那么我就准备问profile分析了,如果这里他也答对了,那么我就会再问一个问题,那是曾经tx问我的让我郁闷不已的问题,一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。


关于explain的各种参数,请参考:http://blog.csdn.net/mchdba/article/details/9190771


5  对于有丰富的数据库设计经验
这个对于数据库设计我真的没有太多的经验,我也就只能问问最基础的,mysql中varchar(60) 60是啥含义,int(30)中30是啥含义? 如果他都回答对了,那么我就问mysql中为什么要这么设计呢? 如果他还回答对了,我就继续问int(20)存储的数字的上限和下限是多少?




6 关于mysql参数优化的经验。
  首先问他它们线上mysql数据库是怎么安装的,如果说是rpm安装的,那么我就直接问调优参数了,如果是源码安装的,那么我就要问编译中的一些参数了,比如my.cnf以及存储引擎以及字符类型等等。然后从以下几个方面问起:
(1)mysql有哪些global内存参数,有哪些local内存参数。
(2)mysql的写入参数需要调整哪些?重要的几个写参数的几个值得含义以及适用场景,比如innodb_flush_log_at_trx_commit,sync_binlog等。
(3)读取的话,那几个全局的pool的值的设置,以及几个local的buffer的设置。
(4)还有就是著名的query cache了,以及query cache的适用场景了,这里有一个陷阱,就是高并发的情况下,比如双十一的时候,query cache开还是不开,开了怎么保证高并发,不开又有何别的考虑?


7 关于事物隔离级别。
这个最起码你得知道那4个隔离级别的名字吧,以及之间的区别,还有你当前自己数据库里面设置的是哪个级别吧。
关于事务隔离级别简单资料,请参考:http://blog.csdn.net/mchdba/article/details/12837427


8 关于熟悉mysql的锁机制。
那么gap锁,next-key锁,以及innodb的行锁是怎么实现的,以及myisam的锁是怎么实现的等。




9 关于熟悉mysql集群的。
我就问了ndbd的节点的启动先后顺序,再问配置参数中的内存配置几个重要的参数,再问sql节点中执行一个join表的select语句的实现流程是怎么走的?
关于mysql集群入门资料,请参考:
http://blog.csdn.net/mchdba/article/details/10544585
http://write.blog.csdn.net/postlist/1583151/all




10 关于有丰富的备份经验的
就问mysqldump中备份出来的sql,如果我想sql文件中,一行只有一个insert .... value()的话,怎么办?如果备份需要带上master的复制点信息怎么办?或者xtrabackup中如何做到实时在线备份的?以及xtrabackup是如何做到带上master的复制点的信息的? 当前xtrabackup做增量备份的时候有何缺陷?
关于replace以及insert的一些小细节,请参考:http://blog.csdn.net/mchdba/article/details/8647560
   

11 关于有丰富的线上恢复经验的
就问你现在线上数据量有多大,如果是100G,你用mysqldump出来要多久,然后mysql进去又要多久,如果互联网不允许延时的话,你又怎么做到恢复单张表的时候保证nagios不报警。如果有人说mysqldump出来1个小时就ok了,那么我就要问问他db服务器是啥配置了,如果他说mysql进去50分钟搞定了,那么我也要问问他db机器啥配置了,如果是普通的吊丝pc server,那么真实性,大家懂得。
然后如果你用xtrabackup备份要多久,恢复要多久,大家都知道copy-back这一步要很久,那么你有没有办法对这一块优化。




12, 线上监控mysql


比如内存,流量,事务数,slow 数等,一般目前比较流行的监控软件有cacti,nagios,zabbix等,监控实现,请参考;
Cacti监控mysql数据库服务器实现过程:http://blog.csdn.net/mchdba/article/details/27404109
Nagios服务器端安装部署详解:http://blog.csdn.net/mchdba/article/details/25654889

Cacti使用安装详解:http://blog.csdn.net/mchdba/article/details/27120605







.............

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287212-1-1.html 上篇帖子: 轻量级Mysql分库分表(Sharding)中间件——Kratos 下篇帖子: FreeMarker+MySql在插入语句时出现乱码的解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表