当前位置: 首页 > news >正文

你希望成为一名合格的DBA吗?

近年来,我一直在和数据库管理员打交道,并直接面试了很多DBA职位。本文想概括一下IT行业对DBA的要求,以及国内DBA的新资现状。可以肯定地说,做一个高级DBA是很不错的职业。如果你打算成为一名DBA,那么希望本文起到抛砖引玉的作用。
什么是DBA

数据库管理员,英文是Database Administrator,简称DBA。这个职位对不同的人意味着不同的意义。一个小的软件开发工作室和一个分工高度明细的大公司相比,DBA的职责来得更加宽泛一些。一个公司,不管它是自己开发应用软件,还是购买第三方的应用软件,只要涉及到数据库(有多少不涉及数据库的应用软件呢?数据库是商业的灵魂和大脑啊),就需要确定是否雇佣一个或几个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是至关重要的。下面我列出了DBA的一些职责:

安装和升级数据库服务器(如Oracle、Microsoft SQL server),以及应用程序工具。

数据库设计系统存储方案,并制定未来的存储需求计划。

一旦开发人员设计了一个应用,就需要DBA来创建数据库存储结构(tablespaces)。

一旦开发人员设计了一个应用,就需要DBA来创建数据库对象(tables,views,indexes)。

根据开发人员的反馈信息,必要的时候,修改数据库的结构。

登记数据库的用户,维护数据库的安全性。

保证数据库的使用符合知识产权相关法规。

控制和监控用户对数据库的存取访问。

监控和优化数据库的性能。

制定数据库备份计划,灾难出现时对数据库信息进行恢复

维护适当介质上的存档或者备份数据

备份和恢复数据库

联系数据库系统的生产厂商,跟踪技术信息。

DBA的个性特点

很多时候管理人员都忽视了DBA的个性特点,他们只关注DBA的技术能力。实际上,上面谈到的每个职责都意味着:DBA需要跟各种人员打交道,这些人员可能是销售商、用户、开发人员或者管理人员。这说明:DBA必须具有下面的个性特点:

自信心/好奇心/坚韧的意志力/老练/自我驱动/注意细节

为什么这些个性特点很重要呢?

我就有几个缺乏自信心的部下,他们反复问我一些事无巨细的问题,他们没有信心哪怕做最小的决定。他们也缺乏工作的主动性。这对于初级DBA来说可能问题不太大,但对于那些高级DBA来说,如果他们缺乏自信心,他们又可以依赖谁帮他们决策呢?在DBA的面试中,即使你不能回答某个技术问题,你也要表现出足够的自信心。最致命的不是不知道问题的答案,而是不知道从哪儿得到答案。

几乎所有的数据库系统都在不停地更新。但并不是所有的更新都有技术文档。对于好的DBA来说,好奇心是必需的。没有好奇心和求知欲的DBA总是等待有人告诉他们答案。而一个求知欲强的DBA将安装最新版本的数据库系统,并立即开始搜寻那些哪怕是细微的功能和性能上的差异和增强,从而改进自己的工作。应试时一个必然问及的问题是:你手头有哪些参考资料?你如何使用它们?毫无疑问,如果你只回答了数据库的文档,或者你甚至没有读过他们,你的"股票市值"将大大下降。好奇心会驱使DBA们理解数据字典(Data Dictionary)、管理工具(Tools)或者其他支持包(Packages)。

DBA常常会碰到棘手的问题。寻找答案是一个需要坚韧意志力、可以经受摔打的个性特点。我常常在一些讨论组或者论坛上看到DBA们提出的问题,这些问题往往是提问者自己可以解决的,如果他们具有坚韧的个性特点,并努力寻求问题的答案。

自我驱动对每个人都是很重要的,对DBA尤其如此。DBA要能想办法使问题出现,而不是等待问题的出现。自驱力强的DBA常常设法取得或者自己写一些必要的脚本(Script)来监控包括数据表大小(Table Size)、表空间使用(Tablespace Usage)等项目,这些项目如果被忽视,他们将遇到麻烦。应试的时候DBA们常常被问及在PL/SQL、SQL或者SQL*PLUS方面的经验,这些问题将把你从从来没有编写过自己需要的脚本的那些DBA们区分开。

不用说和用户,就是和程序员和管理人员打交道,也需要你足够老练。一个一点不会处事的DBA不会为你做什么好事,只会在你的部门点燃敌对情绪的烈火。老练是这样一种能力,你劝告某个人到地府去,哈哈,最后这个人怀着渴望的心情去了。很多时候,开发者、管理者、用户,他们会提出毫无道理的需求,DBA们需要老练地引导、修正它们的要求,说服他们。在应试时,你的应对就很能说明你是否老练。

