天气炎热,老明邀请好友去他老家避暑,相聚之日大家畅聊人生,相谈甚欢。
L:我给大家讲一个很有警示意义的故事吧,叫小黑入狱记。
W:入狱,这么吓人,我没听错吧?
L:嗯,这故事也算得上数据库二十年目睹之怪现状了。小黑大学毕业后在一家大型企业做软件开发工程师。一天,他见到公司的老黄的一通神操作,把原本缓慢的系统整体性能提升了10倍有余后,大为震撼!
小黑当即拜入老黄门下,转岗成为了一名DBA,并立志要成为像老黄一样的数据库高手。为此他研读了公司主流数据库的所有学习资料,并做了大量试验以提升熟练度,更难得的是他还善于思考与总结,写了多篇数据库学习心得并积极与大家分享。老黄很是满意。不过有一件事让小黑有一些郁闷,公司规定新DBA必须在团队工作满6个月,才被允许操作生产数据库,否则只能接触测试数据库。小黑觉得这规定太死板,应该早点让他在生产系统一展身手。只是每每他提起这事,都被老黄给婉拒了。第二回
无视规章制度,怂恿私建账户
Q:生产系统非常重要,老黄这种谨慎的态度是对的,小黑还是心急了啊。老明:DBA对生产系统要有敬畏之心,怎么小心都不为过,这六个月的设定很合理。L:可惜小黑缺少敬畏之心,一天他找了团队中关系不错的小白,希望小白能提供生产数据库的访问方式,让自己能体验生产数据库的各种参数设置、数据对象特点及数据分布规律。小白经不住软磨硬泡,于是给小黑单独建了一个仅有查询权限且有效期为一天的临时账户。W:查询虽然不会破坏数据,但是也可能因为挤兑资源而对数据库造成影响。
L:是的,这事严重之处在于无视规章制度。为生产系统建用户是有严格制度管控的,需要提交账户申请流程,经过老黄审核同意,才能建。而小白却悄咪咪地建好了,并交给了小黑,这是一种非常严重的违规行为。第三回
擅入生产之库,资源挤兑闯祸
L:是的!小黑接触数据库不久,没有足够的经验,认为测试环境中能正常运行的脚本在生产环境中也没问题。然后他在未授权的情况下,直接在生产环境中执行查询脚本了。结果他惊奇的发现,在测试环境中丝滑运行的SQL,在生产环境中迟迟未返回结果。正当小黑迷惑时,小白接到告警以及生产部门的求助,说系统运行变慢,出现数据积压.....小白很快定位到问题所在,正是小黑账户发起的系列查询语句导致的资源挤兑,影响了生产系统运行。L:是的,老黄被气得不轻。此次事件导致业务中断,同时引发了大量的用户投诉。为此公司按规章对两人进行了处罚,扣了他们3个月的绩效。不过小黑内心不服。
L:小黑认为测试环境和生产环境不应该有差异,觉得这就是坑人。L:为此老黄耐心给小黑做了解释,说明生产环境和测试环境要保持一致几乎不可能。如新需求未正式上线前,对应的数据对象肯定是测试环境有而生产环境没有;再有生产中的数据实时变化,测试环境一般不考虑实时同步;此外压测与异常测试往往需要特殊设置,生产环境可不允许轻易做这些操作。实际上测试环境和生产环境只要确保其临近上线前,两个环境保持一致即可。
L:小黑还犯了另一个严重错误,他执行脚本的时间恰好在业务的全天最高峰。实际公司对各个程序的访问数据库时段有严格控制的,尽量错开高峰期。W:小黑中奖了啊,居然恰好选择业务最繁忙时操作,难怪要出问题。
第四回
暗箱操作勾结,背信弃义坑主
L:团队不可能人人都是经验丰富的高手,此时制度就显得尤为重要了,否则迟早要出事。故事继续,小黑终于熬到可以接触生产系统数据库的时候了,在老黄的千叮万嘱下,小黑工作还算小心本分,慢慢也开始独当一面了。随着业务的发展和国内大环境的需要,公司决定要对内部纷繁复杂的数据库技术栈进行大调整(参考链接数据库二十年目睹之怪现状⓵ 太!多!了),在这之前首先要完成选型测试。这是一项有挑战的工作,不仅要求自身有很强的数据库功底,还需要对业务和开发都要有一定的了解,同时还要有很好的沟通协调和规划能力,交给谁来办呢?老黄很快想到小黑,觉得小伙子不仅机灵,学习能力还强,之前又有过开发经验,同时也熟悉业务,算得上是一个六边形战士,应该可胜任,于是就把任务交给了小黑。W:这事有难度啊,无论内部各部门还是外部各厂商,想协调好都不容易,对个人的综合素质要求不低,小黑没让老黄失望吧。L:小黑的能力确实不错,工作也开展得有章法。不过还是让小黑遇到了一件意想不到的事。此次有A、B 、C三家厂商参与测试,其中C厂商在测试性能时使用了关闭日志、副本及缓存数据等非常规手段,想借此提升性能。L:小黑虽然数据库经验不算丰富,但是对于性能优化却很有研究。因为这是他的兴趣所在,当初他正是被老黄的优化神功吸引才走上DBA岗位的。这下撞到枪口上了,敏锐的小黑毫不留情地揭露了C厂商的作弊手段。L:C厂商很快开启了针对小黑的公关工作,在利益的驱使下小黑不仅没有揭露其作弊,还结合业务对其手法进行了优化,同时还将另外两家的测试情况告诉给了C厂家,好让C厂家制定针对性策略。最终结果显而易见,C厂家的测评结果明显领先于A、B两家,最终成功入选。老明:这小黑灵活过头了吧,这要不得啊,C厂商的产品能用吗?L:意想不到的是,C数据库经过一段时间的打磨,还真的就站住脚了,虽说整体性能不是太好,通过业务优化和硬件堆叠,最终也符合要求,最终是稳定的运行在企业内部,算的上是一次成功的项目,小黑也因此得到了公司的嘉奖。
第五回
故意制造故障,沽名钓誉图升
L:由于老黄的带队有方,公司的数据库很少出问题,不过也因此在公司评优表彰时屡屡被忽略。老黄告诉大家扁鹊治已病所以很多人知道,而扁鹊大哥治未病却鲜有人所知,实际上大哥才是更高明的,让大家做好本份工作即可,不必在意虚名。众人听了纷纷表示理解,而小黑则不是这么想的,等老黄因个人原因离开公司后,他就动起了歪脑筋。L:小黑心术不正,居然想着如何让数据库神不知鬼不觉地出问题,越棘手越好。等大家搞不定了,动静闹大了,自己再用早已准备好的方法来解决这个问题,再把问题的责任推给应用端或者数据库厂商。这样在不用背锅的情况下当一回英雄。以此引起领导的注意,给自己谋一个升职加薪的机会。Q:听起来匪夷所思,居然还有人能产生这么邪恶的想法。
W:这事有难度吧。小黑真有这么强的能力能做成这事?L:小黑为此事精心准备了好几个月,期间在测试环境做了无数次的试验,可谓废寝忘食。最终,一切按照小黑设计好的剧本如愿进行,小黑成为了公司的英雄,领导也记住了他的名字。老明:闻所未闻啊,这小子是真有本事,只可惜不用在正道上啊。第六回
倒卖机密数据,最终锒铛入狱
L:不久,小黑成为数据库团队的管理者,如愿实现了升职加薪。消息传到老黄耳里,老黄离开公司却心系公司,连忙给公司领导打个电话,建议取消对小黑的任命,不过建议并未被采纳。
L:老黄还没看出其品行不端,只是觉得小黑个性张扬且缺乏原则性,当一名DBA尚且有些勉强了,更别提带DBA团队了。L:很快有人找到了拥有数据库最高权限的小黑,开出了诱人的价位向小黑进行交易,小黑动心了。通过长时间的规划,小黑伙同安全部门人员一起,将核心机密数据拷贝成功转移出内网,最终获得了丰厚的收益。正当小黑得意之际,公司察觉到异常并迅速报警,最终小黑被捕入狱。这次事件也给公司造成了巨大损失。L:这事值得我们好好去反省。小黑从一开始的违规操作,到后来的测评作弊、自导自演,再到最后的倒卖数据,我们可以看到,一个人一旦走上了歧途,很容易越陷越深。作为数据库管理员,正直的品格和高度的职业道德比技术本身要重要得多!公司的制度和规范不是束缚,而是保护。我们应该时刻保持敬畏之心,对待工作要谨慎、负责。
预告:《超融合数据库》即将出版,关注梁老师公众号,敬请期待。
