文档库 最新最全的文档下载
当前位置:文档库 › 数据库在线重组管理和优化(DBControl Online)For Oracle技术白皮书

数据库在线重组管理和优化(DBControl Online)For Oracle技术白皮书

NORAD

DBControl Online

ORACLE数据库在线重组解决方案

在线的数据库重组和结构变化,

确保现代的数据库服务标准

目录

简介 (3)

数据库重组的原因 (4)

表与初始存储参数设计的偏差 (4)

追随行业“最佳实践” (5)

消除行链接和行迁移 (5)

对大型表分区 (6)

转换成索引组织表(IOT) (6)

系统体系结构的变化 (6)

传统的数据库重组方法 (6)

传统的数据库重组阶段 (7)

在线数据库重组的好处 (8)

在线数据库重组的方法 (9)

设置阶段 (9)

复制阶段 (9)

同步阶段 (10)

切换阶段 (10)

个案研究 (11)

贝塔斯曼案例 (12)

在线的数据库重组和结构变化,确保现代的数据库服务标准

简介

随着电子商务不断地驱动着现代商业应用的设计和需求,高性能和高可用性的数据库计算现在已经成为服务标准。这个现代的性能标准与宕机时间的高代价有关。针对这类环境开发的管理技术要求在执行标准的维护任务时,必须对系统的性能和可用性没有任何的影响。

如果有能力在这种环境中执行在线的数据库重组,则可以极大地帮助保持总体的数据库可用性,从而减少或者消除计划内的停机时间。相应的又可以增加应用程序的投资回报率(ROI)并降低总体拥有成本(TCO)。在线的数据库重组还可以给予管理员空前的灵活性,能够在用户可以充分访问数据库的同时,修改表的物理属性并同时改变数据和表的结构。

对表进行重组的标准方法是开发复杂的操作系统和数据库脚本,在预定的维护停机期间,自动地进行数据库重组。虽然这是一种常用的方法,但是会涉及到停机、管理和开发成本。此外,如果该种方法的数据库重组失败,那么就只能一直等待直到下次维护停机。

传统的设计可能会争辩可以通过规定正确的初始表的参数配置,来防止数据库重组的需要;但是,即使是对经过最谨小慎微的设计而确定大小的表而言,也可能需要修改存储参数,来使得在不断变化的条件下最优化地使用空间。

数据库重组的原因

表和它们依赖的对象注定需要进行数据库重组,以便最有效地使用空间、预防性能问题、或者与新的硬件体系结构相符。让我们考虑如下情况。

表与初始存储参数设计的偏差

当一个表被初始创建时,数据库管理员必须估计如下的存储参数。

块空间使用参数

PCTFREE 规定对一个块中现有行进行更新时可

用的空间大小。

PCTUSED 设定防止在块上进行更新的空间阈值。

如果数据块的使用率低于该指定参数,

则该块可以用于更新。

INITRANS 规定在一个数据块上可以并发更新行

的事务数目的初始值。

MAXTRANS 规定在一个数据块中可以并发更新行

的最大的事务数目。

区分配参数

INITIAL 设定表的初始区的大小。

NEXT 规定已分配区的大小,直到

PCTINCREASE参数可以应用。

MINEXTENTS 一个表应分配区的最小数目。

MAXEXTENTS 一个表可以分配区的最大数目。

PCTINCREASE 第三个以及每个后续的区受一个组合

空间增量的限制,该限制由NEXT存储

参数和pctincrease值共同确定。

由于前面的这些参数都是在创建表的时候估计的,它们注定要进行调优和修正。只有当表用于生产数据中时,涉及到更新大小和频率的数据的真实行为才能被确立。通过对这些行为进行分析,存储参数应该被优化,以达到真实的性能要求,这就需要进行数据库重组。

追随行业“最佳实践”

