当前位置:澳门贵宾厅 > www.vip8888.com > 也是您的故事www.vip8888.com,为想从事MySQL
也是您的故事www.vip8888.com,为想从事MySQL
2020-04-22

“天空中没有鸟的痕迹,但我们曾经飞过”

随着MySQL地位爆炸式的提升, MySQL DBA的市场缺口日益剧增,优秀的MySQL DBA正在成为各个互联网公司抢手的人才。然而,需求来了,问题也来了,如何快人一步提高自身技能,让自己在日益激烈的技术挑战中不断增值、脱颖而出?

印度 泰戈尔

今天,我们将锁定MySQL数据库,通过韩锋、虢国飞、杨奇龙、杨建荣、张青林、李辉、贺春暘、李季鹏等8位MySQL专家的经验之谈,为想从事MySQL DBA的同学们答疑解惑,指明一条修炼的路子。

谨以此文,献给真正热爱运维及技术的您

目录大纲

导读

认真读完本文,你可以了解到:

本文约5000字,需要您的15分钟,听一听我20年的故事。我只是中国万千运维及IT从业者中的一员,我的故事,也是您的故事。

一、选择篇

这是我前19年的职业轨迹,作为本文的索引。

1、MySQL的流行原因及从业前景

求学之路:我的 1997

2、MySQL DBA的薪资缘何普遍高于Oracle DBA

1997年,我从湖南考学进入北京科技大学。

3、个人如何完成Oracle向MySQL的转型?

1997年,这是一个百感交集的年份。

二、学习篇

1997年,香港回归。

1、从初级到高级的MySQL DBA学习路线及学习资料推荐

1997年,艾敬倾情献唱《我的1997》。

2、源码是否为高级MySQL DBA的必备技能?

1997年,高考题很偏门

3、MySQL不同分支的选择讨论

文科和理科都非常的偏门,基本没人敢去填报清华北大。

4、MySQL认证考试的含金量

往常及往后,在湖南,清华的提档线 620分或更多。

97年,在湖南,清华提档线583分,北大提档线545分,北航提档线575分左右。

全国高中数学奥林匹克竞赛,我拿了一个二等奖。但高考时,数学仅105分左右。

三、趋势篇

我当时报考了中国人民大学,未果。最后被调节到了北京科技大学的金属压力加工专业。后来才知道,师哥们一般都去钢厂。

1、随着功能的不断完善,MySQL还会是“小而美”的代表吗?

我不想去钢厂!当时谣传有人掉进了首钢的铁水锅炉

2、MySQL目前还缺乏哪方面的能力,是否足够成熟?

所以,我的奋斗从入学第一天就开始了

3、如何看待数据库中间层与数据库的关系?

想买一台 586,大约4000元,钱不够,于是同一个宿舍六个人凑钱。当时家里情况相对不错,我出1500元,其他同学每人500元。

4、传统运维逐步萎缩下,DBA应选择什么方向发展?

或许这是人生第一次众筹,还不小心当了大股东。当然咯,机时也更多些 :)

四、未来篇

2000年中,和隔壁郝同学合伙用 Visual Basic 5 开发了一个《如何学习 Visual Basic 5 》的软件。还卖出了不少拷贝给隔壁的中国地质大学。

1、数据库云化会对传统DBA带来什么样的冲击?

问题是,该软件需要多张软盘安装。而中关村的 Sony 盘,90%以上都可能假的。老有坏盘,后来不了了之。

2、如何看待分布式数据库的未来前景?

人生往往会混合着惊吓、惊喜和意外。

3、越来越多的DBA正在或将从事DevOps类工作,你的看法是?

2000年底,虽然沉迷于计算机,但也居然获得保研资格。

选择篇

这时有了大把的时间。闲着也是闲着,去考个认证吧。当时最火的是 MCSE,微软认证系统工程师。

Q1:你认为MySQL流行的主要原因是什么?从长远角度来看,从业前景如何?

考过这个证书的朋友,请默默抬起食指

1、流行原因

从来就没有偶然。这个小小的决定,其实也是前后呼应的。

