本节书摘来自华章社区《DBA修炼之道:数据库管理员的第一本书》一书中的第1章,第1.9节人员配备的考虑,作者(美)Craig S. Mullins,更多章节内容可以访问云栖社区“华章社区”公众号查看
1.9 人员配备的考虑
配备DBA不是一件简单的事情,有几个有待解决的重要的考虑,包括DBA人员的规模和DBA报告结构的规模。
1.9.1 需要多少DBA
最难确定的事情之一是保证企业数据库在线并高效运作的DBA的最佳数量。许多企业都试图将DBA人员规模降到最低,本想着人员减少了成本就降低了,但这种假设一般是不正确的。一个过度劳累的DBA可能会犯错,而导致的停机时间和操作问题的成本远远超过一个额外的DBA的薪资成本。
但确定DBA的最佳数量不是一门精确的科学,它取决于多种因素,包括:
数据库的数量。需要支持的数据库越多,数据库管理的工作就越复杂。每一个数据库都需要设计、部署、监控可用性和性能、备份以及管理。而一名DBA能够控制的数据库数量是有限的。
用户数量。随着更多的用户联机作为访问数据库应用程序的客户端,确保数据库的最佳性能变得更加困难。此外,随着用户量的增加,问题量与调用量增加的可能性也随之增加,进而增加了DBA工作的复杂性。
应用程序的数量。一个单一的数据库能被多个应用程序使用,实际上,DBMS的主要好处之一是使数据可以在整个企业内共享。随着更多的应用程序联机,对数据库的性能、可用性和需要的资源等方面都施加了压力,相同数量的数据库可能需要更多的DBA来支持。
服务水平协议(SLA)。SLA越严格,DBA越难提供满意的服务。例如,需要1秒响应时间的SLA比需要3秒响应时间的SLA更加难以支持。
可用性需求。当数据库具有可允许的计划停机时间时,数据库管理就变得更加容易,因为一些DBA任务要么需要中断运行,要么在中断时更加容易进行。一些考虑(诸如要支持电子商务交易和网络),推动了对24/7数据库可用性的需求。
停机时间的影响。数据库不可用对财务的影响越大,DBA就越困难,因为有人会施加压力以确保数据库更佳的可用性。
性能需求。随着对数据库的访问需求变得更加面向性能、更加快速,而要求的访问也更加频繁,DBA变得更加复杂。
应用程序的类型。企业部署各种类型的应用程序,必须要支持的应用程序的类型对需要什么DBA服务有所影响。DBMS和数据库对关键任务的应用程序的需求与对非关键任务的应用程序的需求是不同的。关键任务的应用程序可能更需要持续地监控和更多的警惕,以确保其可用性。同样,OLTP应用程序与OLAP应用程序会有不同的特点及管理需求。OLTP处理事务的时间可能比OLAP查询时间更短;OLTP应用程序执行读取和写入操作,而OLAP应用程序通常只有读取操作。每种应用程序都有管理挑战,都施加了不同的DBA程序与需求。
波动性。数据库变更需求的频率是需要额外的DBA与否的重要因素。一个很少需要变更的静态数据库环境,与一个不稳定的、经常变更的数据库环境需要DBA付出的努力是不同的。遗憾的是,大多数据库和应用程序波动性水平往往会随着时间的推移发生巨大的变化。很难确定整体的数据库环境将在其生命周期内如何波动。
DBA人员的经验。现有DBA人员的技能将对是否还需要额外的DBA产生影响。一名技术娴熟的DBA人员能够做到的要比一个新手团队多。且技能比经验更能决定所需要的DBA人员的水平。一名有两年工作经验的、非常积极的DBA可能轻松超过一名具有十年工作经验却筋疲力尽、无心工作的老手。
开发人员的经验。从事数据库和SQL编程的开发人员越不熟练,在开发过程、执行复杂的SQL任务、分析、调试、调优、确保连接性中需要DBA人员介入的就越多。随着开发人员经验的增加,DBA工作的复杂性也相应减少。
终端用户经验。当终端用户试图通过随机SQL语句直接访问数据库时,他们的技能水平将直接影响DBA工作的复杂性。
DBA工具。DBMS供应商和为数不少的ISV都提供自动执行DBA任务的工具,从而使得管理数据库变得更容易。工具的可用性越高且介入度越深,DBA的工作将会变得越简单。行业分析师预估一旦没有了DBA工具,DBA的需求量将两倍于现在的数目。
确定需要的DBA数量不是一门精确的科学。
尽管罗列了以上复杂的问题,但要想把所有这些因素都合并成一个公式而得出需要雇佣的DBA最佳数量还是非常困难的。尽管研究或许有些过时,但META集团的行业分析师还是创造了一个宽松的公式计算DBA努力的水平(Level of Effort,LOE)。公式并不严谨,但是通过六种因素得出DBA LOE:系统复杂性、应用程序不成熟度、终端用户水平参差不齐、软件功能、系统可用性和人员不成熟度。通过尽可能地评估表示每种因素高或低的分值,将这些值代入公式得出一个数字,再将该数字转换成所需的DBA数量的预估。
创造一个能够得出需要雇佣的DBA最佳数量的公式非常困难。
1.9.2 DBA报告结构
在企业里,DBA团队应当向谁报告呢?不同的企业采取了不同的DBA报告结构,但有些报告阶梯是通用的。恐怕没有人能说出哪种报告结构优于其他。下面看一下几种可能的结构。
最好的结构之一是创建一个数据资源管理组(DRM),囊括企业所有的数据和信息专家——DA、DBA、数据分析师和性能分析师等。这个组通常直接向CIO报告,但也可能通过一个系统编程单元、数据中心或技术支持来间接向CIO报告。图1-6描述了这种典型的报告结构。