DBA应该具有的素质
作为一名DBA必须有全面知识,从技术角度来说,我们会分成两大块,硬件和软件支持。数据库运行到的设备都是大型设备,便宜一点像一些PC服务器,小的十几万,一些小型级50、60万,一些大型机价钱更贵了。我们要对硬件,主机比较了解,因为数据库直接运行在主机上,如果一个DBA对主机不熟悉,你怎么能说从何管理数据库,所以我们对主机这块必须非常了解。
另外除了对主机我们对磁盘阵列也必须了解,因为当前虽然技术发展,很多银行、证券公司,一些大的网站,他们都是提供7×24小时,7天24小时不间断运转,所以他们的设备,要提供一种高可用性,需要一些大型设备,磁盘阵列也要大型的。
另外DBA对网络也应该有一定了解,现在全球经济是你中有我,我中有你,为什么在这个金融危机发展的前期,各个国家都是各自为政来处理金融危机,但是各个国家包括美国,加拿大,其他国家采取一些措施对金融危机没有产生多大的效果。这次金融危机和美国以前发生的金融危机不一样,以前美国金融危机仅仅是美国一个国家的金融危机,而现在金融危机是全球性,一个公司在全球有很多分公司,它的网络在逻辑上是联在一起,作为一个DBA要管理可能不仅仅是你本地数据库,或者是你中国的数据库,可能你管理是全世界,这些数据库物理可能是分布在韩国日本,所以你对网络也有一定的了解,作为一个DBA硬件层次必须了解这几个方面。
软件方面我们也要了解,首先就是操作系统,我们数据库大部分运行在Linux等平台上,如果我们DBA对他们的系统不了解,那么我们无从管理他们的数据库,因为数据库是运行在操作系统之上,操作系统就是轴,轴功能不好,其他怎么能好的。软件包括操作系统,另外就是应用程序,我们一个数据库运行最终目的,是为了给外面人或者客户提供服务,就存在就是说我们要给其他应用程序提供一个交互,如果就是说你对应用程序如何访问数据库我们连这个原理都不了解,那么我们对数据库进行管理呢?
另外重要就是我们了解运用程序如何访问数据库,为什么这点非常重要,因为我们了解这个机制,我们才能知道如何提高我们数据库性能,如何提高我们数据库的最大化,这块其实我也想多讲一下,因为其实数据库经常会发生性能下降的问题,根据我这几年的经验分析,数据库性能降低60%,是和我们硬件有关,我们硬件已经达到极限,包括内存,CPU计算能力,网络传输能力已经达到极限,这些是40%。60%是我们数据库设置不当导致效率低下,我们进行数据库性能调整,第一点首先要着眼于60%的软件问题,40%是发展我们的硬件。
我们从大的方面讲了技术层面,但要想成为一个优秀DBA有两个方面,一个是技术,一个是文化层面。文化层面就是作为一个优秀的DBA,第一必须冷静,为什么呢,数据库经常发生一些问题,当你用数据库最新版本,把最新应用用到实际工作当中去会遇到很多问题,而且这些问题你在以前没有看到过,谷歌或者百度也找不到答案,遇到这种情况必须保持冷静。另外就是必须谨慎,当你在一个公司管理一个很重要数据库,出现问题的时候,首先你的客户,同事正在等待你解决问题,老板正在催促你,CTO在督促你,这个时候必须保持冷静,因为保持冷静才能静下心来,想方设法解决问题,找到这个问题答案。如果这个时候不冷静,找不到答案,还会给公司带来损失,或导致一些其他的故障。所以作为DBA冷静、谨慎这两点是非常重要的。
另外就是DBA必须有沟通的技巧,这也是非技术问题。大家知道作为一个DBA他要服务的对象很多,大家有时候觉得他是一个很神圣的角色,其实不是这样,DBA其实是一个很下面的角色,为什么呢?因为这个角色为很多人提供服务,你要为客户提供服务,要为其他客户提供支持,你要给开发人员提供技术培训,你要给你的CTO提供整个公司数据库的硬件和软件规划,还有要给你CTO提供性能方面咨询。所以作为一个DBA你要为很多人服务,还有特别是对市场人员,在竞标一个项目的时候,DBA需要为市场人员提供一些数据方面技术支持,所以DBA也需要和市场人员沟通,所以一个DBA做得好做不好,技术是一个层次,沟通也非常重要,跟客户沟通不好,得罪公司客户;和开发人员沟通不好,开发人员可能写不出来高效的程序,不和开发人员进行合作可能导致公司整个项目往后推了;不和市场人员沟通好,市场人员得出数据不利于这个公司发展;不和自己CTO沟通好,不知道你的CTO到底让你做什么,完成什么任务。所以DBA的沟通能力是非常重要的。
另外一点,作为一个DBA必须有挑战精神,为什么必须有挑战精神,因为数据库在不断发展,公司在不断壮大。当公司业务壮大,数据量不断壮大,我们需要一些高端设备,包括硬件软件,我们需要应用新的技术解决我们面临的问题,如果一个DBA没有挑战精神,几年以后你发觉你已经被整个IT业远远落在后面了,所以说一个DBA必须有挑战性,想方设法运用最新技术解决公司问题,新的技术能够让我们业务提高好几倍,所以说DBA另外一个精神就是必须有挑战精神。这就是说作为一个DBA必须要技术全面,第二就是必须谨慎,小心,有挑战精神。这仅仅是我作为一个DBA的感受。
DBA如何提升能力