近期,一项针对DBA的讨论在ITPUB论坛中进行,议题是DBA在出现问题时,是应当花大量的时间自己研究,还是应该在第一时间汇报给数据库厂商从而得到官方答案?论坛中有很多DBA参与了讨论,并将自己多年累积的经验分享给大家。现将其中的一些“干货”分享给大家,希望能对大家有所帮助。(本讨论是在IBM信息版块内进行的,因此数据库厂商是IBM。但这些DBA的经验之谈同样适用于其他数据库。)

  观点一:先自行处理

  hwtong:我坚决支持自己先研究,当然前提是不紧急的事项,如果确实紧急,那么需要优先联系IBM支持,同时记录下处理过程,做成文档,提升自己的积累。首先根据自己的经验大致判断下是什么问题,如果实在不行,就先在网上搜索相关的帖子,毕竟自己处理过,自己会有很深的印象,对自己是一个很大的积累。最后实在不行了,才会求助技术支持。

  feonabin:发生问题时,作为DBA应当花大量的时间自己研究,因为DBA相对于厂家更了解本身数据库的情况,而且只有遇到问题再努力解决问题,这样才能获得宝贵的经验,为自己的职业发展带来帮助,所谓的技术牛人都是这样熬过来的。

  观点二:求助数据库厂商

  help01:应该在第一时间汇报给IBM从而得到官方的答案。理由是,这里提到“花大量的时间”“自己研究”,从而可以判断出这里的前提是一个复杂而又棘手的技术难题,遇到此类难题,通常会给DBA们心里带来一定程度的压力和紧迫感。他们也许会根据自己的经验和知识想尽各种办法来解决,也许会向自己的同事和朋友请教。但是最直接和权威的解决途径,我认为是从IBM官方来寻求答案,这是最直接的办法。况且如果购买的IBM服务还未过期,为什么不寻求最权威的技术支持呢?如果服务期已过,我也会积极建议公司继续购买IBM服务的。这时候的IBM技术支持,更像是一个知识库或者“云支持”,可以作为众DBA们的技术后盾,缓解大家的工作压力。

  观点三:随机应变

  家在海淀:当发生问题的时候,老胡认为:

  1)首先要看问题的现象,在以往的应对方案中,或者风险应对方案中找到答案和操作策略,保证业务连续性是第一位的。 迅速评估影响,根据影响范围,确定事件的等级,这个时候如果不能找到问题,要根据问题的严重等级,迅速启动灾备或者备份方案,回复对外服务,并做好故障现场的保护。

  2)应急启动回复业务连续后,要根据初步判断迅速组织相关人员集中处理,根据保留下来的故障现场进行初步判断和解决,如果可以解决,则考虑在验证方案有效后执行切回操作。

  3)如果不能解决问题,要迅速反馈问题到数据库官方支持厂商进行派员解决,此间可以考虑发布数据库故障等对外影响通知,迅速通知周边系统知晓,便于同步执行备份,并告知初步的影响范围给业务部门进行公告。

  4)根据和官方支持确认的最终解决方案进行验证,完成后恢复系统,整理故障现象和清单,更新应急和风险应对预案,改进和完善系统,消灭掉隐患和遗留因素。

  5)需要切记的是必须保障通讯的畅通,确保问题通常的传达给管理层和各个相关技术小组,不可以隐瞒或私自操作。

  此外还有很多观点,笔者不再一一列出,有兴趣的同学可以查看原帖: 。

  精华提炼:

  根据ITPUBer的建议,笔者认为,如果DBA遇到技术难题,应遵照以下步骤进行:

 

  网友jinguanding(金官丁)也给出一个较为完整的步骤,可做参考:

  作为一名DBA,首先要做的事情是:

  1. 查看和分析报警信息,根据经验想办法快速解决故障,这是影响企业或系统正常运行,那么就影响公司的用户,从而导致影响收入等;

  2. 收集日志信息,根据日志信息判断出现了什么问题;

  3 求证系统相关人员,是否在此阶段做了什么变更或特殊操作;

  3. 再结合日志分析,找到故障发生的真正原因,如何规避下次再发生;

  4. 把故障的发生过程与原因分析完整,并且告知DBA团队所有人员,以及系统的相关开发人员或负责人;

  5. 若是商用产品,在上述第一点中处理完毕,但是依然不明白真正的原因,建议向官方提交故障的发生过程描述信息和日志信息;

  6. 查找官方的故障案例库;

  7. 查找官方的手册及技术资料;

  8. 想办法模拟故障的发生。

  当然,这一问题见仁见智,如果你有不同的想法,可以登录ITPUB论坛进行讨论,把你的经验分享给我们