如果头衔精确地反映担任这个职位的人实际上所做的工作,那么当然很好。例如,客户服务代表、教师、飞行员、牙科医生和电工。但是,数据库管理员这个头衔合适吗?DBA这个头衔能够恰当地反映您所做的实际工作吗?尤其是,它能够恰当地反映您所做的最重要的工作吗?它能够体现您为组织贡献价值的方式吗?我越来越觉得数据库管理员这个头衔不太恰当。
Animal House 是我最喜欢的电影之一,这部拍摄于1978年的喜剧讲述的是一个大学联谊会的故事。电影开头的场景是 Faber College 的四方形院子。在院子的中央有学校创始人的塑像。镜头向下摇到塑像的底座上,上面有学校的座右铭:“Knowledge is Good”。对于 DBA 来说,这个句话应该是“Data is Good”,但是让我们考虑得深入一点儿。数据对于什么有益处?回答这个问题有多种方式。我将提出两种方式以及我对 DBA 及其作用的一些想法,帮助我们考虑更合适的头衔。
数据是应用程序的核心
如果 IT 部门提供(和支持)的应用程序能够帮助组织完成它要做的工作(而且效果更好,速度更快,更可靠,或更经济有效),那么 IT 部门就为组织提供了最好的服务。IT 部门提供的应用程序功能可以为公司提供巨大的竞争优势。一家于上世纪 80 年代破产的航空公司的领导指出,这家公司的失败在很大程度上是由于一个大型竞争对手采用了先进的管理系统;通过使用这个应用程序,那家航空公司可以以低价出售部分机票,以此吸引新的客户,同时以比较高的价格出售余下的机票(比如卖给较晚预订的乘客),从而保证一定的利润。
对于几乎所有行业的公司,应用程序都曾经创造过巨大的财富。
因此,应用程序对于组织的成功是非常重要的;但是,如果没有数据,应用程序就不可能发挥作用。这对于DBA意味着什么呢?这意味着,如果 DBA 正在帮助应用程序发挥作用,那么 DBA 可能是公司中最有价值的成员。是的,我知道 DBA 的“传统”任务也是有价值的,比如备份、数据库对象重组、性能监视、SQL 调优、实现物理数据库设计。但是,随着时间的推移,这些 DBA 活动相对来说越来越不重要了,而帮助应用程序发挥实际作用的那些活动越来越重要了。
我们通过 DB2 技术的发展过程考虑一下这种变化。由于各个DB2版本中提供的新特性,DB2 DBA 原来从事的所有活动已经不再必要了,或者所需的时间大大缩短了。下面的列表主要针对DB2 for z/OS,但是 DB2 for linux, Unix, and Windows DBA 也经历了相同的过程:
◆在 DB2 2.3 中引入包绑定之前,管理应用程序计划常常是一项非常繁重的任务。
◆索引争用问题过去花费了 DBA 的大量时间,DB2 V4提供的Type2 索引实际上消除了这个问题(它们还提供了行级锁定功能)。
◆DB2 V6为存储过程提供的 DDL 大大简化了存储过程管理。
◆DB2 V8提供了动态地循环使用表空间分区的功能,这简化了时间序列数据的管理。
◆DB2 9提供的克隆表支持特性使DBA能够非常方便地把一个表替换为另一个表,所需的工作量和时间都大大减少了。
这只是20年来各个DB2版本提供的帮助 DBA 节省工作时间的特性的一小部分。未来的DB2版本会继续提供这样的特性。
我觉得,对于DB2自动化计算的发展趋势(换句话说,DB2 子系统需要的人工干预越来越少了),一些DBA可能有点儿担心。他们可能担心,随着这些 DB2 改进的出现,企业越来越不需要他们的技能,他们的就业机会会减少。我相信,是否会真的发生这种情况,在很大程度上取决于 DBA 自己的态度。我不认为 DB2 自动化特性会对 DBA 造成威胁。相反,我觉得它们解放了 DBA,DBA 可以把节省下来的时间投入到更有回报的方面,为组织提供更大的价值:帮助应用程序架构师和开发人员构建更适合组织的软件,让组织成为更高效、更敏捷、更可靠的竞争者。
不要犯错误 —— 如果您积极参与公司的应用程序构建过程,就一定会受到相关人员的欢迎。对于数据库专家在设计应用程序系统时提供的帮助,我认识的应用程序架构师和开发人员都给予了高度评价。您可以在以下方面帮助他们:
◆确保程序员了解访问 DB2 数据的各种方式,尤其是 DB2 存储过程的使用方法。
◆确保程序员知道他们可以使用自己喜欢的编程语言访问 DB2。不但包括 java 或 C#,而且包括 Perl、Python、php 和 Ruby(参见 DB2 Magazine 2007 年第二期中我的专栏文章“News from the Client Side”)。
◆帮助判断哪些应用程序功能在本质上应该是同步的,哪些应该是异步的。如果适合采用基于消息的异步模式,应该记住 WebSphere MQ 是非常出色的消息队列和提交软件,而且 MQ 和 DB2 能够很好地配合工作。
◆在根据面向服务体系结构(SOA)原则设计应用程序时,从数据的角度提供支持。您应该熟悉 SOA 概念和术语(2006 年 Quarter 3 上我的专栏文章“SOA for DBAs”也许有帮助)。要记住,SOA 的某些方面可能会增加数据服务器的 CPU 使用率,这不一定是坏事儿。有时候,为了运行那些能够提高组织的敏捷性和服务质量水平的应用程序,适度地增加 CPU 消耗量是值得的。
◆在涉及 SOA 时,您可以建议从事应用程序开发的同事使用 IBM 最近提供的免费的 Data Studio 工具。通过使用 Data Studio 和其他特性,可以很方便地以 Web 服务的形式公开 DB2 存储过程调用或 SQL SELECT(或其他 DB2 数据操作)。这对应用程序开发人员很有帮助。
◆帮助程序员了解那些支持应用程序开发的 DB2 特性。他们是否知道 DB2 为 xml 数据提供了最出色的存储和查询功能?他们是否了解用户定义函数、递归式 SQL 以及动态添加和循环使用表分区?您应该帮助他们获取这些知识。
您现在明白我的想法了。“数据库管理员”这个头衔适合反映这类工作吗?我认为不适合,但是我也没有找到理想的其他头衔?数据架构师?应用程序 DBA?应用程序数据专家?我不知道哪个头衔更好。希望听听您的想法。
数据保证合法性
除了作为成功的应用程序的基础之外,对于满足当今的许多法律法规要求,数据也是关键因素。许多法律法规对数据提出了要求,如果不遵守它们,就会面临严厉的处罚。根据公司从事的行业和开展业务的国家不同,可能必须把属于某些交易的数据保留好几年。还可能需要捕捉对某些数据元素的修改的相关信息:修改者、修改的内容和修改时间,以及修改的性质(更新、删除、添加)。
因为您的工作以数据为中心,所以理所当然成为这个领域真正的领导者。您可以在两个方面帮助组织:
如果您的公司还没有信息生命周期管理(ILM)战略,您可以发起并领导这种战略的定义和实现过程。法律可能要求公司长期保留大量数据,但是这并不意味着应该把这些数据留在数据库中。实际上,在大多数情况下,不应该把所有历史数据留在数据库中。如果这么做,数据库的成本会更高,性能更差,更难恢复 —— 谁会希望这样呢?对于应用程序用户不再需要,但是政府要求保留的老数据,应该把它们从数据库中删除并转移到廉价且可靠的存档系统中;在需要时,可以从存档系统中方便地获取这些数据。另外,可以为存档过程定义条件,根据这些条件自动进行存档。现有的一些软件可以很好地完成这个任务(通过收购 PRinceton Softech 的 Optim 解决方案,IBM 已经成为 ILM 软件领域的佼佼者)。您应该推动公司的 ILM 战略开发,帮助公司有效地管理整个数据生命周期。
数据修改审计越来越重要了。不要认为这只是公司法律部门的事儿;律师们知道法律的要求,但您是能够找到解决方案的人。您可以先了解一下 IBM 的 DB2 Audit Management Expert,这是市场上比较全面的解决方案之一。在数据修改审计方面,一定要防患于未然。
同样,“数据库管理员”这个头衔也无法恰当地反映 DB2 DBA 的这项非常重要的工作。哪个头衔更合适呢?数据守护人(Data minder)、数据警卫(Data guardian)、数据放置者(Data right-placer)?
好了,把前面提到的与数据相关联的关键角色组合起来,就出现了 application Enabler/Data Archiver and Auditor 这个头衔。您认为AE/DAA有朝一日会替代DBA这个头衔吗?