![如何做一名成功的DBA 原创](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
第一次参加OTN Tour这样的Oracle技术大会,不仅再一次领略到Eygle、Kamus、崔华这样的国内技术大牛的风采,还有幸见到了像Francisco Munoz Alvarez、Ronald Bradford这样的国外牛人。当然,自己在数据库技术领域还只能算是一个小学生,毕竟没有技术背景,所以听OTN的演讲大多数时候还是属于听天书一般。但是Francisco的Keynote还是给我留下了很深的印象,这位Oracle ACE总监向在座的技术爱好者讲述了如何成为一个成功的DBA。
Francisco算是全球知名的Oracle专家,他还被Oracle Magazine评为年度最佳Oracle ACE总监,他给人的感觉总是带着一份轻松幽默与随和,对于技术充满热情。在杂志的采访中,Francisco称自己最喜欢帮助用户解决实际问题,这是一个提高自身实力的很好的途径。他的博客每月都有超过2万的点击率,其中有许多用户都从他这里得到了帮助。这位出生在智利的南美人现在住在新西兰,同时担任了许多Oracle用户组的负责人。
Francisco在演讲中建议DBA,要端正自己对工作的态度,认真积极地面对工作和人生。其中他讲到了三个原则:1、保护好你的数据;2、勇于尝试;3、备份、备份再备份。Francisco强调了第一点原则的重要性,称DBA的天职就是将企业的数据保护好,永远不要让自己处于被动的境地,同时他认为DBA在保护好数据的基础上还应该考虑到性能的问题。不要轻信任何理论和经验,DBA一定要亲自去尝试,并时刻注意备份,因为你永远不知道下一秒会发生什么。DBA不是一项轻松的工作,许多企业需要DBA 7*24小时待命,能力越大责任也就越大。
在讲述完DBA三大原则之后,Francisco还为DBA提供了一些小技巧:
数据库备份
首先针对最基础的备份问题,他强调DBA永远不要有侥幸的心理,每一个系统都不同,最好在数据变化的前后都做好备份,并尽可能地对备份加密以保障安全性。这样可以降低风险,进行回滚的时候更容易,最重要的是,它能够保住你的工作。Francisco建议每天都将归档日志备份到磁带,并生成Datapump以备逻辑恢复。在这里他举了一个反例,T-Mobile由于疏忽导致用户数据永久性丢失,从而造成损失,如果这样的事情会发生在T-Mobile,那么它也会发生在你的公司。
分离环境
Francisco在谈到公司内部IT环境的时候,建议将开发、测试以及生产系统进行分离,这里可以考虑虚拟化解决方案,开发人员只能对DEV环境拥有完全访问权,并加强测试和生产环境的安全保障。这有助于系统的可用性和性能,保持业务连续性并有效降低风险。
记录每一个变更
数据库内的一个微小变更都可能会产生巨大的影响,DBA绝对不能忽视这一点。Francisco建议DBA跟踪每一个变更,在获得所有许可后再应用变更。这样能够更好地回顾流程,保证数据库安全并提升DBA效率。
突发事件优先处理
对于每一个公司来说都会处理一些突发的事件,有时还会影响到整个业务的连续性。因此DBA需要对突发事件进行优先处理,检测问题的根源,思考如何能够防止此类问题再次发生,并记录自己解决问题的具体步骤和方法。
避免死锁
Francisco指出,DBA在应对死锁问题时,应该在外键上创建索引并检查OLTP环境中的所有Bitmap索引,这对数据库性能有极大的帮助。
自动化处理
在可能的情况下,尽量将一些工作和流程进行自动化的设置,因为你还有许多更重要的工作要做,这可以节省大量的时间。
Oracle Home
每一个升级或者打补丁都使用不同的oracle home,能够有效地降低风险,回滚也变得更轻松。
数据库初始化参数
DBA要主动设置好数据库初始化的参数,建议设定_trace_files_public = TRUE,因为你可能需要为开发人员提供某些跟踪文件的访问权限。
.LOG文件名
redo日志的后缀可以改用.rdo,防止误删重要的日志文件。
元数据库
建议创建自己的元数据库,并对
$ expdp user/password content=metadata_only full=y directory=datapump dumpfile=metadata_24112010.dmp;
$ impdp user/password directory=datapump dumpfile= metadata_24112010.dmp sqlfile=metadata_24112010.sql
使用datapump。
无OFA布局
Francisco建议使用
/oracle/(prod/qa/test/dev)/SID/*
/u01/udump – for user files
/proddata/SID/*
/prodbackup/SID/*
/prodlogs/SID/*
最后,Francisco强调了学习的重要性,对于一个DBA来说应该是学无止境的,我曾经也提到过这个问题。DBA不要觉得自己什么都会什么都了解,国内的Oracle大牛崔华每天都会去Metalink上看几篇文章,这样的习惯一直坚持到现在,据他自己所说,如果哪天不学习一下,就会觉得浑身不自在。我觉得这才是一个高手应该做到的。另外,Francisco还建议DBA多参加一些技术活动,在国内ACOUG每月都会举办活动,这也是一个很好的交流平台。