DBA(职业名称)

2023-02-02 77阅读

温馨提示:这篇文章已超过532天没有更新,请注意相关的内容是否还可用!

DBA

职业名称

数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统的相关工作人员的统称,是属于运维工程师的分支,主要负责业务数据库从设计、测试到部署交付的生命周期管理。核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。

中文名数据库管理员
英文名Database Administrator
简称DBA
工作内容负责管理维护数据库服务器
主要负责业务数据库从设计、测试等

重要性

一个小的软件开发工作室和一个分工高度明细的大公司相比,DBA的职责来得更加宽泛一些。一个公司,不管它是自己开发应用软件,还是购买第三方的应用软件,只要涉及到数库就需要确定是否雇佣一个或几个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是至关重要的。

职业技能

技术是指DBA执行一项任务时所需要的技能。在数据库环境的管理与维护中,技术任务可归结成许多不同的分类。下面列出了一名DBA应掌握的一些技术(排名不分先后)。

理解数据备份/恢复与灾难恢复

恢复已损坏的数据库是每一个DBA应掌握的最重要的技能。DBA需要完全理解数据库所有可能的备份与恢复方法,以及不同备份方法与不同恢复策略的对应关系。此外,DBA还需要与业务部门合作,一起确认业务需求,明确用户能够容忍的数据丢失底线。此外,业务用户还需要确定在系统故障情况下,他们的业务能够维持多长时间。理解这些需求可以帮助DBA开发出一个满足业务用户要求的备份/恢复方法。一个优秀的DBA要定期测试备份与恢复流程,保证他们有能力恢复业务数据,满足企业所规定的业务数据丢失与恢复要求。

工具集的使用

所谓工具集,指是的他们要有一组用于执行不同DBA任务的脚本。这个工具集应该包含不同的小代码片段,它们可以快速诊断问题或执行一个特定的任务。这些工具脚本应该按DBA的活动类型归类,如备份、索引维护、性能优化、容量管理等。由于总是会执行新任务、发现新问题或找到其他人开发的好用脚本,因此一个优秀的DBA会不断地给这个工具集增加新脚本。此外,他还应该了解网上哪里能够找到一些免费的工具和脚本。一个好的DBA知道什么时候可以利用其他人编写的脚本,从而节省自己的时间和改进自己的工具集。

知道如何使用原生性能工具

以SQL Server举例,性能是一个关键的问题,因此DBA需要知道如何修复故障和监控性能问题。有许多第三方性能监控工具可以帮助DBA优化性能。如果DBA只使用第三方工具,而不会使用SQL Server自带的原生工具来监控性能,那么相信很快就会出现问题。虽然使用第三方工具来监控性能也很不错,但是DBA一定要理解SQL自带的一些原生工具,如SQL Server Profiler、Database Engine Tuning Advisor、Dynamic ManagementViews、系统/扩展的存储过程、Extended Events等。许多第三方工具实际上在使用这些底层的原生工具。因此,理解这些自带的原生工具将有利于增强DBA使用第三方工具的经验。

研究新版本

在技术领域中,没有什么是一成不变的。每隔两三年,主流数据库厂商都会发布一个大版本的更新。DBA应该紧跟新版本所作的修改,它们可能有许多变化方法,最好的方法是迟早介入这个过程。测试版开放后马上下载和安装,尽快掌握第一手使用经验。一名好的DBA总是走在学习排头兵,总是会第一时间安装和测试新版本。这样他们就可以尽早理解新特性,然后提出一些合理的新建议,帮助组织更好地利用新版本数据库。

理解代码最佳实践方法

DBA应该了解如何编写高效的代码。有许多糟糕的编码实践方法会导致拙劣的性能。一名好的DBA要能够理解和识别这些糟糕的编码实践方法,知道如何修改这些烂代码,让它们变成高效代码。此外,他们还要记录下写代码的最佳实践方法,并且将这些实践方法分享给其他人。

持续不断地学习