最后说说注意细节,这种性格倾向非常重要。注意细节的DBA们衣着整洁,有自己的日程安排,在应试前对应聘的单位做过调查。注意细节的DBA们深入了解数据库的内核,并能理解视图、表之间的关系。

DBA的等级

DBA的等级并不是很严格的。按照对数据库的掌握情况,我简单地分成三个等级:初级Primary、中级Intermediate和高级Senior。

初级DBA又称为DBBS,是英文Database Baby Sitter的缩写。初级DBA常常是兼职的,他们往往同时是程序员或者兼任其他的工作。初级DBA往往把个人简历写得很棒,参与了很多和数据库有关的项目或工作。但是,这些项目或者工作往往是:第三方软件供应商已经安装并配置了数据库,他们只做一些监控的工作。他们能处理一些简单的问题,但大多数时候他们向应用软件供应商求救。初级DBA更喜欢图形化的数据库管理或者监控工具,他们喜欢Access这样的桌面数据库简单易用,并把这些小型数据库的经验简单地应用到大型数据库相关的工作中。

初级DBA是最好区分的。而中级DBA和高级DBA就不太好区分。他们的差别在于经验的不同和个性特点、能力方面的差异。中级DBA比较多,他们可以胜任高级DBA的大部分工作,包括:

数据库安装/数据库配置和管理/权限设置和安全管理/监控和性能调节/备份和恢复/解决一般的问题

中级DBA往往从业一年左右,熟悉某种操作系统环境下的数据库。因为对中级DBA来讲,Windows NT和Unix是有很大差别的。中级DBA对SQL比较熟悉,他们自己购买了几本数据库方面的书籍,并深入钻研。中级DBA往往同时兼任数据库程序员,他们的工作对性能、稳定性、安全性的追求基本上不是很高,往往配合高级DBA做一些例行工作。

高级DBA在国内是非常少的。他们购买了太多的数据库方面的英文资料,也许是托朋友从Amazon买的。相对于他们的报酬来讲,买书的钱是很少的一个比例。高级DBA一般都熟悉很多种操作平台下的几种大型数据库。他们知道各种不同数据库在不同环境下的优势和劣势,并能在数据库平台和数据库环境的选择方面做出决策。他们一般通晓系统架构和数据库设计,并能对数据库进行各种级别的优化。高级DBA一般都配有助手,他们更偏向做决策和计划。高级DBA往往在银行业、保险业、在线交易等对稳定性、安全性、性能都要求比较高的关键业务处理领域大显身手。

很多时候,是否取得数据库专家认证证书并不是很重要。我知道很多数据库厂商的培训只要你去了都会获得证书。有很多的公司提供商业化的培训,他们的服务质量也有好有劣。所以证书并不是特别地有意义。

相关文章:

  • 一个奇怪的语言现象
  • 代码风格重构注意事项
  • 再读J1939协议
  • oracle SQL性能优化
  • J1939术语对照表
  • PDU处理过程--接收流程
  • WDSL中的XML元素
  • 理解J1939通信消息类型
  • WEB?
  • 传输协议的传输次序
  • Welcome back, Thom!
  • SAE J1939 – 简短介绍
  • Context Free Art以及FMF Direct Draw构想
  • GPS扫盲
  • U-BLOX GPS 模块及GPRMC指令解析
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • Angular 2 DI - IoC DI - 1
  • eclipse(luna)创建web工程
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • java第三方包学习之lombok
  • Linux各目录及每个目录的详细介绍
  • mac修复ab及siege安装
  • MySQL-事务管理(基础)
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • rc-form之最单纯情况
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 解析 Webpack中import、require、按需加载的执行过程
  • 离散点最小(凸)包围边界查找
  • 入门到放弃node系列之Hello Word篇
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 提醒我喝水chrome插件开发指南
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​2021半年盘点,不想你错过的重磅新书
  • ​Spring Boot 分片上传文件
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #if #elif #endif
  • #考研#计算机文化知识1(局域网及网络互联)
  • (06)金属布线——为半导体注入生命的连接
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (万字长文)Spring的核心知识尽揽其中
  • (转)德国人的记事本
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .Net CoreRabbitMQ消息存储可靠机制
  • .net访问oracle数据库性能问题
  • .net开发时的诡异问题,button的onclick事件无效
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .net网站发布-允许更新此预编译站点
  • .Net中wcf服务生成及调用
  • /proc/vmstat 详解
  • @FeignClient注解,fallback和fallbackFactory
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)