快捷搜索:

Oracle 11g数据库重放教程(一):数据库重放步骤

Oracle DBA很早就渴望能够在临盆情况中捕获利用法度榜样的负载,然后经由过程在测试情况中重放捕获的负载来判断数据库或利用法度榜样的篡改对数据库机能的影响,Oracle 11g数据库新的数据库重放特点使DBA可以捕获,处置惩罚负载,然后有选择性地或跨大年夜范围的数据库情况和平台整个重放,本文为在日益不稳定的数据库情况中应用Oracle 11g数据库重放有效地快速预告利用法度榜样的改变对机能的影响供给一个入门。

假如我在IT行业这几年教会了我统统,那它是继墨菲定律(凡事只要有可能掉足,那就必然会掉足)之后的又一真理了,以前的几年里,我熟识到了多个墨菲定律推论的精确性,包括“替代的零件每每不能代用”及分外是“墨菲实际上是一个乐不雅主义者”的回答,我盼望有一天我自己的推论也能经由过程经久的察看被添加到这些严格的定律中,我的推论便是:“没有器械能够象在测试情况那样在临盆情况中运转”。

Oracle DBA面临一个严酷的寻衅:若何准确预告下一组对数据库或利用法度榜样,以致是硬件设置设置设备摆设摆设的篡改对全部数据库情况孕育发生的负面影响。这里所说的全部情况字面上的意思是:任何利用法度榜样运行时履行的每一条SQL语句,不管它仅仅是一个简单的查询语句照样包括大年夜量DML语句的批处置惩罚功课,都必须捕获。这个寻衅今朝变得加倍尖锐,由于当前的利用法度榜样负载大年夜都是跨多个技巧孕育发生的:N层利用法度榜样办事器、web farms、以致传统的客户端/办事器模式利用法度榜样。况且,当某个利用法度榜样履行速率慢下来时,要跟踪追捕反省机能下降的根滥觞基本因险些弗成能的。它可能是因不精确的收集设置设置设备摆设摆设、不精确的利用法度榜样办事器设置设置设备摆设摆设、以致可能是由于利用法度榜样客户端情况变量设置不精确引起的。

今朝实现这个艰难的目标独一的选择是“捕获/重放”利用法度榜样负载产品套件,这类利用法度榜样是专门设计用于捕获当前临盆情况数据库已经履行过的完备负载(p+0),然后重放该负载(p+1)。然而,以我多年的履历看来,这意味着公司要尽早购买第三方较昂贵的办理规划(如HP的LoadRunner对象)。软件的许可资源和办事器的设置设置设备摆设摆设资源必要集中精力斟酌,分外是人力资本设置设置设备摆设摆设的斟酌,可能在捕获/重放负载开始之前很轻易就会达到六位数美金的投入了。这便是为什么许多IT机构放弃了这个设法主见,由于测试利用法度榜样机能倒退的资源身分使其变得不太可能。

机能倒退之外的身分

我之前写的关于Oracle 11g新的SQL语句机能调试特点:SQL机能阐发器(SPA)和SQL计划治理器(SPM)已经评论争论过Oracle 11g是若何让DBA定位因利用法度榜样情况改变引起的机能提升、维持原样、机能倒退的SQL语句的,所有捕获/重下班具都必须要能捕获并能对照源(p+0)和未来(p+1)系统、利用法度榜样、数据库机能统计,分外是当前机能较低的SQL语句。但这里我还要提出别的两个必要标记的回归类型:

差错回归:在重放捕获的负载时,经常会遇履新错,事实上这个差错险些便是一个想要的结果,例如:我想校验一个预期中的非常,如违抗引用完备性(如主键、外键、独一键、CHECK、NOT NULL约束)呈现时能被精确地捕获,同时,我还盼望有违抗紧张的事务规则的环境呈现能被捕获到,如在反省人员人为单时发明基础人为与总人为扣除所有用度后不平衡的环境,我盼望这种非常能被算作差错一样被捕获到。

是以,任何强大年夜的捕获/重下班具都必须能够监视下面三种类型的差错回归:

所有预期的差错都发生了吗?

有不是预期的差错状态呈现吗?很显然,这注解严格的因系统或利用法度榜样改变的差错回归是可能的。

预期的差错有没有呈现的吗?这种环境更繁杂了,由于这注解在系统或利用法度榜样内某些不祥的工作已经发送变更了,也可能是紧张的事务规则被滥用或没有利用到所有事务上。

数据回归:所有捕获/重下班具在重放完成后,假如数据本身呈现了差异还必须发出提醒旌旗灯号,例如,在测试一个关键义务的金融系统时,我必须确保相同的金融营业安装合理的顺序完成,在p+1情况所有帐户总和都应该象p+0情况中达到平衡,假如结果不一样,我必须斟酌在我的利用法度榜样、数据库或情况中是什么改变导致了重放不正确的环境呈现。