数据库及其组件涉及面非常广。DBA很难理解一个技术的方方面面。DBA需要持续学习如何管理数据库。这个学习过程有很多方法。其中之一就是参加正式培训。但是,并非人人都有这样充裕的事件和金钱,也并非人人都能够放下手头工作专门出去参加正式的培训。但是,还有许多其他方法可以获得培训,而且大多数还是免费的。一名好的DBA一定要订阅一些定期发布数据库新技巧和新文章的社区网站。此外,他还应该加入一些用户组织,可以在周末参加一些当地的免费沙龙活动。

数据库安全性

安全性是一个热门话题。DBA应该完全掌握如何实现数据库的安全访问。他们应该理解操作系统身份验证和数据库身份验证的区别,以及它们各自的使用场合。他们应该理解如何使用数据库角色来管理不同类型用户的安全配置。他们应该理解连接数据库的端口与协议。此外,他们还应该理解如何加密整个数据库,或者加密一个数据库中一个表的某一个字段,同时理解关于加密数据的各种问题。

数据库设计

决定数据库性能的一个关键问题是数据库设计。DBA需要理解关于数据库设计的各个方面。他们要能够理解设计好坏的区别。他们需要理解为什么使用正确的外键约束、主键、检查约束和使用数据类型能够保持数据库的数据完整性和实现高效的数据查询与更新。

索引设计

数据库索引是提高应用程序检索和更新数据速度的重要环节。DBA需要知道索引的工作原理。他们应该知道聚簇索引和非聚簇索引的区别,知道这些索引的物理存储方式。DBA应该知道如何在执行计划中使用这些索引。他们应该理解如何找到索引的使用统计、理解索引碎片及如何发现丢失的索引。他们应该知道如何维护索引,以及索引统计信息对于查询引擎的重要作用。

容量监控与规划

数据库往往要使用大量的资源,包括CPU、内存、I/O及磁盘空间。DBA应该理解如何监控数据库所需要的不同主机资源的用量。他们应该能够理解这些资源在不同时间的使用情况,以及利用历史使用数据来规划未来的容量需求。在监控过程中,DBA应该能够预见到容量规划会在将来什么时候出现问题,然后采取必要的措施保持数据库不会因为容量限制而出现中断。

数据库许可证

不同的产品有许多不同的许可证授权方式。而且,同一款产品本身又有许多不同的版本。DBA应该理解所负责的数据库版本的不同授权模式。他们应该能够提供指导如何通过合理购买授权来减少数据库总拥有成本,以及如何合理利用授权方法来降低未来版本的升级成本。

尽可能实现自动化

DBA每天都需要执行许多的日常任务。其中一些任务需要每天执行,而另一些则每周、每月或每年执行。一名好的DBA需要理解如何高效地安排自己的时间。其中一种方法是建立工作流程,这些日常任务的自动执行。通过实现日常任务的自动化执行,DBA就可以用更多的时间去关注于数据库环境管理中遇到的严重问题。

性格要求

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

几乎所有的数据库系统都在不停地更新。但并不是所有的更新都有技术文档。对于好的DBA来说,好奇心是必需的。没有好奇心和求知欲的DBA总是等待有人告诉他们答案。而一个求知欲强的DBA将安装最新版本的数据库系统,并立即开始搜寻那些哪怕是细微的功能和性能上的差异和增强,从而改进自己的工作。

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

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

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

职业等级划分

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

初级DBA又称为DBBS,是英文Database Baby Sitter的缩写。初级DBA常常是兼职的,他们往往同时是程序员或者兼任其他的工作。初级DBA往往把个人简历写得很棒,参与了很多和数据库有关的项目或工作。

但是,这些项目或者工作往往是:第三方软件供应商已经安装并配置了数据库,只做一些监控的工作。能处理一些简单的问题,但大多数时候他们向应用软件供应商求救。初级DBA更喜欢图形化的数据库管理或者监控工具,他们喜欢Access这样的桌面数据库简单易用,并把这些小型数据库的经验简单地应用到大型数据库相关的工作中。

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

1、数据库安装;

2、数据库配置和管理;

