本节书摘来自华章社区《DBA修炼之道:数据库管理员的第一本书》一书中的第1章,第1.3节DBA的管理准则,作者(美)Craig S. Mullins,更多章节内容可以访问云栖社区“华章社区”公众号查看
1.3 DBA的管理准则
数据库管理很少被视作一种管理准则。“准则”一词意味着规划并按照该规划实施。当数据库管理被视作一项管理准则时,公司内部的数据处理就会有所改善了。这就是消极被动和积极主动的区别。
DBA组让需求和问题淹没是家常便饭。这有多种原因,包括人员缺乏、过度承诺支持新的(甚至现有的)应用程序开发项目、缺少可遵循的流程和缺少预算等。这种情况下,数据库管理员就会变得消极被动。消极被动的DBA更像是名消防员,他集中注意力去解决所关注的最大问题。换句话说,消极被动的DBA只有当问题发生后才尝试去解决它们。
积极主动的DBA在企业内部部署数据库时,通过制订并执行战略蓝图,以避免诸多问题。该蓝图应当针对应用程序开发周期(ADLC,详见图1-2)的所有阶段。积极主动的DBA通过执行规范和操作流程,避免问题发生。
积极主动的DBA能避免许多问题。
数据专家,通常指DBA,应当参与ADLC的每一个阶段。在项目启动和需求收集阶段,DBA就要着手识别出项目的数据成分。他能够帮助确认所需的数据已在别处存在或者是崭新的。在分析和设计阶段,他要把基本数据需求转换成一种概念性的、逻辑上的数据模块。
开始开发前,逻辑上的数据模块要转换为一种物理的数据库设计,它可以用DBMS实施,如Oracle或DB2。同时,样本数据必须要植入物理数据库中,用于测试应用程序。除此之外,DBA还要通过开发并实施一种流程去刷新测试数据,进而使得重复的测试能够进行。
当应用程序开发完毕并开始运行时,DBA要确保DBMS为新负载做好了准备。包括:执行适当的安全措施,衡量并修改新应用程序对存储盘和内存的需求,预估新负载对现有的数据库和应用程序会带来什么影响。DBA也负责新数据库从测试环境到生产环境的迁移。
应用程序运行时,DBA要履行“主机”的职责,包括性能和有效性监控、调试、备份和恢复、权限管理。但没有程序或数据库是长期保持不变的,因为业务的需求会改变,支撑业务的IT系统也会改变。当需要维护时,DBA又要再次忙于从需求收集到应用程序运行的整个过程了。当监控发现了一处性能缺陷时,DBA要向开发团队(如果问题出在程序代码上),或者向负责存储的团队(如果I/O是瓶颈)建议更好的性能方案,或者推荐其他的解决方案,如新的或提升了的标准、替代性的SQL代码,等等。
隐私条款与隐私数据
数据隐私是一个新兴的问题,正在成为越来越多的企业的负担。不仅要管理的数据量增加了,新数据出现的速度也增加了。
在这个网络化的世界中,我们彻底数字化了。我们有ID、位置、操作、采购、关联、动作,还有存储的历史数据。我们不禁要问了:是谁在收集这些数据?他们要用这些数据干什么?他们和谁共享这些数据?最重要的是,每个人都会问的是“我怎样保护我的信息不被滥用”。这些都是合情合理的问题,我们都想知道答案。
在美国,有超过30种联邦法规和超过100种国家法规来管制信息隐私,而对个人隐私却一直是采用头痛医头、脚痛医脚的方式。另一方面,欧洲联盟已经下达了数据保护指令,要求其成员国通过法律实现其职权。该指令为信息收集的受众赋予了权利,称受众为“数据当事人”。收集信息的工作人员必须要向数据当事人说明谁在收集数据?最终谁能够访问这些数据?为什么要收集数据?数据当事人也有权限访问和修改他们的数据。
甚至还有数据隐私日,其目的是为了表达对那些通过个人信息表达自己的人的尊重。
最近破产的Borders书店提供了一个隐私政策影响企业数据的例子。Borders停止经营的同时,一家竞争对手书商Barnes & Noble收购了Borders的部分资产,包括Borders的品牌商标和客户名单。然而,其第一个行动就是提醒客户他们的权利。我收到的E-mail是这样说的(部分内容):
然而,重要的是你要明白,你有绝对的权利选择退出,不使你的客户数据转移到Barnes & Noble。如果你选择退出,我们将确保从Borders收到的所有有关你的数据会以安全保密的方式处理掉。
这个例子说明了隐私政策是如何影响数据库管理员和企业数据专家的工作的。当然,也许你工作的公司永远不会破产,但你的公司可能会由于法律法规、经营状况或兼并等淘汰一些应用程序和数据。
最后,当应用程序完成它的使命时,DBA要确定使用该数据的应用程序的最终状态。哪些数据不再需要了?其他的应用程序和进程也使用这些数据吗?是否有规则要求这些数据存储的时间比该应用程序长?企业是否有任何明确的隐私政策强调了处理数据的特殊规则?
DBA负责管理整体的数据库环境,通常包括安装DBMS和设置IT基础设施,以允许应用程序访问数据库。所有这些要在开发任何应用程序之前完成。除此之外,临时数据库访问也是许多企业的需求。
此外,DBA还负责临时查询环境的建立,包括查询和报表工具的评估以及实施,建立工作准则和工作流程以确保临时查询的有效性,以及监控调优临时SQL语句。
如你所见,一名优秀的DBA和整个应用程序开发生命周期融为一体。DBA数据方面的知识以及利用现代化的应用程序管理数据的方式都很受欢迎。
优秀的DBA和整个应用程序开发生命周期融为一体。
DBA生涯的一天
DBA生涯的每一天都是非常忙碌的。他要做好多事情:不仅要维护生产环境和测试环境,同时还要关注现有的应用程序开发项目,参加策略和设计会议,帮助选择和评估新产品,把一些老旧系统联网。DBA Joe刚才提交了“见鬼的查询又把系统搞崩溃了,你又能怎么样呢?”的评论。所有这些对于DBA来说都可能在同一天发生。
置身混沌之中,DBA要知道所有事情,从技术到商业术语,再到最新的管理和技术的热门话题,这些他们都要知道。没有任何私人时间,DBA在任何时候都要做好准备来回答任何问题,不仅是关于数据库的。
每当应用程序出现问题时,人们总是首先谴责数据库环境。数据库“有罪,且除了证明它无罪之外别无他法。DBA从没有遇到过某个应用程序开发人员过来请教:“这里的SQL我用得很糟糕,你能帮忙解决吗?”一般是开发人员闯进DBA的工位吼道:“DB2(或者指责你最钟爱的DBMS)有个问题,你为什么不把它解决掉,那样我很炫的程序就能跑起来了!”
应用程序出现问题时,数据库是“有罪的,直到证明是无辜的”。
因此,DBA不得不去证明那个问题不是数据库引起的。他必须要知道信息技术的方方面面,在他所设计的DBMS和数据库架构中跟踪并排除错误。因此,他不仅要是数据库技术方面的专家,还要知道和DBMS关联的所有IT元件:编程语言、操作系统、网络协议和网络产品、事务处理器、能想到的所有计算机硬件,以及更多。需要了解如此多样化的知识,DBA也就成了非常宝贵的资源。他们的工作也变得有趣且充满挑战。
DBA的工作是没有休息的。数据库程序是全天候运行的,所以DBA要时时做好处理问题的准备。DBA大多随身携带呼机或手机,保证随传随到。如果数据库在凌晨2点出了问题,DBA也要从床上爬起来清醒一下就去解决问题,让应用程序重新跑起来。否则会导致数据库故障,有可能导致业务流程完全终止。
DBA经常周末都坐在电脑前,在数据库使用低谷时段维护并重组数据库。早上9点到下午5点期间维护数据库,不能让关键的数据库停止工作。坦白来讲,现在越来越多的企业都是24小时工作制,昔日的8小时工作制已经成为神话。
如果这对你还有吸引力,那么请继续往下读。实际上,也并不像听起来那么糟啦。这项工作很有趣,总是有新东西可以学,并且如前面提到的,薪水也不错。问题是,哪个人能20年甚至更多年一直做这种工作而不需要休息的?额,我好像听到你手机响了,你可能要去看看有什么事了。