虢国飞:综合来看,MySQL的流行是偶然中的必然。原因主要有以下三点:

2000年的时候,家里情况没那么好了。MCSE 要考6、7门,加上培训费,得几千块钱,于是大部分向隔壁宿同学借的。

免费:传统数据库昂贵的license费用是很多企业一块心病,MySQL社区版已经能满足大部分用户的需求,而且是免费的,自然在企业内部推广时不会遇到阻力;开源:开源的好处是只要你想,你可以深入到代码级别来了解数据库的运作原理,这个远胜于传统黑盒数据库只是简单输出一些log或者白皮书来让人猜测运作情况,开源能让DBA能知其然并知其所以然,而且开源社区还有丰富的工具,给DBA在维护上面提供了强大的支持。 DBA能在社区快速找到自己需求的东西,组合成自己的工具箱,所以社区工具的丰富也弥补了产品本身的缺陷;简便:这一点使得MySQL部署简单,新手学习门槛低、上手快,不要花费太大的精力就能快速搭建起一套高可用的集群来,而不像Oracle数据库那样,有很多配套东西需要了解,没有几年的学习很难掌握,对于新手来讲都会觉得挺难的,所以MySQL能在DBA群体中快速地普及。

辛苦考完了,短暂地喜悦之后,愁上心头。得还钱啊,怎么办呢?

2、就业前景

我直接“杀回”因特行,问:你们还需要讲师么?

李辉:目前来看,MySQL DBA的日子还是很滋润的,在可预见的3-5年内,MySQL在互联网行业的地位仍无法取代,对DBA的需求量仍然很大,特别是中高级DBA。但从长远角度来看,从业人员也要多涉猎其它关系型数据库以及NoSQL、Devops、云计算等技术,现代社会唯一不变的就是变化,不断学习、拥抱变化才能保证自己不被未来社会淘汰。

当时面试官一脸蒙圈地问:“我怎么好像记得你”。我赶紧搭话:“是啊,我刚学完”。然后,面试官就有些愕然了。居然被录用了,哈哈。

Q2:如何看待当前MySQL DBA的薪资普遍高于Oracle DBA的现象?如果想从事DBA,选哪个数据库更好?

我为什么敢于刚学完就去面试讲师呢?

1、MySQL DBA高工资的原因

也在于我一直有好为人师的一面。高中数学老师是肖老师,他对我非常宽容。往往一节课,他先上一半,讲解一种数学题的常规解法,然后把我喊上讲台,我一股脑给出其他五种解法。

杨建荣:因为是和Oracle来对比,可以分为几个方面来看:

当时认证培训实在太火,我又略有功底,于是展开了长达3年的兼职培训生涯。

首先物以稀为贵,MySQL DBA相对Oracle DBA来说要少一些,随着现在互联网行业的发展,这个需求还是会持续增长;第二还是物以稀为贵,任何工种,高级职位都是稀缺的,如果你能够成为行业内的20%的人,无论你是从事哪种数据库,都会混得还不错。第三还是物以稀为贵,什么事物的发展都有一个成熟度曲线,水涨船高之后,留在你手里的是真技能还是花拳绣腿,数据库的功能会越来越丰富,你的技能也要升级,不升级的话,用哪个数据库你都会很吃力。

有多火?一个女同学春风得意地拿着这 MCSE 证书,在签证官的大拇指加持下,潇潇洒洒直接移民加拿大。

杨奇龙:对于薪资高这点,我觉得要从两方面看:

曾经,我以为这辈子就是个讲师了。

MySQL DBA和Oracle DBA 的雇主行业不一样,MySQL DBA 多属于互联网等新兴企业,大多数是资本聚集,而Oracle DBA 则从事于传统或者部分大型企事业单位。两种企业的薪资平均水平本就有差距。从技能要求上,MySQL在功能上比Oracle “弱”或者说不完善,需要DBA具有更高的技术掌控能力做HA、备份、恢复、校验等。Oracle 则提供了比较完备的功能。

当讲师挺滋润的。

2、从事DBA岗位,选MySQL还是Oracle?

2001年,给爸爸买了当时的时髦货:诺基亚 3310,给自己买了一个爱立信 T28,小小的机身,粗粗的天线,居然还是两排黑白屏显!!

杨建荣:有句话说,选择的利剑属于在于能够挥舞它的人,根据工作需要,自己的喜好去选择就可以,如果只是本着钱途是不推荐的。如果非要纠结到底是哪一个,其实也可以换个角度,如果两个都学,是不是这个问题就不是问题了。

2001年,读研究生期间,不小心成了万元户:口袋里头有一万多元,我居然发愁怎么花出去。

杨奇龙:我的想法比较实际。行行出状元,不管是MySQL DBA 还是Oracle DBA都有比较成功的人士,建议是看各自的兴趣和爱好,以及自己想进的公司的招聘需求。MySQL 和Oracle 并不矛盾,我认识的相当多的人,两种数据库都能维护得非常好,比如大牛楼方鑫,Oracle 工具开发以及MySQL 内核开发都有非常出色的成果。

当时一万块钱啥概念?可以在北京二环买2平米的房子。

后来才知道,将来的老婆就在隔壁大学,过着略紧巴的日子。。。

Q3:个人职业发展如何完成Oracle向MySQL的转型?

But,得意的时光不长久,计划没有变化快。

杨建荣:从自身目前从事的工作,分三种情况来看:

2003年,突如其来的非典击碎了我一直做讲师的梦想。

目前从事的工作以商业数据库Oracle为主,又想转型为MySQL DBA的:

这一年,封校半年,只让出不让进。

自搭环境学习实践是一个起步,如果觉得没有明确的学习目标,考个MySQL OCP也是一种阶段性的学习成果验收,总比漫无目的的学习收获要大。已经有了Oracle基础,可以通过对比的方式来引入到MySQL的学习中。公司如果后期引入MySQL方案,你就是最佳人选了。

好消息是,我有机会苦练 OCP,基本把四门考试的教材,都抄写了一遍,基本功很扎实了。坏消息是,半年后校门打开,原来常去兼职的培训中心基本倒闭了。

目前工作中有MySQL环境的:

好吧,得去找工作了

在做好本职工作的前提下,可以自荐,让别人推荐来做MySQL DBA的工作。对企业和你个人都是双赢,所以开发测试运维同学相做MySQL DBA也是可以的。

初入职场:2004 年

现有的MySQL工作和自身期望相比差距较大的:

也是您的故事www.vip8888.com,为想从事MySQL。这是有点令人感伤的年份

一种方式是自查,我们在当前的环境还能够做出些什么,如果能够把当前的环境做到精细化的管理,总会有非常多的事情和收获,还有一种方式就是跳槽,这个的前提也是你在储备了很多的技能之后,因为机会是留给有准备的人。

2001年本科毕业的时候,互联网泡沫的顶峰,大厂例如华为。招聘口号:本科生年薪10万。2004年硕士毕业的时候,互联网泡沫的破灭,还是大厂华为,招聘口号:研究生年薪5万。

虢国飞:我是从SQLServer转型到MySQL的,感觉这个转型应该比Oracle转MySQL更大,因为本身还要克服操作系统的区别,不过如果你已经有一个数据库产品的经验,再来学习其它数据库产品,难度应该不是很大,因为很多底层的原理是相通的,概念也差不多,无非是各种产品在设计上侧重点有不同、使用方式上有差异。

搞得我和我的小伙伴们,一个劲的反省,这研究生是不是白读了

所以我觉得要完成这个学习转型,首先心态上面应该放开通过对比的方式来学习和实践,善于总结差异分析优劣,多和同行沟通交流,相信转型过程不会太长。

这一年,很多互联网企业纷纷裁员、限制校园招聘。千军万马齐聚农展馆,只为一个可能的留京机会。

李季鹏:从Oracle到MySQL转型,不单单是一个人的学习过程,也是一个从开发到运维的磨合过程。

幸运地是,并非计算机专业出身的我,估计是因为手持 OCP 等证书,机缘巧合进入联想客服事业群,成为一名光荣的 Oracle DBA,管着联想呼叫中心的生产数据库。