3、权限设置和安全管理;

4、监控和性能调节;

5、备份和恢复;

6、解决一般的问题;

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

高级DBA在国内是比较少的。高级DBA一般都熟悉很多种操作平台下的几种大型数据库。他们知道各种不同数据库在不同环境下的优势和劣势,并能在数据库平台和数据库环境的选择方面做出决策。他们一般通晓系统架构和数据库设计,并能对数据库进行各种级别的优化。高级DBA一般都配有助手,他们更偏向做决策和计划。高级DBA往往在银行业、保险业、在线交易等对稳定性、安全性、性能都要求比较高的关键业务处理领域大显身手。

职业常用系统

最“容易”的数据库系统-Microsoft SQL Server

如果你打算做一个DBA,建议你选择那些比较流行的数据库系统。这意味着你将有更多的就业机会、交流和培训机会,而且,流行自有流行的理由,你可以因此省心很多。当然,就业竞争压力也比较大。一般的入门者选择Microsoft SQL Server,这是非常适合中小型企业的数据库系统,熟悉Access的读者很容易就能初步使用Microsoft SQL Server,成为一个DBBS。

Microsoft SQL Server 7.0的报价,5用户版1399美金,增加用户时,127美金每用户。

最“难”的数据库-无冕之王Oracle

如果你有机会接触到Oracle,那可是个好机会。Oracle是目前最看好的数据库厂商,由于其强大的功能和可配置、可管理能力,Oracle DBA的薪资一般比其他数据库管理员的薪资要高。而且,Oracle在大中型企业的关键应用也更加普遍了。Oracle可以运行在Windows NT、Sun Solaris、Linux等平台下。很多情况下要求你不仅仅熟悉NT,还要你熟悉Unix;而且Oracle不太友善的界面和成箱的Oracle产品资料可能也是一个障碍。

Oracle 8i标准版的报价,如果运行在Windows NT,附带JServer和interMedia,支持5个并发用户,报价是3925美金每CPU。增加并发用户时,785美金每用户。增加附加的命名用户时,392.5美金每用户。

数据库系统的贵族-IBM UDB/DB2

作为30年数据库研究的成果,IBM DB2确实称得上“数据库系统的贵族”。不管是小型商业系统,还是大的银行系统,用DB2都是可以高枕无忧的。当前推出的新版DB2 6.1,管理和调节工具更加卓越和便于使用。DB2 可以运行在Intel架构上,也可以运行在IBM的S/390大型计算机上。如果你所在的行业对IBM的机器特别地称道,建议你学习IBM DB2。

DB2有两种版本:工作组版和企业版。工作组版999美元每服务器,外加249美元每个并发用户。而企业版是12500美元每个CPU,不限并发用户数量。

以Java为中心的数据库-Sybase Adaptive Server Enterprise(ASE) 12.0

即将发布的Sybase ASE 12.0,直接面向Java程序员。这种以Java为中心的数据库系统,为那些准备在Java平台下构建企业应用的企业来说,将是最好的选择。但是ASE称不上一个数据库领域的领先者,尽管相对于它以前的版本已经改进很多,并支持多个CPU和更多的并发,还有很多的新的特性。但Sybase的风光似乎已经不再。

值得期盼的Informix Centaur

有时候“第一”只是意味着你的对手需要等待更长的时间去赶上你。这正是1997年创立的Informix所面临的。Informix公司是率先将多媒体特性加入到关系数据库系统的大型数据库厂商之一。但是如今,IBM、Oracle、Sybase都已经跨越了这个概念。所以,Informix不得不寻求新的支撑来使自己区别于其他数据库厂商。这就是Informix Centaur的目标。Informix Centaur结合了Informix Dynamic Server 7.3的对象-关系数据库和Informix Universal Data Option 9.1,意在获得更好的适应性和多媒体支持。详情如何,我们拭目以待!

职责

