数据库管理成熟度模型

Ver 1.1

 

作者: Thomas B. Cox

翻译: 崔晓波(local0)

 

 

 

 

2002/2/17

 

 


目录

 

¨         数据库管理成熟度模型

 

¨         数据管理员、数据库管理员和数据设计者的区别

 

¨         任务性质的区别

 

¨         数据库生命周期

 

¨         数据库设计者和数据库管理员

 

¨         数据库生命周期中的任务

 

¨         数据库生命周期和DBA的任务

 

¨         DBA任务流程(对于成熟数据库)

 

¨         SLA协议样本


 

一、        数据库管理成熟度模型

DBA MMDatabase Administration Maturity Model

本文档讨论了数据库管理,勾画出ORACLE数据库管理员在开发阶段和维护产品

阶段应该执行的任务。

DBA MM分为5个级别

级别

焦点

关键处理域

初步(INITIAL

关注:没有

工具:个人发挥(HEROISM

u       成功是偶尔发生的和不可重复的

u       工作表现为:紧急应对、救火、个人发挥

可重复(REPEATABLE

关注:可重复的DBA过程

工具:DBA 日常检查列表

u       项目计划(DBA项目、DBA开发支持)

u       项目跟踪、勘漏(DBA项目)

u       子项目管理(DBA项目外包或子项目)

u       配置管理(数据库软件、DBA工具、变更管理)

定义(DEFINED

关注:将DBA处理工作定义化、文档化

工具:DBA培训

u       需求管理(服务级别)

u       质量保证(DBA任务)

u       最佳的实践被明确化并可传播(培训)

u       工作被明确定义,任务执行情况可以被确切的度量

管理(MANAGED

关注:过程控制,即DBA处理流程是稳定的和可度量的,所有的变化及其起因都被记录和标注。

工具:SLA

u       所有变化都能可控的记录下来,并在变化的之前和之后进行度量,以确认变化是否有效。

优化(OPTIMIZING

连续的过程优化:

首先要可重复才能提高

首先要可定义才能度量

首先要可度量才能管理

u       管理实践中得到提高,技巧得到提炼

u       变化的因素得到系统的控制,教训学习中得到更大的提高

 

 

 

二、        数据管理员、数据库管理员和数据设计者的区别

根据数据库使用过程中任务的不同,划分为3个任务集合:

(1)       数据管理任务

(2)       数据设计任务

(3)       数据库管理任务

可能会一人同时担当多个角色,但是3类角色的任务是不同的,表现在:一方面任务的性质是不一样的,另外一方面,不同的任务出现在数据库生命周期的不同阶段。

 

三、        任务性质的区别

1、数据设计  

   数据设计关注数据的逻辑、物理模型的建立,这些模型之后会作为对象存储在数据库中。

   为解决特定的商业问题,在应用所涉及的范围中,建立这些模型,顺序是:

   应用范围 à 商业需求 à 数据逻辑模型 à 数据物理模型

   数据设计负责以下具体方面:

u       建立的模型能够充分满足商业问题的需要。

u       确保模型在构建在应用领域之内(通常模型涵盖的范围略大于应用所需,这是为了将来应用系统与其他系统接口,但是模型不能过大的脱离实际应用)

u       建立一个用户可以接受的物理模型(影响性能提高的主要因素是应用的编码,数据设计者应该尽可能的提高性能,而不是破坏它)

 

2、数据管理

   数据管理负责制定访问策略:谁拥有什么数据、谁能创建、改变、删除什么数据,

   数据管理者必须跟踪控制数据元素的所有权,这项工作与数据的设计无关,也和数据的

存放细节(DBA)无关。具体而言:

u       谁拥有数据

u       谁拥有数据的定义

u       在数据的生存周期中,如果需要变更所有权,什么时候、如何改变(如销售人员拥有定单一直到定单提交,发货人员接着拥有它一直到货物发出,然后由财务人员拥有,直到受到货款)

 

3、数据库管理

   数据库管理员负责维护数据库的物理运行(如将数据存放在某个磁盘上),DBA负责:

u       维护数据库,使它运行在数据库开发者要求的状态下。

u       进行调优、分担负载、打PATCH、升级、备份、恢复等

u       除了逻辑访问(应用级)以外的数据库所有方面。 

    特别注意,DBA的职责中没有写SQL应用,写SQL应用是开发者的工作,如果DBA承担

这项任务,他就成为开发人员,不是DBA

 

四、        数据库生命周期

一个新的数据库诞生,通常是为了满足新的应用(或需要在老的数据库上无法做大量的改变),为合理的构建数据库,必须有人分析应用,设计合适的表结构(使用E-R模型,而后影射为数据表,也可以直接设计数据表)。设计表应先于其他的阶段。

设计表主要由数据设计者完成,除了设计表之外,数据设计人员还负责影响分析,这发生在应用需求变化时,决定需要进行哪些变更。

 

数据库生命周期

设计者

数据管理者

DBA

1.决策、分析

表设计,安全设计

数据所有权,安全策略

 

数据库生命周期

设计者

数据管理者

DBA

2.设计,建造

影响分析

变更管理

安装,生成数据文件,表、表空间建立,备份/恢复计划,安全过程

3.幼年

 

 

物理重组,性能调优

4.成熟

 

 

异常情况监控,性能监测,性能调优,执行备份/恢复,数据文件管理

A.小变更

影响分析

变更管理

表修改

 

B.大变更

影响分析,表重设计

变更管理

建表

 

      每当应用的需求发生变化时,数据管理员都需要进行变更管理,以确保所有的数据属

于相应的用户。

 

      在项目的后期,表的设计完成后,开始由DBA进行建表,包括空间划分,存储参数设置(根据数据设计人员的要求),分布数据以获得负载平衡。如果遵从OFAOPTIMAL FLEXIBLE ARCHITECTUREDBA必须按照OFA的要求进行数据文件划分。

 

 

五、        数据库设计者和数据库管理员

  区分数据设计者和DBA,关键的一点不同是:

Ø         数据设计人员的工作在于数据库的逻辑构建(实体、关系、表设计)

Ø         数据库管理员的工作在于物理问题的解决(数据文件、磁盘负载分担、备份、恢复)

 

      这种观点有其正确性,但是如果严格按照这种分法,也存在潜在的问题。让数据设计人员有数据库物理构建方面的知识,是一种很好的方法,这使数据的设计可以方便的实现和维护。在汽车制造行业,类似的行为称为“为制造而设计”。设想设计人员面临两个选择,它们在功能上完全一样,但其一的制造很廉价,如果设计者没有生产方面的知识,他将不知道哪个方案更廉价、更容易实现。

 

      另外曲解这一观点的做法是:让DBA负责数据库设计。有些人的确这样做,他们通常进行设计仅仅考虑如何易于维护,而忽略了应用的要求,这样的设计通常以失败告终。

 

以下是根据任务的不同,列出数据库生命周期的任务分布:

执行者

任务

频率

生命周期的阶段

描述

设计者

表设计

一次

1 B

设计符合应用要求的表结构,当需求改变时,做相应的调整

执行者

任务

频率

生命周期

描述

设计者

安全设计

一次

1

确保数据库的设计满足应用的安全性要求

 

影响分析

根据需要

2AB

当应用改变时,审视数据库设计的那些方面需要相应的调整。

数据管理者

数据所有权

一次

1

确认谁拥有哪些数据,并对之进行维护。

 

安全策略

一次

1

决定谁可以授权访问数据,谁可以在什么时候将那些数据共享给别人

 

变更管理

根据需要

2AB

当应用或其数据发生变化时,确保所有数据保持清晰的所有关系,通知相关需要改变的用户

DBA

安装

一次

2

安装数据库

 

创建数据文件

一次

2

为特定的表空间创建数据文件,减少磁盘访问冲突,根据设计使用OFA

 

制定备份/恢复方案

一次

2

建立备份恢复方案,并进行测试

 

安全措施

一次

2

创建role,分配数据访问权限,系统权限,创建用户,初始化审计功能。

 

-表空间映射

一次

2

根据OFA或其他的准则,创建表-表空间对应关系,并向使用文档纪录

 

创建表

一次

2B

在相应的表空间上创建表

 

物理重构

根据需要

3

在表空间内重构表,创建/改变索引,创建/改变簇,

 

性能调优

根据需要

34

起初查找物理配置的严重问题,如索引没有建等。当数据库建成后,通过性能监测任务,对需要调整的部分进行调优。

 

异常监测

每天

234

通过LOGTRACE等日志检查异常情况,通过EMAIL接受用户的问题报告。

 

性能监测

每周

4

根据事前定义的SLA等,对数据库的性能进行检查。

 

数据文件管理

根据需要

4

根据需要分布数据文件,扩展数据表空间

 

执行者

任务

频率

生命周期

描述

DBA

执行备份/恢复

每天

4

执行在线、离线、日志等备份,需要时进行恢复。

 

表修改

根据需要

A

当应用发生小的改动需要变动表时,DBA必须在保证已有数据可靠性前提下进行修改。

 

 

六、    数据库生命周期中的任务

 <