首先,战略上要藐视敌人,熟练掌握Oracle的话,对于任何一种关系型数据库的学习都是事半功倍的,特别针对MySQL,可以视为一个功能和手段做减法并寻找替代手段的过程;但重要的是,战术上要重视敌人,限于MySQL的特点,特别是中大型场景,把MySQL当Oracle用只会更加痛苦,必须放弃原有的Oracle视角,坚持MySQL大而化之的特点。学习篇

2005年,入职联想一年以后,我麻起胆子问车总监:“您当时招我来做DBA,不怕吗?” 车总监说:”我怕什么呀,你不是OCP的嘛“。

Q1:从初级成长到高级,有推荐的MySQL学习路线吗?

好吧,那会儿还是 Paper 啊

但也就这样,一路跌跌撞撞、摸爬滚打的过来了。

杨奇龙:DBA 是一个“复杂”的工种,要成为高级/资深MySQL DBA,我总结了以下五点:

2005年,发生一件对我触动很大的事件。

官方文档是最好的学习资料。通读官方文档是最扎实的学习方式,目前大多数同行只是把官方文档当做参考资料。其实把官方文档理解透彻你已经能成为高级DBA了。纸上来得终觉浅,绝此事要躬行。多动手,多做实验验证技术功能点。找一个有业务量的平台,锻炼自己的技术能力。能干活,能写文档,能讲。能够将自己理解的知识教会其他人才算真的弄懂。不懂业务的DBA 不是优秀的DBA,能够思考如何存储数据,也要会和开发沟通讨论业务如何访问数据才算最合理的。

当时两个部门老大在竞争一个副总经理的位置,各自上线一个 IT 系统,谁成效好谁就能上一级。他们采用的技术栈不同:

参考DBA技能树

A老板采用的是 Java + Oracle,当时很酷的技术。B老板采用的是 .net + Sql Server,微软的那一套。

-2097142/

最后,A老板输了,几年后暗淡地离开了联想。

杨建荣:DBA干的是一个手艺活,里面有很多技巧,但是一个岗位从初级走向高级始终是经验和实践的积累,没有其它捷径。这里给大家提供一个自查级别的方法:

为什么呢?原因在于:

Q2:关于MySQL学习资料、书籍或网站,你的推荐是?

Oracle 是一匹刚性的烈马,如果不能驯服,Java 前端各种抛红屏,直接导致各种业务中断;

Sql Server 当时是温吞的“老马”,很慢,锁的机制也差,但不会导致整体宕机,顶不了手工计单加上夜间集成。

杨建荣:简单来说,官方文档是最好的学习资料,在这个基础上去阅读更多的书籍会起到融会贯通的作用。如果推荐书籍,我有下面的一个读书清单可供参考。

我的体会是,技术是第二位的。所以:

入门:

不要因为对技术的盲目自信,而阻碍了业务、自己以及老板的前程哟。

《涂抹MySQL:跟着三思一步一步学MySQL》

2006年,也发生了一件扣人心弦的事情。

《MySQL数据库应用从入门到精通》

联想客服事业群启动一个三合一的项目。将原来各自为政的呼叫中心、维修站和备件,三个业务系统合并到一起,共用同一个数据库,成为统一的服务交付平台。

《MySQL核心技术手册》

我主导了这个项目的数据库架构,因为花了 300多万,被联想副总裁数落了半年。

《MySQL技术内幕》

当时的情况下,采用两套 IBM 设备。

好在充分压测和调优后的系统,上线时丝般顺滑,至今服务于联想大客服快10年啦。

运维实践:

当时特别纠结的地方在于,基于 IBM HACMP 的 Oracle RAC 的搭建。我自学 AIX 和 HACMP 配置,千辛万苦折腾了几个月,在项目快上线前两周,突然卡壳了。

《高性能MySQL》 经典必读

是的,按照文档,已经安装完成了 Oracle RAC 软件,打完补丁,就要创建数据库了。果然是“行一百半九十”啊,就是进行不下去了。

《MySQL管理之道:性能调优、高可用与监控 》贺春旸