拥有大容量和复杂数据库的公司通常任命数据库管理员,根据所用的应用程序和软件系统来指导数据库分析员和程序员。数据库管理员必须与科学技术和数据库系统的新发展齐头并进,以不断改进数据库运行。通过使当地运用信息技术于数据库管理系统,数据库管理员能够显著地最大化生产力,降低风险和成本。数据库管理员的主要职责有以下几个方面。

设计

数据库管理员帮助确定:

数据库设计,包括字段、表和关键字段;

资源在辅助存储设备上是怎样使用的,怎样增加和删除文件及记录,以及怎样发现和补救损失。

监视

监控数据库的警告日志。Alert.log,定期做备份删除。

Linstener.log的监控,/network/admin/linstener.ora。

重做日志状态监视,留意视图v$log,v$logfile,该两个视图存储重做日志的信息。

监控数据库的日常会话情况。

碎片、剩余表空间监控,及时了解表空间的扩展情况、以及剩余空间分布情况,如果有连续的自由空间,手工合并。

监控回滚段的使用情况。生产系统中,要做比较大的维护和数据库结构更改时,用rbs_big01来做。

监控扩展段是否存在不满足扩展的表。

监控临时表空间。

监视对象的修改。定期列出所有变化的对象。文件,有初始化参数文件、用户后台文件、系统后台文件。

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

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

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

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

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

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

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

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

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

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

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

备份和恢复数据库。

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

备份

对数据库的备份监控和管理数据库的备份至关重要,对数据库的备份策略要根据实际要求进行更改,数据的日常备份情况进行监控。由于我们使用了磁带库,所以要对legato备份软件进行监控,同时也要对备份数据库进行监控。

修改密码

规范数据库用户的管理定期对管理员等重要用户密码进行修改。对于每一个项目,应该建立一个用户。DBA应该和相应的项目管理人员或者是程序员沟通,确定怎样建立相应的数据库底层模型,最后由DBA统一管理,建立和维护。任何数据库对象的更改,应该由DBA根据需求来操作。

SQL语句

对SQL语句的书写规范的要求一个SQL语句,如果写得不理想,对数据库的影响是很大的。所以,每一个程序员或相应的工作人员在写相应的SQL语句时,应该严格按照《SQL书写规范》一文。最后要有DBA检查才可以正式运行。

最终用户服务和协调

数据库管理员规定用户访问权限和为不同用户组分配资源。如果不同用户之间互相抵触,数据库管理员应该能够协调用户以最优化安排。

数据库安全

数据库管理员能够为不同的数据库管理系统用户规定不同的访问权限,以保护数据库不被未经授权的访问和破坏。例如,允许一类用户只能检索数据,而另一类用户可能拥有更新数据和删除记录的权限。

深层次管理和研究

DBA深层次要求一个数据库能否健康有效的运行,仅靠这些日常的维护还是不够的,还应该致力于数据库的更深一层次的管理和研究:数据库本身的优化,开发上的性能优化;项目的合理化;安全化审计方面的工作;数据库的底层建模研究、规划设计;各种数据类型的处理;内部机制的研究;ora-600错误的研究、故障排除,等等很多值得探讨的问题。ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控:

⑴每天对ORACLE数据库的运行状态,日志文件,备份情况,数据库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。

⑵每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。

⑶每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查。

日常工作

每日工作

⑴确认所有的INSTANCE状态正常登陆到所有数据库或例程,检测ORACLE后台进程。

⑵检查文件系统的使用(剩余空间)。如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。

⑶检查日志文件和trace文件记录alert和trace文件中的错误。连接到每个需管理的系统使用‘telnet’对每个数据库,通常是使用Unix‘tail’命令来查看文件,如果发现任何新的错误,记录并解决。

⑷检查数据库当日备份的有效性。对RMAN备份方式:检查第三方备份工具的备份日志以确定备份是否成功;对EXPORT备份方式:检查exp日志文件以确定备份是否成功;对其他备份方式:检查相应的日志文件。

⑸检查数据文件的状态记录状态不是“online”的数据文件,并做恢复。

⑹检查表空间的使用情况

⑺检查剩余表空间;

⑻监控数据库性能,运行bstat/estat生成系统报告或者使用statspack收集统计数据;

