?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
我们I竟要成Z个怎么L DBAQ公司究竟需要一个怎么L DBAQ作Z?DBA 应该L怎么L素质Q?/p>
首先作ؓ一?DBAQ数据库的基本功很重要,了解数据库的内存l构Q物理结构,了解数据库由物理文g到内存是怎么q作的,怎么联系的,靠什么进E来q行理Q虽然说Zh都知?oracle ?SGAQ里面有 shared poolQdb cache {等Q但是ƈ不是所有h都知道他们和操作pȝ是怎么发生联系的?从操作系l物理文件层面,到操作系l内存层面,?oracle 的内存层面,?latchQ到 cacheQ到 lockQ到 transactionQ到 data blockQ之间是怎么发生联系的,了解了其中的关系Q才能对 oracle 有个大致的了解?/p>
上面说的只是单实例的数据库,而现实中Q单实例的数据库往往用的不多Q生产环境往往需要高可用性,因此你必M解各U高可用的架构,RACQdataguardQstreamQcdc {等Q了解这些架构中常见的等待事件是什么,是因为哪个主键引起了q些{待Q了?HACMPQHP MC-SGQ最好能了解一些他们的切换是如何进行的Q依赖的lgQ资源)是什么,是有哪个脚本来控制的Q你是否可以修改脚本来控制切换的行ؓ。在q一斚wQ可能更多的不是了解 oracle 的知识,而是L层面的知识了?/p>
当你有了L层面的知识,你是否还应该考虑一下架构方面的Q数据库是生产系l的核心Q上q应用下q物理设备,你所处的环境中,是一个怎么L|络拓扑图?应用服务器几収ͼ哪些是在防火墙外哪些在防火墙内,应用服务器通过中间件连接数据库Q这里你最好也懂中间g中关于数据库的配|)Q后面是否四层交换机做负载均衡?q接了数据库之后Q数据库L上有几个|卡Q哪个是做冗余,哪个是做备䆾Q哪个是?inter-connectQ数据库后面q有什么,q接光纤交换机的存储是什么,什么型LQ读写速度如何Q做 raid 几,有做存储的同步(BCV/CAQ进行容灑?除了 SANQ还可能接的?NASQ每个卷分给了几个服务器Q是否共享?数据库的备䆾是用哪家的备份工PTSMQNBUQLEGATOQDPQ是走网l还?lanfreeQ另外,数据库肯定有监控Q监控用的什么工P触发的条件如何,监控工具得到的数据是用什么命令获得的Q如何设|不同应用系l的不同告警{Q如何设|不同故障的告警{Q如数据库宕了和偶尔报一?ora-1555的错肯定不是一个等U?/p>
另外Q作Z个有l验?DBAQ你是否心目中有一套常用的性能数据Q如开异步 IO 之后Q主机的 wait IO 多少是正常,不开异步 IO 的如何?数据文g?db file sequence read ?average read time 多少毫秒内是一个大致正常的值等{。这在调优的时候,会很有用。因?statspack 谁都会做Q但是不是h人都能看得懂的?/p>
上述是维?DBA 要知道的事情Q开?DBA 有另外的Q这里不展开了?/p>
上面说的可能都是q货Q很多时候,DBA q需要一些其他的素质Q从我个度讲Q一个高质量?DBA 需要具备以下意识?/p>
能抗压,因ؓ在故障处理的时候,你面临着大量的压力,领导盯着你,客户催着你,你在做故障诊断的时候,q有每隔一D|间汇报你的进度,告诉他们你的xQ如果你没有一定的抗压能力Q在 troubleshoot 的时候,肯定会垮掉的?/p>
反应q速,?troubleshooting 的时候同样也需要反映迅速,面对不断弹出来的对话框要能快速的回应Q时间就是金钱,当你和你客户{订 SLA 的时候,你的数据库v不来Q每一U钟都是q向 SLA 的脚步,反应慢,不行?/p>
会猜QDBA 不可能遇到过所有的问题和故障,在同{的知识水^下,DBA 会猜的能力就能重要,他会中一些线索中扄案,从已知推断未知。打个比方,在一个沙漠机戉K面,没有互联|,你没?googleQ没?metalinkQ一个会“想办法”的 DBA 可能会耗费一定的旉Q但是最l找到解军_法,但是一个“不会想”、“不敢想”的 DBAQ就给他再多的旉Q最l浪费的q是一出差的机票钱?/p>
团队协作的能力,很多情况QDBA 面的问题不仅仅是数据库的问题,刚刚说了数据库是业务核心Q上q应用下q物理设备,DBA 的知识结构往往是T形,x入于一斚w的内容(T的那支脚Q,而对其他的知识只是了解,是广度,即T上面的那一横。对于不熟悉的内容,p表达l别人,请别人帮忙一L。注意,q里是大家一赯决一个问题,而不是把问题推给别h。小公司的团队不太会出现q样的问题,他们往往人数,程,配合紧密Q效率极高;大公叔R面,分工很细。不是一个团队的可能老板也不是一个hQ大家就会互相踢皮球?/p>
强大的自信心和表达能力,在客户那边,如果你诊断出一个问题,但是没有把握Q此时如果你表现的是自信满满Q那么就比较Ҏ说服客户去证实你的猜,另外Q也会比较容易去推行一些做法。相反,如果没有自信Q客h么会相信一个连自己都说服不了自q人?
x行业行情Q我觉得作ؓ一?DBAQ我们不能太“书呆子”,我们q是要了解一下行业八卦,q在和行业内的朋友交谈交的时候,很有好处。说 oracle 有着非常强大法务部门Q相信不h看到q一个图Q从l织l构囄 Google、Facebook、微软等大公司的企业文化「O甅R)Q一天,拉里开着他的跑R回公司,一路飚车,被\边的警察看到速了Q追了上去,拉里一路飙回自q公司Q把车钥匙往法务部门老大的桌子上一放:You deal with itQ?/p>
除了上述的素质,公司也会考察我们其他斚w的东ѝ这些东?DBA 可能觉得不重要,但是公司很看重,Z么?因ؓ它关pd公司的存亡?/p>
程观念Q大公司Z么能生存的久Q因Z有一套完整的程保证所有的人做同样的事情都是同L效果。这听上L好,但是Q当你n处其中的时候,你就会觉得你的技能被压制的。遇C个故障,你接手,如果是小问题Q如 tablespace 满,okQ你开一?change d加对应的大小Qchange 会让所有相关的人员来审核,q且?2 ?DBA ?review changeQ有W三者来部v changeQ因为部|的时候已l是你处理该问题之后的好几天了)Q如果是大问题,如坏块或?ora-600Q那么这个时候就要提?SRQ让 oracle 来做分析Q你完全不需要做什么思考,q你思考出来的l果Q那也是不标准的Q必d SR 中让 oracle 认之后才算。那么这U情况下Q你q愿意去做所谓的 troubleshooting 么?
刚刚只是说了程中的 Incident ManagementQ其他类似的q有好多Q如 Configuration ManagementQChange ManagementQRelease ManagementQProblem ManagementQAvailability ManagementQAsset ManagementQService ContinuityQCapacity ManagementQService Level ManagementQSecurity Management……这些都不是技术上的项目,都是程上的。上q虽然只是一个词l,但是L一条展开了都有可能变?5000 字的论文Q呵c?/p>
所以,公司需要的是一个遵守制度,没有破坏力的 DBAQƈ且这L DBA 又能在它的框架之下,q用他的能力和经验,帮他l护好系l,q且留下文档Q归入知识库中,以便作ؓ为后一代的 DBA 的操作指南。?DBA 是希望能借助公司q个q_更好的展Cq能力Q获取更多的l验Q来提升自己?/p>