我不想前功尽弃,我花了一周时间在网上搜索各种解决方案,每天到深夜,试图缝缝补补以解决,但依然未果。

《深入理解MySQL核心技术》帕奇维

仅剩一周时间了,依然没有解决。

《MySQL运维内参》 周彦伟、王竹峰、强昌金

万般无奈之下,我把整个系统和数据库配置全部清零重来。奇迹出现了,2天全部搞定!

《高可用MySQL》

所以,与其维护一个旧世界,不如创造一个新世界

内核:

曾经,我以为这辈子就是一个 Oracle DBA 了。

《MySQL技术内幕:InnoDB存储引擎》姜承尧

当 Oracle DBA 挺滋润的。

《InnoDB A journey to the core》Jeremy Cole

2000年的时候 Oracle DBA 月薪一万多,能在 Linux 下成功安装就算大咖。工资高,又是一个相对更受人尊重的职业。

杨奇龙:在建荣老师的基础,我再推荐:系统优化-《性能之巅》、开发-《Python 编程:从入门到实践》

但是从2007年开始,我开始恐慌起来,因为发现 Oracle 和互联网是没关系的。整个互联网都在用开源免费的 MySQL。相比之下:

张青林:《数据库系统原理》、《InnoDB存储引擎》。

Oracle 是爷爷,德高望重;MySQL 是孙子,弱小不堪。

李季鹏:最为建议的还是官方文档,如果嫌官方文档英文看着麻烦,可以关注Github上的MySQL 5.6 手册翻译项目(mysql2cn/manual56)。

但爷爷迟早会“死”的?

Q3:你认为研读源码是通向高级MySQL DBA的必备技能吗?

当然,后来 Oracle 收购 MySQL,以及73岁的创始人还站台将 Oracle 云化,又让 Oracle 生命力杠杠的。

杨奇龙:从我的理解来看 DBA 可以分为产品DBA、运维DBA、内核研发DBA。具有内核研发能力或者阅读内核源码的人,在了解具体技术原理时具有一定的优势。但是成为高级DBA和是否研读源码不冲突

联想是我的第一份工作,我一直心存感激。但风向已经变了,我得适应变化,我得拥抱 MySQL 啦

需要注意的是,我们要有打破砂锅问到底的“要性”。其实大牛和我们的差距就是对于一个个技术问题刨根问底的及时钻研。比如你遇到thread running飙高的问题时,是把慢查询优化了就好了吗?还是举一反三,反思什么原因会导致thread running飙高?要懂得去思考下面四个问题:

扬帆远航:2008年

业务是否需要缓存或者异步更新?连接池配置是否合理?是否当时系统磁盘io有问题亦或是raid 卡充放电怎么避免生产时刻重放电?thread running 代表什么意思?如何配置才能达到最好效果?

2008年,我加入了搜狐畅游,第二年起,担任 DBA组主管。彼时,搜狐畅游的力作《天龙八部》,已经支持百万人同时在线。

能否成为高级DBA,在于我们是否解决了一般人解决不了的问题的能力。

数据库怎么搞的?

张青林:首先,我不认为读源码是通向高级MySQL DBA的必备技能,即使不读源码,也是可以成为高级MySQL DBA的。读源码是为了了解其工作原理,分析其瓶颈,然后从内核上做优化,这是内核研发的必备技能;做为运维人员,只要懂其原理、使用方法,处理线上问题,并配合研发人员对线上进行维护,一样是很高质量的工作,也是“源码”落地的最重要的一部分,所以不可厚此薄彼。 当然,读源码可以更深层次的理解内核的工作机制,有利于学习。

毕竟,再厉害的 Oracle 也难以支持这么大的业务。

Q4:针对MySQL的不同分支(Oracle官版、Percona、MariaDB),你更看好谁?

所以,天龙八部用 300多组 MySQL,轻松扛下了这个负载。

韩锋:我还是看好Oracle官版。过去几年,官版MySQL的发展有些滞后,导致很多人选择了其它版本,Oracle也看到了这一点。最近一两年,随着MySQL5.6、5.7乃至8.0的推出,官版已经逐渐追上了其它分支版本。依托于Oracle在数据库领域的深厚底蕴,未来官版MySQL的发展更加看好。

