hchao
作者hchao·2015-11-17 09:22
网站运营经理·TWT

一位从业二十年的银行数据库专家眼中的DBA战争

字数 1693阅读 3137评论 2赞 4

数据库管理员DBA(Database Administrator) ,在目前数据中心的运维工作中,起到越来越大的作用,随着规模的扩大,其职责也慢慢发生了变化,已经不单单是一个和数据库打交道的技术人员,随着各方面需求的提升,DBA正转型成一个数据中心的引路者。

数据中心最关键的是数据,处理数据最核心的是数据库,因此所有和数据库打交道的事情,都应该是DBA所面对的挑战。

首先和产品的战争,对于一个数据库产品,最普遍被使用的不一定是最好的,性能最好不一定是功能最全的,功能最全不一定最合适需求的,一个合适的数据库产品决定着未来的架构和开发,这就需要DBA能站出来,阐述产品的优势劣势,并结合自身业务需求、开发能力和未来运维,协助选择一个合适的数据库产品。

其后就是应用开发的战争,从目前我们开发人员对数据库的了解,基本上只是在SQL层面,甚至很多语句都是程序自动生成,目前的数据库产品对于SQL的运行能力还没有到达完全智能的地步,因此在实际运维中经常会出现一个语句导致整个系统受影响的情况,因此DBA此时的经验就变得至关重要,根据产品不同,对开发人员作出合理的建议,防患于未然。

应该说开发部门大部分完成的是功能性问题,对于一个非功能需求,则需要从数据库的整体架构上考虑,例如性能、可靠性、可扩展性等等,不同产品在这些方面实现的方式和程度均不同,因此DBA此时的工作就是要根据业务的非功能需求、成本投入等方面,对数据库的整体架构有所考虑。

DBA目前最普遍的工作就是数据库的运维,运维工作从简单来说就是一个数据库产品的安装配置、运行监控、性能调整,问题处理,说起来简单,做起来就很难。

·首先是安装配置,当一个系统到达我们面前的时候,我们往往所能了解到的就是这个系统的名称,然后工作目标就是配置一个合理的参数, 面对这种无的放矢的局面,DBA对业务的了解就变得非常重要。

·运行监控并不是盯着屏幕看就能避免问题的,数据库出现问题后的第一责任人就是DBA,就算是应用造成的,也会被问及,为什么没有及时发现问题隐患,而且摆在DBA面前的一个鸿沟就是,出现问题之前往往都是没有问题的。如何从蛛丝马迹中发现问题,而不是鸡蛋里面挑骨头,其实这两者很难有明显的边界。

·DBA掌握了很多性能调整的方法,但是事情都有两面性,数据库实现了某方面的性能,必然会失去一些其他方面的性能,问题的出现往往就是在某些变更和调整之后,因此DBA必须不迷信技术,要理解技术才能使用好。

·最难的就是问题处理了,如果一个数据库直接Down了,则这是最简单的问题,实际情况中往往是出现业务问题后,谁都不知道哪里出问题了,了解各个渠道,业务人员说交易数量无变化,开发人员说程序没调整过,网络说性能都很好,DBA这时候往往是众矢之的,只能大喊”我是冤枉的”,但又不敢大声喊出来,”不是我的问题”。 因此,DBA必须要有的能力就是在出现问题后如何分清是否是自己的问题,并且有能力肯定不是自己的问题,再高水平一点就是指出到底是谁的问题。

我们要做强壮的DBA,要达到这个目标,必须要有扎实的基础,要了解数据库的原理,然后必须要有广泛的知识面,我们为技术而活,不能把自己定位到某个产品的DBA,技术是具备共通幸得,通过不同产品的学习,能加深我们对产品的掌握,有了这些基础,我们还要走到前面去,要敢于提出自己的观点和建议,要明白数据库不是孤立的,它只是一个系统中的重要环节,运维工作就是一场战争,和数据库产品的战斗,和其他环节的战斗,知己知彼才能百战不殆,只有充分的了解系统、网络等其他环节,你才不会在这个运维斗争中败下阵来。

孔令俊简介:

1995年毕业厦门大学计算机系;1995-2000年在建行山东分行工作,负责建行城综网的推广工作,从而了解到informix数据库,我这其间主要从事程序编写和数据库维护。;2000-2003年负责了山东行cbs系统的开发设计工作;2005年调入建总行北京数据中心,并且工作重点也从单一数据库层面扩展到系统,中间件等整体的问题分析和解决上。;现在为建行数据中心专家组成员,负责对数据库,系统中间件的架构设计及问题分析。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论2 条评论

top448zhaoyantop448zhaoyan数据库管理员联想
2015-11-25 23:17
对系统全局的把控,是一个合格DBA的标志
weiruan85weiruan85数据库管理员ibm
2015-11-25 12:00
·最难的就是问题处理了,如果一个数据库直接Down了,则这是最简单的问题,实际情况中往往是出现业务问题后,谁都不知道哪里出问题了,了解各个渠道,业务人员说交易数量无变化,开发人员说程序没调整过,网络说性能都很好,DBA这时候往往是众矢之的,只能大喊”我是冤枉的”,但又不敢大声喊出来,”不是我的问题”。 因此,DBA必须要有的能力就是在出现问题后如何分清是否是自己的问题,并且有能力肯定不是自己的问题,再高水平一点就是指出到底是谁的问题。

深有同感
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广