线上操作零差错,优秀的DBA就该这么做!

简介:

根据莫非定律:「凡是可能出错的事必定会出错,任何一个事件,只要具有大于零的机率,就不能够确定它不会发生。」这句看似箴言的话,想必每个运维从业人员感触非常深刻。本文从 DBA 线上操作的角度,谈谈自己的看法。

工作日,DBA 会处理大批工单;非工作日,DBA 在时刻准备着救急。亦即,DBA 每时每刻都有线上操作的需要。那么问题来了,个人的状态是不定的,包括心理状态、身体状态。时刻保证临危不乱,这是 DBA 重要的素质之一。线上故障,分秒必争,不及时的处理、不善的操作都很有可能给公司带来不同程度的损失。线上操作需要求稳,本文给出笔者的点滴思考。

 

第一,处理工单、凌晨维护、处理紧急故障之前,梳理流程,准备必要的资料。一个优秀的 DBA,不是求速度,不是求效率,而是求稳。出错的概率低,你给别人的感觉就会比较靠谱。有经验的 DBA,线上操作就是复制粘贴,宁愿相信 0 和 1,也不愿相信自己和别人。每次处理工单、凌晨维护,笔者都会养成一个习惯,梳理流程,准备线上服务器 IP 列表、需要的脚本、有可能使用到的命令、相关的文档等等。这样的好处是,心里有谱,不至于慌乱。即使遇到突发状况,也会相对从容。当然,紧急故障没有这么多时间给你准备,但至少也要准备常用的命令。这里有个小建议,使用 Evernote 保存常用的命令,当然,涉及公司敏感信息的,不能留。临场发挥,尽可能地避免手动输入,因为高度紧张的状态下,输入错误的概率比日常要高。于 DBA 而言,输入错误,带来的灾难将是毁灭性的。已经有很多类似的案例,在此不做展开。

 

第二,处理故障之前分析最重要。通常某个故障是不是单点的,是一个面,是一个链条线上故障,直接受影响的就是用户,究其原因,用户层、接入层、逻辑层和数据层每一层都有可能有问题。处理故障之前,不是无谓的试错,一次不行,下次依然如故的概率相当高,然后时间就这样不知不觉地浪费了。此时应该冷静下来,思维不能单独盯在数据层,从整个技术链条考虑,这样获得的信息才是最全方位的。那么问题来了,互联网行业工作细分,DBA 很大可能没有操作数据层之外的权限,怎样做到信息相对完善,接下来就是下一个话题。

 

第三,学会沟通,尽可能地达到信息对称。第二点提到,DBA 更多关注的是数据层,达到整个技术链条信息的流通是相当重要的。这一点其实不是技术问题,而是一个人的软实力。我们都知道,提好问题比答案本身更重要。DBA 在处理故障时,跟监控、研发、测试、产品、运维等都有可能打交道。监控会反馈受影响的范围、延时情况等等,这属于用户层;研发、测试、产品会反馈业务故障、程序日志等,这属于用户层和逻辑层;运维会反馈网络情况、流量状况、Web 服务器异常等等,这属于接入层。最后 DBA 会关注数据层,包括持久层和缓存层,然后结合不同链条的信息,综合分析,再进行相应的操作。线上操作,我们不能容忍低效甚至无效的沟通。

 

第四,任何操作三思而后行。DBA 应该把「备份重于一切」铭记于心,修改任何配置文件之前先备份,慎用甚至不用 rm。对于有 DROP 和 TRUNCATE 的工单,再三审核和确认,避免无效操作。如果确实存在此类需求,应该首先确认是否有备份,备份是否可用。DBA 应该对高危操作有明确的认识,除此之外,所有的恢复操作也需要了记于心,防患于未然。

 

第五,事后 Review、反思、总结,形成知识库。故障是不可控的,可能是人为,可能是程序有 Bug,可能是网络故障,总之发生故障的原因千奇百怪。但故障事后的 Review、反思和总结我们可以控制。针对某个特定的故障,反思处理的流程是否有优化的地方,反思基础设施是否还有不完善的地方,反思团队出现的问题,反思和其他部门的合作是否有问题等等,然后形成会议记录、故障报告、故障总结,形成知识库,定期再次 Review,避免下次出现类似的问题。再者,还可以给新入职的员工参考,从真实案例中学习,这样进步会更快。

 

做好一个优秀的 DBA,技术是一方面,更重要的是个人素质。比如,你需要有良好的习惯、需要有优秀的心理素质、需要有责任心和道德、需要有良好的沟通能力……这些软实力是基石,在此基础上,拓展技术的广度和深度,这样才会有更良好的发展。

 

借此文章,唠嗑下最近的想法。笔者经常反思为什么会这样坚持更新博客,最近有了比较理想的答案。第一是督促自己思考,第二是为别人提供价值。先说第一点,坚持更新博客,就是在提醒自己不断思考,这样就会比别人获得更多技术之外的能力。然而,这些能力,是在枯燥的工作之作学不来的。世间的道理都很简单,大家也懂,然而真正去行动并且持之以恒的少之又少。你看了一千篇文章,读了一百本书,不去行动都是枉然。然后说说第二点,博客很重要的一点就是给读者提供价值。读者觉得你的文章能给他带来启发,这就是正向输出;读者评论你的文章、和你发邮件交流、加微信和你聊天,这就是正向反馈。你给读者提供了价值,说不定读者哪天就会给你带来意想不到的惊喜。一个长期保持高质量更新的博客,于己于他,个人认为都是瑰宝。即使现在没有兑现,将来的某个时刻会。

 

回到这篇文章本身,笔者时刻都在强调软实力。软实力靠的是长期的积累,需要自控力不断提高。归根结底,任何管理本质上都是对自我的管理。

 

经作者同意授权转载

来源:DBTalk By 温国兵

作者:温国兵(酷狗音乐DBA)

本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2016-05-30

目录
相关文章
|
缓存 网络协议 Linux
网络的救命稻草:重传机制如何确保数据顺利传输?
在网络传输中,数据的可靠性和稳定性一直是一个重要的挑战。幸运的是,重传机制应运而生,为我们解决了这个问题。本文将深入探讨重传机制在网络中的应用和工作原理。我们将介绍TCP中最常见的超时重传和快速重传,以及SACK和D-SACK这两种高级重传机制。了解这些机制如何工作可以帮助我们更好地理解数据传输的可靠性和稳定性的保障。
460 1
网络的救命稻草:重传机制如何确保数据顺利传输?
|
前端开发 Cloud Native 大数据
坑爹,线上同步近 3w 个用户导致链路阻塞引入发的线上问题,你经历过吗?
坑爹,线上同步近 3w 个用户导致链路阻塞引入发的线上问题,你经历过吗?
|
监控 JavaScript 安全
从几次事故引起的对项目质量保障的思考
从几次事故引起的对项目质量保障的思考
|
SQL 缓存 NoSQL
记录一次高并发引起的生产事故的溯源记录
记录一次高并发引起的生产事故的溯源记录
122 0
|
Java Python
第二次考核订正
第二次考核订正
Uma
|
存储 运维 数据库
运维宝典 | 数据千万条,备份第一条,数据找不回,老板两行泪
请带着你的回忆看下文,想想你这些年删过的库,被删过的库。。。
Uma
6223 0
|
开发者
如何让用户主动分享小程序?我们总结了几条实用经验
怎么在不触碰红线的情况下,让小程序具备传播性和感染性?小程序上线至今,已经有了多种推广方式,包括公众号、广点通、小程序互推、附近的小程序、社群等。只要愿意花钱花心思,推广不再是难事。但是怎么让用推广触 ..
1585 0