⑼检查数据库性能,记录数据库的cpu使用、IO、buffer命中率等等,使用vmstat,iostat,glance,top等命令。

⑽日常出现问题的处理。

每周工作

⑴控数据库对象的空间扩展情况根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施--删除历史数据---扩表空间,调整数据对象的存储参数。

⑵监控数据量的增长情况根据本周每天的检查情况找到记录数量增长很快的数据库对象,并采取相应的措施--删除历史数据---扩表空间。

⑶系统健康检查。

⑷检查无效的数据库对象。

⑸检查不起作用的约束。

每月工作

1、检查表空间碎片根据每月每周的检查分析数据库碎片情况,找到相应的解决方法。

2、寻找数据库性能调整的机会比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整。

3、数据库性能调整如有必要,进行性能调整。

4、出下一步空间管理计划根据每周的监控,提出空间管理的改进方法。

日常管理

每日维护程序

A检查已起的所有实例;

B查找一些新的警告日志;

C检查DBSNMP是否在运行;

D检查数据库备份是否正确;

E检查备份到磁带中的文件是否正确;

F检查数据库的性能是否正常合理,是否有足够的空间和资源;

G将文档日志复制到备份的数据库中;

H要常看DBA用户手册、晚间维护程序;

I收集VOLUMETRIC的数据。

每周维护工作

A.查找那些破坏规则的OBJECT

B.查找是否有违反安全策略的问题

C.查看错误地方的SQL*NET日志

D.将所有的警告日志存档

E.经常访问供应商的主页

月维护程序

A.查看对数据库会产生危害的增长速度

B.回顾以前数据库优化性能的调整

C.查看I/O的屏颈问题

D.回顾FRAGMENTATION

E.将来的执行计划

F.查看调整点和维护

维护过程

日间维护

A.查看所有的实例是否已起,确定数据库是可用的,把每个实例写入日志并且运行日报告或是运行测试文件。当然有一些操作我们是希望它能自动运行的。可选择执行:用ORACLE管理器中的‘PROBE’事件来查看;

B.查找新的警告日志文件1.联接每一个操作管理系统2.使用‘TELNET’或是可比较程序3.对每一个管理实例,经常的执行$ORACLE_BASE//bdump操作,并使其能回退到控制数据库的SID。4.在提示下,使用UNⅨ中的‘TAIL’命令查看alert_.log,或是用其他方式检查文件中的警告日志5.如果出现过的一些ORA_ERRORS又出现,将它记录到数据库恢复日志中并且仔细的研究它们,这个数据库恢复日志在〈FILE〉中;

C.查看DBSNMP的运行情况检查每个被管理机器的‘DBSNMP’进程并将它们记录到日志中。在UNⅨ中,在命令行中,键入ps–ef|grep dbsnmp,将回看到2个DBSNMP进程在运行。如果没有,重启DBSNMP。

D.查数据库备份是否成功;

E.检查备份的磁带文档是否成功;

F.检查对合理的性能来说是否有足够的资源1.检查在表空间中有没有剩余空间。对每一个实例来说,检查在表空间中是否存在有剩余空间来满足当天的预期的需要。当数据库中已有的数据是稳定的,数据日增长的平均数也是可以计算出来,最小的剩余空间至少要能满足每天数据的增长。A)运行‘FREE.SQL’来检查表空间的剩余空间。

B)运行‘SPACE.SQL’来检查表空间中的剩余空间百分率2.检查回滚段,回滚段的状态一般是在线的,除了一些为复杂工作准备的专用段,它一般状态是离线的。a)每个数据库都有一个回滚段名字的列表。b)你可以用V$ROLLSTAT来查询在线或是离线的回滚段在状态。c)对于所有回滚段的存储参数及名字,可用DBA_ROLLBACK_SEGS来查询。但是它不如V$ROLLSTAT准确。3.识别出一些过分的增长查看数据库中超出资源或是增长速度过大的段,这些段的存储参数需要调整。