从Oracle 8i开始,最佳实践包括使用本地管理表空间。这可以保证所有的新区自动具有标准大小,而不用考虑任何清除区碎片的问题。本地管理的方法通过使用位图来跟踪区,因而不需要访问数据字典。通过本地管理的表,可以获得存储、性能、和管理效率的提升。

除了使用本地管理表之外,防止低效使用空间的第二个方法可以通过设定区存储参数PCTINCREASE=0,同时设定INITIAL和NEXT两个参数相等来实现。这样可以分配大小均匀的区,并能预测空间的大小要求。拥有相同大小的区的表可以共享一个被设计来用于标准区分配要求的表空间。这种隔离可以根据表是小型的、中型的、或者大型的,从而对使用的各个表空间分配相同大小的区。

消除行链接和行迁移

在插入或者更新一行,且行的大小变得比原始的数据块大小更大时,会出现行链接。在这种情况下,Oracle分割该行的数据并把数据链接存储在为该段预留的一串数据块中。行链接是源于数据块大小不兼容所导致的复杂结果。

当更新已有的一行,但更新后的行不能保存在原来的数据块时,出现行迁移。Oracle将该行迁移到一个新块上去。

Oracle必须在原始行和包含迁移行的新块之间建立链接。行链接和行迁移都会降低性能并浪费数据库空间。

对大型表分区

对大型表分区使得数据库管理员能够把表和索引,分成较小的独立单元,这可以极大地提高表的易管理性并平衡I/O。相应地这使得维护过程如对表的分析和在线备份,也被分解为有效的可管理的任务。

转换成索引组织表(IOT)

索引组织表(IOT)是其内容按照B-树索引进行组织的表。索引和表没有分别的存储要求,故而它们合并成一个数据库对象。索引组织表可以节省空间、并只用查询一个数据库对象、并提高基于主键的查询性能。性能增益和节省的存储空间使得数据库重组是值得的。

系统体系结构的变化

如果系统由于I/O出现性能问题,则系统的体系结构可能会改变,考虑添加更多硬盘,均衡数据负载的分布。当出现这种情况时,表和相关对象必须从热点区域移动到一个新的物理磁盘。在线的数据库重组提供了一种高效的、节省时间的方法,来将数据转移到新的磁盘设备上。

传统的数据库重组方法

上面所举的所有例子都是对一个表进行数据库重组的无可非议的理由。当数据库重组可能带来的负面影响与从中获得的性能优势进行比较时,就需要进行权衡。传统的数据库重组方法会伴随着一些风险和时间上的考虑,这种情况下小的性能问题会被忽略。传统的数据库重组的一般方法如下所示。

传统的数据库重组阶段

让表空间离线。

使用优化的存储参数创建一个新

的临时表(TT1)。

将原始表(T1)中数据复制到临时表

(TT1)中。

删除原始表。

将(TT1)重命名为(T1)。

重新创建索引,并应用约

束。重新创建依赖关系。

让表空间在线。

离线的数据库重组必须谨慎协调,尤其是在绝大多数OLTP环境中,维护的时间窗口通常都很小。任何错误如果不能迅速补救,都会造成巨大的财产损失,这同时也对本来就已经严格控制的时间窗口增添了额外的压力。

今天,有大型表和高可用性要求的数据库,为了最大化正常运行时间和性能,对在线的数据库重组能力产生了极大的需求。

在线数据库重组的好处

企业级的商业应用程序必须对位于各个时区的全体用户可用。由于能够在线地执行大多数数据库重组任务,没有中断数据流,这提供了空前的时间优势。大多数用于ASP和金融环境的服务级别协议都要求99.9%的正常运行时间,从而只有极其短暂的维护窗口。

非常昂贵的停机时间成本使得在线的数据库重组是和在线备份一样有价值的服务。有了在线的数据库重组,进行数据库重组时就不用再考虑时间限制。NORAD DBControl Online数据库控制在线提供了业务能力,可以在事务运行的同时,对表及其相应对象进行数据库重组。该技术的应用包括如下在线功能:

9插入、重命名、重排序、或者删除表列

9添加、修改、以及删除约束(非主键)

9指定约束索引存储参数

9计划结构变化

9添加、修改、和删除索引

9添加、修改、和删除分区及其相应属性

9添加、修改、和删除子分区

9对表进行分区和反分区

9将普通堆表修改为索引表,或者反之

NORAD DBControl Online数据库控制在线提供了一种方法,可以极大地减少与表的数据库重组相关的停机时间。表可以被在线重组,以帮助达到可用性要求。离线数据库重组的标准方法无法提供有效容错的环境,来达到高可用性标准的要求。

在线数据库重组的方法

通常,用于在线的数据库重组和结构变化的DBControl Online 方法如下所示。 设置阶段

通过适当的在线数据库重组(Online Reorganization )或者在线结构变化(Online Structural Change)对话框,使用被重组表的信息作模板,利用修改后的参数创建一个新表。 物化 视图日志 用户事务

新表 分区分区分区

例1

索引 复制阶段

针对被重组表的DML 语句被记录在一个日志表中,原来已经存在于原始表中的数据被载入到刚创建的重组表中。 物化 视图日志 用户事务

新表 分区分区分区

例1

事务

同步阶段

NORAD 数据库控制在线(NORAD DBControl Online )会不断的应用事务(可选),来保持原始表和新建的重组表同步,直到主动刷新或切换阶段开始。

在切换之前,主动刷新会一次性地直接对新建的重组表应用所有未应用的事务。

物化

视图日志 事务

新表 分区分区分区

例1

切换阶段

可以设置多个条件,如对表上的活动状态设置一个阈值,来控制切换什么时候开始。当切换时,新建的重组表取代原始表的标识,而原始表则被删除(可选)。

用户

事务 分区分区分区

例1

个案研究

为了展示在线数据库重组的好处,创建一个表,该表有很大数目的插入行,并执行SQL语句计算行数,同时测量所耗时间,确定表的大小。接下来,很多行被删除,再次执行SQL语句计算行数,同时测量所耗时间。最后,该表会被在线数据库重组,最后计算行数并测量所耗时间,从而演示出相应的性能提高。

当数据最初被输入到TEST2中时,它包含2351526行,占据405168K空间。使用COUNT函数,强制进行一次完整的表扫描,给出表中行的小结。

SELECT COUNT(EMPNO)

FROM NORAD.TEST2;

COUNT(EMPNO)

2351526

Elapsed: 00:00:50.62

接下来,删除块中的行,在表中留出“间隙”

DELETE FROM NORAD.TEST2

WHERE EMPNO BETWEEN 499999 AND 1000001

OR EMPNO BETWEEN 1499999 AND 2000001;

1000000 ROWS DELETED

Elapsed: 00:04:86.02

进行第二次完整的表扫描

SELECT COUNT(EMPNO)

FROM NORAD.TEST2;

COUNT(EMPNO)

1351526

Elapsed: 00:00:48.45

这二者的时间差别很小,这是因为就Oracle而言,表中的空间仍然是填充到高水位,表的大小仍然为405232KB。需要对表进行数据库重组,以释放空块、缩短表、加速性能。这是一个演示在线数据库重组的好处的最基本示例。使用NORAD DBControl Online,在有事务在表TEST2上运行时,对表TEST2使用完全相同的存储参数进行数据库重组。表的大小被减少到218400KB,释放了未用的块,性能提升如下所示。

SELECT COUNT(EMPNO)

FROM NORAD.TEST2;

COUNT(EMPNO)

1354467

Elapsed: 00:00:20.03

所展示的好处:

查询速度比原始表有60%的提升

表的大小减小46%

由于是在线的数据库重组,节省了开销和时间

贝塔斯曼商业案例研究

问题

当你运营一个图书俱乐部的时候,记录你客户订

单的数据库就是你商业的生命源泉。如果你是欧