这不就是化整为零的思路嘛

如果选择的话,我推荐的顺序是:MySQL社区版-Percona-MariaDB-MySQL企业版。

搜狐畅游的这几年,各种摸爬滚打,终于让DBA组成为了整个运维部最被人褒扬的部门。

张青林:我更看好 Oracle 官方版本,MySQL 被收构之后,Oracle 在MySQL上的投入不断的加强,优化器、InnoDB、复制都推出了很多功能,如GR、多源复制、并行复制、优化器的重构、Undo空间的在线缩小、InnoDB的性能优化、加密表空间等,这些都是解决用户问题的实际行动,Percona的开发也有很大一部分是基于 Oracle MySQL 来做的。

曾经,我以为这辈子就是一个 DBA主管了。

贺春旸:如果你想与官方MySQL版本尽量保持紧密,并且想获得更好的性能、运维工具和有用的特性,那就选择Percona。如果你觉得MariaDB对服务层的大量修改更快、更优,或者想要更广泛的存储引擎,比如Spider分库分表引擎,那就选择MariaDB。

做DBA主管挺滋润的。

Q5:MySQL 的认证考试值得考吗?含金量有多大?

各种安排妥当后,很是逍遥自在。直到出现两个情况。

杨建荣:MySQL的认证目前只有MySQL OCP,目前和Oracle OCP相比,资料和套路都会少一些。考这个认证,你得明白几件事情:

一则,“如果在一个专业难以做到 Top,那就是一种伤害”。

认证里的内容和工作的内容还是有一些差别的,在MySQL里面尤其如此,因为开源的方案非常多,很多优秀的工具不仅仅是官方的;考过了认证不一定代表了你是一个数据库专家,因为实践出真知,很多技能都是在工作中培养和锻炼出来的,考试有分数控制,达标即合格,而工作中99%的努力加1%的错误那就是失败;考取认证不能指望企业给你升职加薪,如果有的话,那么恭喜你;学习的过程相比考试结果来说,对自己的启示意义更大,因为拿到认证是对你学习过程的肯定;最后一点MySQL OCP报名费相比Oracle OCP低不少,价格还算亲民。

Oracle 我做不过老盖,MySQL 我做不过老叶。

贺春旸:MySQL DBA职位门槛较高,通常需要工作经验为3年以上的,考取认证并不是必须的,其含金量不大。

没有那么复杂的业务场景,技术能力难以突飞猛进。

腾讯和阿里当时都抛来橄榄枝,但舍不得离开已经居住了10多年的北京。

李季鹏:认证只是一个门槛,一个介绍自己时精炼的关键词,实际上并不能等同于技术水平的真正高低。MySQL认证分为开发与管理,个人建议可以分别视为自己在这两条线路上学习掌握程度的一个检验手段,无需过分看重,也没有必要完全看轻。

从2000年兼职做 MS SQL Server 讲师,到2010年,在DB这个行当,已经摸爬滚打十来年。

趋势篇

纵深已经基本够了。看看能不能横向扩展?

Q1:随着MySQL功能的不断完善,其体积也愈发庞大,你是否担心其未来会类似大型商业数据库,不再是“小而美”的代表?

例如,做做运维总监?管管系统、网络、业务运维等等。

张青林:没有这方面的担心呢,无可否认,编译后的 mysqld 文件越来越大,但并不影响 MySQL 的发展, 主要表现在以下几个方面:

运维总监干什么?

MySQL 提供了更多更好的选择,也是对用户的一种负责行为;MySQL的代码质量从5.5、5.6 、5.7的版本迭代中可以明显看到代码质量越来越高,易读性越来越好、模块化越来越强;专业的测试团队也是质量的保证;

纵横四海:2010年

所以,我觉得没有用户会因为多了几十M的空间而嫌弃更好用的版本吧,我觉得关注的重点不应该是小而美,而是软件质量和易用性。

2010年底我去智明星通做运维总监。经过两年半的时间,运维总监该管的都已经管了。

虢国飞:主要还是看场景需求,对于互联网公司来说,强调的是高可用性,出问题能尽快恢复,不大可能把大把的应用或者数据放到一个篮子里面,否则出问题影响比较大,恢复起来也会比较复杂缓慢;但因为现在很多分布式部署的DB比较零散,量大了之后维护起来比较麻烦,也可能有部分需求是需要做一些迁移整合的,不过这些只是局部不是整体。

曾经,我以为这辈子就是一个运维总监了。

我觉得现在大家更关注的是如何实现自动化运维、集群自动化和动态的扩缩容等方面,如果能通过技术把运维复杂度降低,管理再大的量其实都不是问题,现在很多开源产品也在往自动维护和动态扩缩容这方面攻关了。

做运维总监挺滋润的。

贺春旸:不用担心,您可以切为MariaDB。只要移除MySQL,然后安装MariaDB。你的所有工具,连接程序都可以正常运行。升级到MariaDB,你也不需要进行一次导出和导入,数据格式MariaDB是兼容的。

只是,怎么许诺自己一个更好的未来?血液中不安分的成分,一直在跃跃欲试,他反复告诉我,来一趟人世间不容易,概率小得令人发指。可不是么?

Q2:你认为MySQL是否足以担负起企业级应用的数据载体?如果不是,还缺乏哪方面的能力?杨建荣:我认为MySQL技术正在走向成熟,但是MySQL的生态已经成熟。MySQL从早期的发展至今,推出的解决方案非常多,从MySQL 5.7,8.0里面还是可以看到很多它在功能性、高可用、性能等方面都在发力,很多功能和Oracle很相似,都是一个逐步完善的过程,MySQL的使用群体和社区决定了它现在的高度,而且绝大多数的互联网公司都在使用MySQL技术,所以作为企业级应用是完全可以的。但是现在的互联网行业对于MySQL的青睐,很多不在于MySQL单机能够支撑的性能,而是在于灵活扩展的架构,对于MySQL的使用,不再是集中式、共享式的方式,会做拆分、分布式等。值得一提的是,很多大厂对于MySQL的技术把控力已经走在了世界前沿,而从技术架构的角度来看,现在是更倾向于把MySQL用得更纯粹,更简单,而不是大量的运算和压力都放在数据库侧,这是MySQL生态带来的一大优势,也让更多企业级应用可以落地。杨奇龙:显然MySQL已经足够成熟来承担企业级应用的数据载体,这点最近几年各个电商的购物节,每秒处理的交易笔数和数据量足以回答这个问题。当然我们的业务需求是多种多样的,除了常见的OLTP业务,还有其他OLAP 业务,海量日志类型的需求。在这方面MySQL 多少显得不足以适应业务需求。

当年,我们都是打败了数亿个兄弟姐妹,代表他们来到这个人世间。

另外就是因为MySQL不能支持在线的扩容、HA,必须借助第三方工具来做,不过好在5.7版本推出MGR ,Percona推出的PXC在很大程度上缓解了HA 方面问题。

2012年,33岁的时候,我迷茫了。

贺春旸:主要是官方缺少分库分表的解决方案。MariaDB官方提供了Spider引擎作为解决方案,但目前还没有正式GA。所以涉及非事务强一制的业务,如LOG信息等,通常是放入MongoDB里,通过其自身的自动分片功能实现对数据的扩容。

运维是不是一个终生职业?

Q3:你是如何看待数据库中间层(例如Cobar、Atlas等)与数据库的关系?

彼时,我的知识结构已经固化,更新不易。

杨奇龙:准确一点的说是数据库中间件,它们是数据库服务的一种辅助,借助数据库中间件,数据库可以具有分布式、读写分离、负载均衡、连接池、访问控制等等功能,数据库业务系统上具备更强大的功能和支撑能力。

人们老说选择比能力重要。可选择本身,何尝不是一种能力?

中间件在一定程度上解决了单机数据库系统容量方面的限制,可以通过读写分离方式或者水平拆分的方式整体提升数据库的吞吐量。

互联网企业里头,CTO 一般是程序员出身。运维总监,貌似已经触及职业天花板。可我才33岁啊

