职位概述
数据库管理员(Database Administrator,简称DBA),是一个负责管理和维护数据库服务器的人。数据库管理员负责全面管理和控制数据库系统。这个职位对不同的人意味着不同的意义。
数据库管理员岗位职责
1.测试程序或数据库,纠正错误,并作出必要的修改
2.修改现有的数据库和数据库管理系统
3.规划、协调和实施数据库的安全保护措施
4.与其他工作人员协调一起开发数据库
5.编写数据库的说明
6.培训用户并回答相关问题
7.指定数据库用户的访问级别
8.审批、调度、计划并监督安装新的数据库
9.审查项目的要求,估计完成项目所需的时间和成本
10.制定标准和准则来指导软件的使用和授权,以保护信息
11.审查程序,更改数据库中的管理系统手册
12.开发整合不同的产品,以满足不同的需求
13.开发数据模型,阐述数据库的原理
数据库管理员任职条件
技术是指DBA执行一项任务时所需要的技能。在数据库环境的管理与维护中,技术任务可归结成许多不同的分类。下面列出了一名DBA应掌握的一些技术(排名不分先后)。
1.理解数据备份/恢复与灾难恢复
恢复已损坏的数据库是每一个DBA应掌握的最重要的技能。DBA需要完全理解数据库所有可能的备份与恢复方法,以及不同备份方法与不同恢复策略的对应关系。此外,DBA还需要与业务部门合作,一起确认业务需求,明确用户能够容忍的数据丢失底线。此外,业务用户还需要确定在系统故障情况下,他们的业务能够维持多长时间。理解这些需求可以帮助DBA开发出一个满足业务用户要求的备份/恢复方法。一个优秀的DBA要定期测试备份与恢复流程,保证他们有能力恢复业务数据,满足企业所规定的业务数据丢失与恢复要求。
2.工具集的使用
所谓工具集,指是的他们要有一组用于执行不同DBA任务的脚本。这个工具集应该包含不同的小代码片段,它们可以快速诊断问题或执行一个特定的任务。这些工具脚本应该按DBA的活动类型归类,如备份、索引维护、性能优化、容量管理等。由于总是会执行新任务、发现新问题或找到其他人开发的好用脚本,因此一个优秀的DBA会不断地给这个工具集增加新脚本。此外,他还应该了解网上哪里能够找到一些免费的工具和脚本。一个好的DBA知道什么时候可以利用其他人编写的脚本,从而节省自己的时间和改进自己的工具集。
3.知道从哪里获得帮助
即使是数据库大牛,也不可能是无所不知的,每个人都有需要寻求帮助或建议的时候。而知道从何处寻找建议是很重要的。如果一个数据库实例不能按预期方式运转,那么快速寻找新问题的解决方法也是一个重要能力。一个好的DBA知道如何快速地在网上查找一个未知问题的解决方法。此外,他们也可能已经知道了一些非常不错的网站,也知道业界专家会提供一些好建议,同时知道什么时候应该忽略一些不好的建议。你可能想象不到,确实有一些建议不值得参考。
4.知道如何使用原生性能工具
以SQL Server举例,性能是一个关键的问题,因此DBA需要知道如何修复故障和监控性能问题。现在有许多第三方性能监控工具可以帮助DBA优化性能。如果DBA只使用第三方工具,而不会使用SQL Server自带的原生工具来监控性能,那么相信很快就会出现问题。虽然使用第三方工具来监控性能也很不错,但是DBA一定要理解SQL自带的一些原生工具,如SQL Server Profiler、Database Engine Tuning Advisor、Dynamic ManagementViews、系统/扩展的存储过程、Extended Events等。许多第三方工具实际上在使用这些底层的原生工具。因此,理解这些自带的原生工具将有利于增强DBA使用第三方工具的经验。
5.研究新版本
在技术领域中,没有什么是一成不变的。每隔两三年,主流数据库厂商都会发布一个大版本的更新。DBA应该紧跟新版本所作的修改,它们可能有许多变化方法,最好的方法是迟早介入这个过程。测试版开放后马上下载和安装,尽快掌握第一手使用经验。一名好的DBA总是走在学习排头兵,总是会第一时间安装和测试新版本。这样他们就可以尽早理解新特性,然后提出一些合理的新建议,帮助组织更好地利用新版本数据库。
6.理解代码最佳实践方法
DBA应该了解如何编写高效的代码。有许多糟糕的编码实践方法会导致拙劣的性能。一名好的DBA要能够理解和识别这些糟糕的编码实践方法,知道如何修改这些烂代码,让它们变成高效代码。此外,他们还要记录下写代码的最佳实践方法,并且将这些实践方法分享给其他人。
7.持续不断地学习
数据库及其组件涉及面非常广。DBA很难理解一个技术的方方面面。DBA需要持续学习如何管理数据库。这个学习过程有很多方法。其中之一就是参加正式培训。但是,并非人人都有这样充裕的事件和金钱,也并非人人都能够放下手头工作专门出去参加正式的培训。但是,还有许多其他方法可以获得培训,而且大多数还是免费的。一名好的DBA一定要订阅一些定期发布数据库新技巧和新文章的社区网站。此外,他还应该加入一些用户组织,可以在周末参加一些当地的免费沙龙活动。
8.数据库安全性
在最近一段时间里,安全性是一个热门话题。DBA应该完全掌握如何实现数据库的安全访问。他们应该理解操作系统身份验证和数据库身份验证的区别,以及它们各自的使用场合。他们应该理解如何使用数据库角色来管理不同类型用户的安全配置。他们应该理解连接数据库的端口与协议。此外,他们还应该理解如何加密整个数据库,或者加密一个数据库中一个表的某一个字段,同时理解关于加密数据的各种问题。
9.数据库设计
决定数据库性能的一个关键问题是数据库设计。DBA需要理解关于数据库设计的各个方面。他们要能够理解设计好坏的区别。他们需要理解为什么使用正确的外键约束、主键、检查约束和使用数据类型能够保持数据库的数据完整性和实现高效的数据查询与更新。
10.索引设计
数据库索引是提高应用程序检索和更新数据速度的重要环节。DBA需要知道索引的工作原理。他们应该知道聚簇索引和非聚簇索引的区别,知道这些索引的物理存储方式。DBA应该知道如何在执行计划中使用这些索引。他们应该理解如何找到索引的使用统计、理解索引碎片及如何发现丢失的索引。他们应该知道如何维护索引,以及索引统计信息对于查询引擎的重要作用。
11.容量监控与规划
数据库往往要使用大量的资源,包括CPU、内存、I/O及磁盘空间。DBA应该理解如何监控数据库所需要的不同主机资源的用量。他们应该能够理解这些资源在不同时间的使用情况,以及利用历史使用数据来规划未来的容量需求。在监控过程中,DBA应该能够预见到容量规划会在将来什么时候出现问题,然后采取必要的措施保持数据库不会因为容量限制而出现中断。
12.数据库许可证
不同的产品有许多不同的许可证授权方式。而且,同一款产品本身又有许多不同的版本。DBA应该理解所负责的数据库版本的不同授权模式。他们应该能够提供指导如何通过合理购买授权来减少现在的数据库总拥有成本,以及如何合理利用授权方法来降低未来版本的升级成本。
13.尽可能实现自动化
DBA每天都需要执行许多的日常任务。其中一些任务需要每天执行,而另一些则每周、每月或每年执行。一名好的DBA需要理解如何高效地安排自己的时间。其中一种方法是建立工作流程,这些日常任务的自动执行。通过实现日常任务的自动化执行,DBA就可以用更多的时间去关注于数据库环境管理中遇到的严重问题。
本文只是表达了笔者个人对于DBA应具备的重要特质的看法。你具备的特质越多,作为DBA的你就越优秀。成为一名成功DBA的关键是不断地学习与提高,努力去掌握更多关于如何管理和维护数据库环境的知识。
很多时候管理人员都忽视了DBA的个性特点,他们只关注DBA的技术能力。实际上,上面谈到的每个职责都意味着:DBA需要跟各种人员打交道,这些人员可能是销售商、用户、开发人员或者管理人员。这说明:DBA必须具有下面的个性特点:自信心、好奇心、坚韧的意志力、老练、自我驱动、注意细节。
技术是指DBA执行一项任务时所需要的技能。在数据库环境的管理与维护中,技术任务可归结成许多不同的分类。下面列出了一名DBA应掌握的一些技术(排名不分先后)。
数据库管理员职位的工作经验人群比例
无(10%)
1年以下(10%)
1-3年(11%)
3-5年(31%)
5-10年(21%)
10年以上(13%)
数据库管理员职业发展路径
职位的汇报上级
①IT项目经理
②产品研发经理
③
技术经理
职位的管理下属
数据库工程师
职位的转职目的
①研发经理
②技术经理
企业招聘数据库管理员可与
猎头网合作,快速招聘到合适的人才。