洲最大的图书俱乐部,拥有3700万会员,数据库

就将非常大非常忙。随着数据的不断增加、修改、

删除,在贝塔斯曼书友会心脏位置的SAP系统及其

内含的Oracle数据库中有了越来越多的碎片。这

些碎片反过来导致性能下降,同时增加了对存储

的需求。

在之前的12个月里,书友会把数据库停了12次,

来做数据表的重组。每次数据库就要被停掉12至

20个小时。即使这些宕机只在周日进行,也意味

着电话销售业务不能获得客户采购订单系统所需

要的全部信息。随着数据库的增长率以及存档所

造成的碎片增加,很明显该公司需要一个产品来

执行在线重组。

寻找解决方案

在线重组工具的选择涉及到了多个部分。Arvato

系统负责支持和管理数据库服务器,并且将日常

使用这个产品,所以要获得他们的采购很重要的。

Sun是硬件合作伙伴,已经实施了一套镜像数据库

解决方案,很重要的一点是要确保任何重组产品

都不能与这个镜像功能冲突。在寻找适合的产品

同时,贝塔斯曼书友会也需要找到一个能对相关

不同组织提供多级支持的合作伙伴。

第一个候选产品是BRSPACE,SAP的工具。BRSPACE

可以处理多数情况,但是它不能对有LONG和

LONGRAW类型字段的表进行重组。虽然有LONG和

LONGRAW类型字段的表不足5%,但它们是数据库

中最大也最忙的表。一旦贝塔斯曼需要重组这些

表,就意味着150小时的停机时间。而且,其中两

个表已经变得太大,即使是在当年中最长的停机

时间也无法完成重组。因此,贝塔斯曼要寻找一

个能够处理所有表的工具。

Bradmark技术有限公司12

对我们来说一个最重要的标准,就是这个工具必

须得到SAP的认证。Bradmark的DBControl Online

产品不仅通过了SAP沃尔夫斯堡实验室的综合评

测并得到高度评价,而且SAP在英国的打包服务已

经决定使用这个产品作Oracle在线重组的打包服

务。这使贝塔斯曼对该产品的健壮性有极大的信

心,而产品的健壮性无疑是决策过程中最重要的

标准。

选择产品的另外一个关键标准是与镜像工具的兼

容性,因为镜像工具提供了备份和恢复解决方案。

由于镜像工具Libelle依赖重做日志来创建镜像,

贝塔斯曼对于选择依赖重做日志做同步的工具比

较犹豫,因为这样就不得不做大量的额外测试以

保证两个产品之间的兼容性。幸运的是,Bradmark

的产品使用Oracle的物化视图进行表的同步,不

仅不会与镜像工具冲突,而且这个方法是得到

Oracle和SAP认可的。

与Arvato和贝塔斯曼书友会一起,Bradmark在测

试环境证实了DBControl Online产品的价值。在

标准设置下证明多数数据表做重组的效果很好的

同时,有几个有LONGRAW值的大表在标准设置下无

法达到最佳性能。贝塔斯曼、Arvato和Bradmark

共同调优配置参数,以便为需要重组的表在不同

配置下提供最佳性能。

获得的收益

节省存储 - DBControl Online产品在测试环境

得到了验证,在2005年3月投入生产环境使用。从

那时开始,已经在线重组了很多表。重组在SD、

MM、PS、FI、CO等R/3系统的模块上以及我们的BW

环境中BW和SEM模块上执行过。虽然所有的重组都

会有一些效果,当然对大表来说效果是最明显的。

下表是在我们的SAP R/3系统中使用DBControl

Online重组最初得到的结果:

Bradmark技术有限公司13