另一方面中间件在数据分布上利用shardingkey将数据独立开,对于聚合类的需求是一种障碍。还有当前的数据库中间件对于跨库分布式事务很难保证不同数据库分片的数据一致性问题。这些都需要开发在使用中间件的时候注意下规避。

2013年,一个老领导说,有一家管着十几万服务器的公司,正在建设云运维平台,可以让我整体负责。

虢国飞:中间件目前在MySQL数据库横向扩容方面作用很明显,当然不止局限于此,我们公司的DAL中间件就做了很多的功能,比方连接池、分片路由、限流、熔断、加密保护等,这些功能不仅能支持数据库的横向扩容,还有效保障了数据库的安全,所以说中间件和数据库目前是很多公司的黄金搭档。

当时我就被深深地打动了。太好啦!!

韩锋:这些中间层产品,是为了弥补数据库的功能缺陷或性能、容量不足才出现的。在一定阶段,确实解决了企业的实际需求。当我们也看到,其对应用开发还无法做到完全透明,整体架构的复杂度是提高了。从长期来看,分布式数据库势必会从根本解决上述问题,到时这些中间层产品也就没有使用意义了。

一则,云计算当时方兴未艾;

二则,可以将多年的技能固化下来,运维从成本中心变成利润中心;

三则,我可以尝试比较无痛地从技术转业务。

Q4:你所在的公司是否有成熟的MySQL运维平台?如果是,DBA在传统运维类工作逐步萎缩的情况下,选择什么方向来发展?

所以我果断入职世纪互联。

虢国飞:我觉得一个公司的运维平台发展基本有几个阶段:

但是悲催的是,入职第二天被告知,这个项目取消了。

首先是大家使用开源产品,但是发现有很多的不足,想要的功能没有;于是进入第二个阶段,自己编写一些脚本来弥补这些不足,但是当规模越来越大的时候,发现元数据和数据变更的维护变得越来越困难,而且很容易搞错,这个时候运维平台就必须得上马;进入第三个阶段,通过运维平台整合大家的脚本,闭环元数据和数据状态的变更,保障数据准确性,同时对复杂的架构进行屏蔽,让操作的人能尽量简单,目前我们就处于这个阶段;

已经入职了,那也不能立刻离职啊。既来之则安之

另外,其实不止是DBA,整个运维体系都在做转变,传统的玩法效率低、重复工作多,已经不适用互联网公司高速度、快节奏的发展了,所以说DBA工作内容需要转变,思想也需要转变,应该向着如何快速交付、提高数据库整体稳定性、高效率运维、打造适合更多适合业务需要的数据库产品方案,甚至给研发输出数据架构方案等这些方面发展,开始往前走,这样价值能更大。

我在世纪互联打了一个通关。让世纪互联成为了微信在欧洲当时唯一的IDC服务器网络提供商。什么叫打通关呢?

韩锋:公司目前有数据库运维平台,当然还没有覆盖所有运维需求,但也大幅度减轻了DBA的工作负担。传统运维类的工作,确实在不断萎缩之中。在这种情况下,DBA的发展可朝以下方向努力:

售前、售中、售后、采购、回款;

和欧洲IDC厂商背靠背英文合同,电话技术支持,等等。

架构、优化方向从事数据库架构、结构设计,性能、语句优化等方向工作。DevOps方向从事和数据库运维相关的开发类工作。业务方向结合业务特点,分析如何利用数据库更好的满足企业发展。数据管理方向脱离数据库层面,从更高的角度考虑公司的数据管理、治理类工作。

关键的签约时刻,我第一次走进深圳腾讯大厦,而且是第一次以乙方的身份,讲标时满脸通红、手心冒汗。

张青林:腾讯有很成熟的MySQL运维平台,这简化了DBA 的运维服务,提高了DBA的幸福生活指数。DBA 的运维工作较之前会少一些,可将多余的时间投入到MySQL其它的相关工作当中,转向研发型运维,如:

因为我知道,这是我在世纪互联的主要财务业绩,如果丢单,我的 1/4 股票期权估计也飞飞飞走了