`
lizhuang
  • 浏览: 912010 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

转:DBA应该具有什么样的素质?

 
阅读更多
问题起源于在写一份材料的时候,对于自己的反思。
  我把自己的观点发到了 twitter 和各大微博上,有不少朋友纷纷回复我。这这里,先感谢各位,因为有各种思想的交锋,观点的交流,让讨论变得很有意义。
  我们究竟要成为一个怎么样的 DBA,公司究竟需要一个怎么样的 DBA?作为一个 DBA 应该须有怎么样的素质?
  首先作为一个 DBA,数据库的基本功很重要,了解数据库的内存结构,物理结构,了解数据库由物理文件到内存是怎么运作的,怎么联系的,靠什么进程来进行管理,虽然说人人都知道 oracle 有 SGA,里面有 shared pool,db cache 等等,但是并不是所有人都知道他们和操作系统是怎么发生联系的?从操作系统物理文件层面,到操作系统内存层面,到 oracle 的内存层面,到 latch,到 cache,到 lock,到 transaction,到 data block,之间是怎么发生联系的,了解了其中的关系,才能对 oracle 有个大致的了解。
  上面说的只是单实例的数据库,而现实中,单实例的数据库往往用的不多,生产环境往往需要高可用性,因此你必须了解各种高可用的架构,RAC,dataguard,stream,cdc 等等,了解这些架构中常见的等待事件是什么,是因为哪个主键引起了这些等待,了解 HACMP,HP MC-SG,最好能了解一些他们的切换是如何进行的,依赖的组件(资源)是什么,是有哪个脚本来控制的,你是否可以修改脚本来控制切换的行为。在这一方面,可能更多的不是了解 oracle 的知识,而是主机层面的知识了。
  当你有了主机层面的知识,你是否还应该考虑一下架构方面的,数据库是生产系统的核心,上连应用下连物理设备,你所处的环境中,是一个怎么样的网络拓扑图?应用服务器几台?哪些是在防火墙外哪些在防火墙内,应用服务器通过中间件连接数据库(这里你最好也懂中间件中关于数据库的配置),后面是否四层交换机做负载均衡?连接了数据库之后,数据库主机上有几个网卡,哪个是做冗余,哪个是做备份,哪个是做 inter-connect,数据库后面还有什么,连接光纤交换机的存储是什么,什么型号的,读写速度如何?做 raid 几,有做存储的同步(BCV/CA)进行容灾吗?除了 SAN,还可能接的是 NAS,每个卷分给了几个服务器?是否共享?数据库的备份是用哪家的备份工具,TSM?NBU?LEGATO?DP?是走网络还是 lanfree?另外,数据库肯定有监控,监控用的什么工具,触发的条件如何,监控工具得到的数据是用什么命令获得的?如何设置不同应用系统的不同告警等级?如何设置不同故障的告警等级?如数据库宕了和偶尔报一个 ora-1555的错肯定不是一个等级。
  另外,作为一个有经验的 DBA,你是否心目中有一套常用的性能数据,如开异步 IO 之后,主机的 wait IO 多少是正常,不开异步 IO 的如何?数据文件的 db file sequence read 的 average read time 多少毫秒内是一个大致正常的值等等。这在调优的时候,会很有用。因为 statspack 谁都会做,但是不是人人都能看得懂的。
  上述是维护 DBA 要知道的事情,开发 DBA 有另外的,这里不展开了。
  上面说的可能都是干货,很多时候,DBA 还需要一些其他的素质,从我个人角度讲,一个高质量的 DBA 需要具备以下意识。
  能抗压,因为在故障处理的时候,你面临着大量的压力,领导盯着你,客户催着你,你在做故障诊断的时候,还有每隔一段时间汇报你的进度,告诉他们你的想法,如果你没有一定的抗压能力,在 troubleshoot 的时候,肯定会垮掉的。
  反应迅速,在 troubleshooting 的时候同样也需要反映迅速,面对不断弹出来的对话框要能快速的回应,时间就是金钱,当你和你客户签订 SLA 的时候,你的数据库起不来,每一秒钟都是迈向 SLA 的脚步,反应慢,不行。
  会猜,DBA 不可能遇到过所有的问题和故障,在同等的知识水平下,DBA 会猜的能力就能重要,他会中一些线索中找答案,从已知推断未知。打个比方,在一个沙漠机房里面,没有互联网,你没法 google,没法 metalink,一个会“想办法”的 DBA 可能会耗费一定的时间,但是最终找到解决办法,但是一个“不会想”、“不敢想”的 DBA,就算给他再多的时间,最终浪费的还是一趟出差的机票钱。
  团队协作的能力,很多情况,DBA 面临的问题不仅仅是数据库的问题,刚刚说了数据库是业务核心,上连应用下连物理设备,DBA 的知识结构往往是T形,即深入于一方面的内容(T的那支脚),而对其他的知识只是了解,是广度,即T上面的那一横。对于不熟悉的内容,就要表达给别人,请别人帮忙一起看。注意,这里是大家一起解决一个问题,而不是把问题推给别人。小公司的团队不太会出现这样的问题,他们往往人数少,流程少,配合紧密,效率极高;大公司里面,分工很细。不是一个团队的可能老板也不是一个人,大家就会互相踢皮球。
  强大的自信心和表达能力,在客户那边,如果你诊断出一个问题,但是没有把握,此时如果你表现的是自信满满,那么就比较容易说服客户去证实你的猜测,另外,也会比较容易去推行一些做法。相反,如果没有自信,客户怎么会相信一个连自己都说服不了自己的人?
  关注行业行情,我觉得作为一个 DBA,我们不能太“书呆子”,我们还是要了解一下行业八卦,这在和行业内的朋友交谈交流的时候,很有好处。说 oracle 有着非常强大法务部门(相信不少人看到过一个图,从组织结构图看 Google、Facebook、微软等大公司的企业文化「漫画」),一天,拉里开着他的跑车回公司,一路飚车,被路边的警察看到超速了,追了上去,拉里一路飙回自己的公司,把车钥匙往法务部门老大的桌子上一放:You deal with it!
  除了上述的素质,公司也会考察我们其他方面的东西。这些东西 DBA 可能觉得不重要,但是公司很看重,为什么?因为它关系到公司的存亡。
  流程观念,大公司为什么能生存的久,因为他有一套完整的流程保证所有的人做同样的事情都是同样的效果。这听上去挺好,但是,当你身处其中的时候,你就会觉得你的技能被压制的。遇到一个故障,你接手,如果是小问题,如 tablespace 满,ok,你开一个 change 去增加对应的大小,change 会让所有相关的人员来审核,并且有 2 个 DBA 来 review change,有第三者来部署 change(因为部署的时候已经是你处理该问题之后的好几天了);如果是大问题,如坏块或者 ora-600,那么这个时候就要提交 SR,让 oracle 来做分析,你完全不需要做什么思考,就算你思考出来的结果,那也是不标准的,必须在 SR 中让 oracle 确认之后才算。那么这种情况下,你还愿意去做所谓的 troubleshooting 么?
  刚刚只是说了流程中的 Incident Management,其他类似的还有好多,如 Configuration Management,Change Management,Release Management,Problem Management,Availability Management,Asset Management,Service Continuity,Capacity Management,Service Level Management,Security Management……这些都不是技术上的项目,都是流程上的。上述虽然只是一个词组,但是任意一条展开了都有可能变成 5000 字的论文,呵呵。
  所以,公司需要的是一个遵守制度,没有破坏力的 DBA,并且这样的 DBA 又能在它的框架之下,运用他的能力和经验,帮他维护好系统,并且留下文档,归入知识库中,以便作为为后一代的 DBA 的操作指南。而 DBA 是希望能借助公司这个平台更好的展示自己的能力,获取更多的经验,来提升自己。
  博弈在继续……一方认为自己是黑客帝国中的 Nero,另一方则努力把对方变成一个普通人。
分享到:
评论

相关推荐

    趣谈无为而治的DBA生涯

    首先,DBA的综合素质要求广泛,包括但不限于技术能力、问题解决技巧和沟通技能。他们需要精通多种数据库管理系统,如Oracle、MySql和DB2,这些是业界广泛应用的数据库平台。对于Oracle,DBA需要掌握其复杂的存储结构...

    甘肃农业大学341农业知识综合三( “数据库技术与应用”部分)2021年考研专业课初试大纲.pdf

    通过考试,能够评估考生是否具备攻读农业推广方向专业硕士学位所需的综合素质、基础能力和潜在发展能力,进而筛选出具有良好发展潜力的人才,为我国的经济发展培养一批具备高水平分析解决问题能力的高级应用型和复合...

    基于SpringBoot+Vue的“智慧食堂”设计与实现(Java毕业设计,包括源码、数据库、教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

    历届奥运会奖牌数据(1896-2024年).xlsx

    本次分享的数据为1896年-2024年(从雅典到巴黎)间奥运会奖牌数据,包括年份、届次、国家地区、名次、金牌、银牌、铜牌等数据,含免费下载链接 ## 一、数据介绍 数据名称:历届奥运会奖牌数据 数据范围:世界各国 样本数量:1877条 数据年份:1896年-2024年 数据说明:包括届次、国家、名次等数据

    基于SpringBoot+Vue的实习管理系统(Java毕业设计,包括源码、数据库、教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

    【人机交互】MATLAB直车道线检测.zip

    【人机交互】MATLAB直车道线检测

    基于SSM+JSP的KTV点歌系统+数据库(Java毕业设计,包括源码,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

    基于SSM+JSP的课程在线教育资源管理系统(1)+数据库(Java毕业设计,包括源码,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

    2023年计算机硬件的组装实验报告.pdf

    2023年计算机硬件的组装实验报告.pdf

    springboot大学生租房系统 LW PPT.zip

    ava项目springboot基于springboot的课程设计,包含源码+数据库+毕业论文

    Flutter分析:带有质量平衡部分机翼的MATLAB计算(含Elastic轴与中心对齐)

    内容概要:本文档主要针对含有质量平衡段(即弹性轴和重心重合点xa=0)的硬翼Flutter问题提供了MATLAB解决方案。文档通过迭代的方式对一系列参数(如频率比(fr)、弹性轴(E)和半径(r)等)进行操作,并利用贝塞尔函数(Kn)来评估flutter速度(UFhat),从而预测了不同质比(mu)下flutter的缩减速度变化情况。同时,文档包含了绘图命令以视觉展示减小颤振速度随质量比变化的趋势以及相应的MATLAB代码。 适合人群:航空工程、飞行器动力学领域的科研工作者,工程师及研究生。尤其是那些从事飞行安全性和稳定性研究的专业人士。 使用场景及目标:主要用于解决飞行器设计过程中遇到的具体颤振问题,能够为设计新型飞机或其他有翼飞行物体提供科学依据和技术支持。它还能够辅助教育,帮助相关专业的学生理解flutter现象及其预防措施。 其他说明:此文件是以数值方法探讨带质量平衡的翅膀颤振特性的实例,在工程上有着重要意义。对于希望深入学习此类问题的人来说,这是一个极好的参考资料和实验平台。然而,实际应用还需要进一步考虑真实条件下的复杂因素,因此需要更多的专业知识和背景资料的支持。

    基于JAVA的机场航班起降与协调管理系统&毕业设计&毕业论文&数据库&演示视频&源代码

    本次项目是设计一个基于JAVA的机场航班起降与协调管理系统。 (1)在经济可行性上来分析的话,该软件是机场内部使用的一个指挥协调软件,属于航空安全投资,本软件开发成本并不高,软件和服务器数据库可以用机场原有的数据库进行开发,比起空难给航空公司造成的损失来说九牛一毛。 (2)在技术可行性上来分析的话,该软件主要运用了Java技术、jQuery-easyui和Mysql数据库技术。Java是到目前来说最稳定的、最可靠的软件开发工具;jQuery-easyui虽然是比较新的前台开发技术,但是他的界面新颖整洁,适合于功能性软件的开发;Mysql数据库也是许多大公司都采用的软件项目开发数据库,不仅稳定而且性能可靠,可以用作本次软件的开发。 (3)在法律可行性上来分析的话,该软件使用的技术都为开源的软件开发工具和语言,虽然Java等开发技术都存在Sun公司的版权问题,但是Java技术是可以免费使用的,没有涉及到法律上的侵权。 (4)在方案可行性上来分析的话,此次软件开发的很大一部分精力都放在了软件的需求分析和设计方面,设计出来的软件可以很好地去实现我们所要完成的软件预先设计的功能。

    2023年计算机与通信网络实验报告.pdf

    2023年计算机与通信网络实验报告.pdf

    2023年四川省德阳市统招专升本计算机自考真题(含答案).pdf

    2023年四川省德阳市统招专升本计算机自考真题(含答案).pdf

    基于SSM+JSP的农产品供销服务系统+数据库(Java毕业设计,包括源码,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

    篮球论坛系统--论文.zip

    Java项目基于springboot的课程设计,包含源码+数据库+毕业论文

    基于SpringBoot+Vue的致远汽车租赁系统(Java毕业设计,包括源码、数据库、教程).zip

    Java 项目,仅供学习参考。 Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

    GUI面板MATLAB答题纸试卷自动识别.zip

    GUI面板MATLAB答题纸试卷自动识别

    Java毕业设计-SpringBoot+Vue的班级综合测评管理系统(附源码、数据库、教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

    springboot大学生体质测试管理系统--论文.zip

    ava项目springboot基于springboot的课程设计,包含源码+数据库+毕业论文

Global site tag (gtag.js) - Google Analytics