表名重组前大小(MB) 重组后大小(MB) 节省 节省百分比CCITCTS/SRSTRAT 3632 1679 1953 54% TST03 7800 4560 3240 42% VBUP 19101 17560 1541 8% LIPS 74023 75400 -1377 -2% CE1Z001 35742 16289 19453 54% VBFS 31992 30449 1543 5% QMEL 13789 12812 977 7% ZYYCS_IF_RETURN 2390 664 1726 72% CCITCTS/OM_RET1 311 97 214 69% CCITCTS/OMCTR13 742 195 547 74% S262 14726 8489 6237 42% VBPA 58007 36440 21567 37% MSEG 12656 8720 3936 31% VEDA 3828 3800 28 1% LIKP 9882 7720 2162 22% VRPMA 9335 7240 2095 22% VAPMA 16562 13200 3362 20% VLPMA 9179 7080 2099 23% BSIS 12773 10160 2613 20% Total 336470 262554 73916 22%

虽然重组可以在任何表上进行,贝塔斯曼书友会

决定聚焦在超过1GB的表上,这些表大约有300个。

由于其他的表被保持不动,经过对这300个表完全

重组之后,总共节省的存储是750GB,约是数据库

表空间的15%。由于在测试环境中还有一个灾备

机,是生产环境的复制品,在所有3个环境中节省

的总空间预计是2.2 TB。

终端用户响应时间– 在生产环境中终端用户响

应时间的提升是最难了解的,主要是因为很多因

素会影响用户响应时间,包括事务数、事务类型、

CPU总负荷、网络性能等。在贝塔斯曼的分析中明

确指出,相当一部分响应时间消耗在数据库操作

上。其中一部分是由于SQL语句的低效,已经进行

了调优;另外一个主要的提升是重建了索引。既

然DBControl Online的解决方案能在重组过程中

重建索引,现在已经用表重组替代了重建索引。

Bradmark技术有限公司14

由于能够提升性能,我们经常对数据表做重组。在300个表中,有50个表每周重组一次,200个表每月重组一次,50个表每季度重组一次。

为了尝试界定其他参数的影响,在重组关键表的前后,我们各对基于VBFA表的账单进程做了14天的度量并取平均值。重组后,这个表的存储空间需求从139GB减少到110GB。运行时的度量数据如下:

虽然吞吐量随着帐单的处理而变化,但可以看出,以类似的账单处理数量相对比,在重组之后平均吞吐量提高了50%。这样的结果是缩短了通宵批量处理的时间,处理进度可以按照既定的时间表完成。

正常运行时间的提升 –使用DBControl Online 产品做在线重组证明,贝塔斯曼已经将系统和数

Bradmark技术有限公司15

据库的正常运行时间从99.2%提高到99.7%。就如

同他们所感觉的,这是一个很重要的区别,他们

已经超越了99.5%这个障碍,使环境真正达到了24

×7的运行状态。

IT人力计划的节省 –在线重组的一个明显好处

就是节省了IT人员用于宕机时间计划和协调的工

作时间。贝塔斯曼估计他们平均花在每次停机重

组、通知各方(包括管理、用户、采购合作伙伴

等)停机影响以及重新安排既定的批量任务的计

划上的时间是6人时。通过在线重组,他们就不再

有这些花费了。

结论

贝塔斯曼书友会IT主管Torsten Fimmel博士评价

到:“我对这个产品的操作方式及有关各方的紧

密配合都非常满意。我们在测试的初期有一些性

能问题,但是这些问题都在Bradmark团队和

Arvato系统的配合下迅速解决了。今天,我们感

觉到拥有了一个非常适合我们的产品,这个产品

使我们可以在常规状况下重组,保证数据库紧凑,

我们可以在终端用户响应问题影响生产力之前把

它们解决掉。DBControl Online使我们可以在不

影响最终用户使用和不增加硬件成本的情况下,

完成这项工作。”

Bradmark技术有限公司16

如需订购,或者需要关于其他Bradmark产品的更多信息,敬请联络:

Bradmark中国区总代理

东方融尚(北京)科技有限公司

北京市海淀区文慧园北路8号庆亚大厦A座0711-0711室

电话:010-******** 62267442

传真:010-********

相关文档