a)收集日数据大小的信息,可以用‘ANALYZE5PCT.SQL’。如果你收集的是每晚的信息,则可跳过这一步。b)检查当前的范围,可用‘NR.EXTENTS.SQL’。c)查询当前表的大小信息。d)查询当前索引大小的信息。e)查询增长趋势。4.确定空间的范围。如果范围空间对象的NEXT_EXTENT比表空间所能提供的最大范围还要大,那么这将影响数据库的运行。如果我们找到了这个目标,可以用‘ALTER TABLESPACE COALESCE’调查它的位置,或加另外的数据文件。A)运行‘SPACEBOUND.SQL’。如果都是正常的,将不返回任何行。

晚间维护

大部分的数据库产品将受益于每晚确定的检查进程的运行。A.收集VOLUMETRIC数据1.分析计划和收集数据更准确的分析计算并保存结果。a)如果没有做这些的话,用‘MK VOLFACT.SQL’来创建测定体积的表。b)收集晚间数据大小的信息,用‘ANALYZE COMP.SQL’。c)收集统计结果,用‘POP VOL.SQL’。d)在空闲的时候检查数据,可能的话,每周或每个月进行。一般用MS EXCEL和ODBC的联接来检查数据和图表的增长。

薪资

在经历了3年前的不升反降之后,DBA的收入在2013年出现了强势的反弹。根据本次调查显示,2013年DBA的平均年薪为113741元,较2012年的97766元上涨了16.3%,与2011年的下降形成了鲜明对比。这也是我们启动数据库工程师薪酬调查以来,DBA的平均年薪首次超过10万大关。在整体的IT领域中,DBA也算是收入中等偏上,但同时需要掌握的知识技能更多,压力也更大。

不同行业DBA收入:金融行业的DBA年均收入为135857元,紧随其后的是IT互联网行业,DBA平均年收入为117419,排名第三的是医疗行业,DBA平均年收入为116666元。而DBA收入偏低的行业包括了农业、政府以及交通等,其平均年收入普遍徘徊在70000元左右。

职业前景

数据库作为整个系统的一部分,它的表现直接受服务器、操作系统、存储、网络、应用程序中SQL语句的质量、数据库设计的质量、以及其它诸多因素的影响,这些因素加在一起非常复杂,经验起着非常重要的作用。因此一个好的DBA除了知识作为基础,经验的多寡、见识的薄广,往往决定了是否合格与优秀。

从另外一个角度说,Oracle工作领域对实践经验和独立工作能力要求较高,没有经过大量的动手实践是很难胜任Oracle相关工作的。

正是由于上述原因,其职场现状是DBA职位不易进入,而用人单位很难找到合适的从业人员,人员缺口非常大。

也正是由于上述原因,随着工作年限的增长,DBA的经验在增加,就像医生一样,其价值会越来越高,可以逐步成长为资深Oracle DBA、系统构架师、信息主管(CIO)等等,而不会出现许多软件开发从业人员在一定年龄后面临的转行问题。

另外,从职业前景看,从事Oracle DBA有着更多的职场机遇。一般而言,系统中的软硬件都是IBM、HP、Oracle等业界一流厂商提供的,在与厂商谈判、合作、测试、实施、维护、优化等等过程中,会产生许多极佳的职场机遇,这一点是从事开发工作很难比拟的。

从DBA的工资统计数据看,随着工作经验的积累,DBA工资的增长幅度会远大于其它的计算机方向。

工作的稳定性上看,系统的复杂性和经验的重要性已经决定了DBA职位的不可替代性。

从知识的积累、更新和替代角度看,数据库的根基始终没变,变的是不断增强的功能和不断扩展的应用范围。因此,在不同时期所学的知识和获得的经验是叠加和累积的关系,而不像IT许多其他职业方向那样“唯一不变的是变化”,其知识是东风压倒西风还是西风压倒东风的关系。

参考资料

1.薪酬调查:DBA年薪涨幅超15% 你拖后腿了吗?·数据库

2.薪酬调查:金融行业DBA收入最高·数据库

目录[+]