本节书摘来自华章社区《DBA修炼之道:数据库管理员的第一本书》一书中的第1章,第1.8节DBA的类型,作者(美)Craig S. Mullins,更多章节内容可以访问云栖社区“华章社区”公众号查看
1.8 DBA的类型
有些DBA专注于逻辑设计,有些则专注于物理设计:专注于搭建系统的DBA以及专注于维护和调整系统的DBA;专业的DBA和通用的DBA。诚然,DBA的工作包含了许多角色。
一些企业选择将DBA的职责细分成独立的工作。当然,这大多是在较大的企业,较小的企业往往付不起请多个专业的DBA的费用。
还有一些公司干脆雇佣DBA来执行所有的任务:设计、创建、归档、调整及维护公司的数据、数据库、数据库管理系统。下面介绍一些比较常见类型的DBA。
1.8.1 系统DBA
系统DBA专注于技术而不是业务问题。
特别是在系统管理领域,系统DBA专注于技术而不是业务问题。典型任务主要是DBMS软件的物理安装和性能,包括:
安装新版本的DBMS并应用DBMS供应商提供的维护补丁;
设置并调节系统参数;
调节操作系统、网络和事务处理器,使它们与DBMS协同合作;
确保DBMS的适当存储;
使DBMS与存储设备和存储管理软件协同工作;
配合数据库应用程序所需要的其他技术;
安装DBA工具和实用程序。
系统DBA很少参与数据库和应用程序的实际部署。当操作系统参数或复杂的DBMS参数需要修改时,他们可能会参与应用程序的调优。
事实上,通常只有在企业没有真正的系统管理员或系统程序部门的情况下,系统DBA才存在。
1.8.2 数据库架构师
一些企业为设计和部署新数据库设立了一个单独的职位,简称数据库架构师。数据库架构师只参与新的设计和开发工作,不参与搭建数据库及应用程序的维护、管理和调优工作。数据库架构师为新应用程序或者现有的应用程序设计新的数据库。
数据库架构师只参与新的设计和开发工作。
设立这样一个单独的职位是由于设计新数据库所需要的技能和维持现有的数据库运行的技能有所不同。数据库架构师的数据管理和建模技术可能比通用DBA更专业,因为DA技能在初始数据库设计时更加有用。
数据库架构师的典型工作包括:
创建逻辑数据模型(如果没有DA或数据建模师)。
将逻辑数据模型转换为物理数据库设计。
部署有效的数据库,包括物理特性、索引设计和映射数据库对象到物理存储设备。
分析数据访问和修改需求,确保SQL的高效性以及最佳的数据库设计。
为新的数据库创建备份和恢复策略。
大多数企业都不会安排单独的数据库架构师职位,而是要求DBA兼顾新的和已有的数据库项目。
1.8.3 数据库分析师
另一种常见的职位是数据库分析师。数据库分析师根本没有一个通用的定义,有时高级DBA称作数据库分析师,有时与数据库架构师所做工作类似,有时DA要扮演数据库分析师或数据分析师,有时数据库分析师只是一些企业对数据库管理员的另一种称呼。
1.8.4 数据建模师
没有定义或配备DA角色时,可能会定义一个数据建模师。数据建模师通常负责部分DA工作,数据建模的任务包括:
为开发项目收集数据需求;
分析数据需求;
设计基于项目的概念和逻辑数据模型;
建立企业的数据模型并随时更新;
与DBA合作,以确保他们充分了解该数据模型。
1.8.5 应用程序DBA
与系统DBA直接对比的是应用程序DBA。应用程序DBA专注于数据库的设计和管理,以及对特定的一个或多个应用程序的持续支持。应用程序DBA可能擅长编写和调试复杂的SQL语句,并懂得在应用程序中做数据库请求的最佳方式。他们还必须能够执行数据库的变更管理、性能调优以及DBA的大多数其他工作。所不同的是,应用程序DBA关注应用程序的特定子集,而非整个DBMS的部署和数据库环境(详见图1-5)。
应用程序DBA专注于数据库的设计和管理,以及对特定的一个或多个应用程序的持续支持。
并非每个企业都配备了应用程序DBA。有该职位时,通用DBA仍需要支持数据库的整体环境和基础设施;没有该职位时,通用DBA很可能在维护企业数据库环境的同时还要支持特定应用程序。
有人赞成配备应用程序DBA,也有人反对。赞成的理由如下:
应用程序DBA可以更好地专注于单个应用程序,这就可以更好地服务于该程序的开发人员。
应用程序DBA常被视作开发团队不可分割的部分,因此可以更好地了解新的开发计划以及计划的改变。
因为应用程序DBA一直从事于某些特定的应用程序,他们可以更好地把握每个应用程序运行的状况,从而可以给开发人员更好的支持。
有了对应用程序的全面了解,应用程序DBA会更好地理解应用程序是如何影响整体业务的。这方面的知识更有助于他们为企业提供更好的支持。
但并不是所有人都支持应用程序DBA,反对的理由如下:
由于应用程序DBA只专注于单个应用程序,他们可能会忽视企业整体的数据需求。
缺乏与集中的DBA团队的沟通导致技能共享减少,应用程序DBA会变得孤立。
应用程序DBA实现有用的程序(procedure)时,需要付出更多的努力和其他DBA分享。
应用程序DBA以应用程序为中心,他们可能会忽视DBMS团队交付的新特性和功能。
一般情况下,配备了应用程序DBA,也一定要配备一个集中的DBA团队。应用程序DBA虽然主要负责特定的应用程序,也应该被视作集中的DBA团队的一员。这样将会发挥应用程序DBA的正面作用,同时打消其负面作用。
配备了应用程序DBA,也一定要配备一个集中的DBA团队。
1.8.6 面向任务的DBA
较大的企业有时会有专注于某个特定任务的专门的DBA。但面向任务的DBA在较小的IT企业里很少存在,他们整天致力于确保企业数据库的备份和恢复。
大多数企业都无法负担这种水平的DBA,但如果可能,则能确保重要的任务都有专人处理。
1.8.7 性能分析师
性能分析师是一种典型的面向任务的DBA。比其他面向任务的DBA更常见的是,性能分析师只专注数据库应用程序的性能。
性能分析师必须了解SQL性能编码的细节和微妙之处,以及有能力设计数据库的性能。性能分析师在技术层面非常了解在用的DBMS,从而能够在需要时对DBMS和系统参数作出适当的改变。
但性能分析师不应该是一个系统DBA。性能分析师能够和程序开发人员有效沟通,从而帮助他们为了得到更好的性能而相应地改变程序。
性能分析师通常是技艺精湛的DBA高级成员。成为一名高级DBA很有可能归结于他的经验以及在以往的调优工作中获得的尊重。
性能分析师通常是技艺精湛的DBA高级成员。
1.8.8 数据仓库管理员
企业为了进行深入数据分析而部署数据仓库,通常会特别配备DBA来监控并支持数据仓库环境。数据仓库管理员必须是有能力的DBA,并且完全了解支持在线事务处理(OLTP)的数据库与数据仓库之间的差别。常见的数据仓库管理员的任务和需求包括:
使用商业智能、数据分析、查询和报表工具;
只读访问权限的数据库设计;
数据仓库的设计事务,如星型模式;
数据仓库技术,如联机分析处理或OLAP(包括ROLAP、MOLAP和HOLAP);
数据变换和转换技能;
了解数据质量问题;
处理用于加载和卸载数据的数据格式;
中间件的实施和管理人员注意事项。