本文接下来的4小节供给了数据库重放功能的高档入门指南,实现它们的通用目标:在从p+0到p+1迁移一个临盆系统时准确判断必要回归到什么程度,本系列后面的文章中,我会先容若何使用数据库重放功能捕获、预处置惩罚、重放和阐发重放结果。

Oracle 11g企业治理数据库节制台供给了一个异常直不雅的治理数据库重放功能的接口,如启用负载捕获,预处置惩罚,回归阐发等,每一步它都供给了优越的状态反馈信息,图1显示了初始的数据库重放节制台界面:

图1:数据库重放节制台主界面

这一步看到的整个负载便是对临盆数据库捕获和录制的内容,DBA只必要包管在临盆系统上有足够的负载,DBR做了其他所有工作(捕获所有外部客户端提议履行的SQL语句),这包括:

SQL查询,DML语句和DDL语句。

PL/SQL块和远程历程调用(RPCs)。

工具导航哀乞降OCI调用。

留意DBS捕获操作履行历程中,Oracle 11g不会竣事任何后台运行中的功课,所有内部客户端也可以继承孕育发生哀求。

DBR经由过程一系列影子进程记录负载,这些影子进程过滤出需要的信息准确地复制系统负载,着末将这些元数据写入一系列XML文件,后面重放时便是应用的这些XML文件,Oracle 11g DBA只必要关心文件系统上是否有足够的存储空间来重放这些XML文件。

第二步:“收拾”负载

当DBR负载录制完毕后,在重放前,老是必要对其进行一些细微的调剂。例如:从新映射外部客户真个连接,以便在p+1情况中能准确地重放,在这一步中,DBR为它着末重放筹备详细的元数据,所有影响重放结果的参数也是在这一步进行改动的。

另一个应用数据库重放吸惹人的优点是:可以同步模式或异步模式重放捕获的负载。在同步模式下,每一个事务都按照录制时的顺序准确地重放,然而,DBR也可以异步重放负载,如不斟酌事务的同步性,是以可以孕育发生比录制时更大年夜的负载,这在试图履行一个“测试到破坏”新的或改动过的数据库情况时分外有用。

DBR负载重放的范围:Oracle 11gR1数据库重放功能可以准确地评估下面几类对数据库情况的改变。

◆数据库进级

◆数据库打补丁

◆改变数据库模式

◆改变初始化参数

◆改动一个或多个RAC节点及其内连设置设置设备摆设摆设

◆操作系统平台的观点,包括从32位转移到64位

◆改变办事器内存或cpu设置设置设备摆设摆设

◆改变数据库的存储设置设置设备摆设摆设,包括在文件系统(如ext3,ntfs)、ASM存储、和/或RAW存储之间迁移数据库文件DBR负载重放限定:数据库重放模拟能力有一些显明的(且合理的)限定:

◆SQL*Loader直接路径装入不能重放,老例路径SQL*Loader操作可以重放

◆导入导出操作,不管是经由过程传统的要领照样数据泵的要领,都不能重放

◆Oracle共享办事器会话不能跟踪

◆闪回数据库规复和Flashback查询操作不能重放

◆Oracle数据流,包括非基于PL/SQL的高档查询,不能重放

◆散播式事务处置惩罚,包括远程COMMIT操作,只能算作本地事务重放

◆基于Oracle调用接口(OCI)工具导航不能重放

对付大年夜多半部分,这些限定故意义,例如:闪回数据库本色上是一个不完全的数据库规复操作,是以它不是正常事务处置惩罚的范畴,我也不会斟酌它是否会使机能倒退,虽然限定对付共享办事器会话故意义,但仍旧有一些数据库是应用共享办事器作为连接池的,是以这是一个小小的遗憾。

第四步:回归阐发

负载重放完毕后,数据库重放将供给多个有关在p+1情况和p+0情况下负载机能不合的阐发,正如我在本文最前面提到的,任何好的回归测试套件都有能力捕获和阐发机能回归、数据回归和差错回归,DBR在这些方面没有让我们失望。

例如:DBR能够经由过程它的一套捕获重放申报急速检测到任何机能差异,经由过程这些申报,可以下钻到存储在ADDM(自动数据库诊断监视器)、AWR(自动负载仓库)和活动会话历史(ASH)申报中更具体的阐发。

无论问题出自哪里,DBR都能识别并处置惩罚下列两种类型的问题:

联机问题象征DBR可能做了一些误操作,应该先停息,否则重放的结果变得没什么意义

脱机问题实际上是数据库重放操作成功的预期结果,这种类型的问题平日是在重放操作停止后被检测到的

下一步

理论常识具备了,在本系列的下一篇文章中,我将阐述:

在Oracle 11gR1数据库单实例上捕获一个简单的负载

预处置惩罚捕获的负载

在一个双节点的Oracle 11gR1 RAC集群数据库上重放预处置惩罚过的负载

标识出在转移到类型目标情况历程中可能呈现的问题

您可能还会对下面的文章感兴趣: