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

日期: 2008-07-24 作者:黄永兵 来源:TechTarget中国 英文

第一步:录制负载


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为它最后重放准备具体的元数据,所有影响重放结果的参数也是在这一步进行修改的。


在相同数据库版本上重放时这个预处理过程必须存在,当只要数据库版本匹配,就可以在一个生产、测试或其他数据库系统上执行擦除操作,实际上,Oracle强烈建议在一个非生产服务器上执行这个元数据的“整理”操作,以不影响生产服务器的性能或健康为宜。


第三步:重放负载


负载已经整理好了,可以启动重放操作了,完成元数据擦除后,选定的DBR重放客户端就可以随需重放负载了。


复位测试环境:在启动重放前,DBA首先必须复位用于测试的目标数据库和主机环境,因为在应用改变前,测试服务器的关键部位需要与生产服务器匹配,否则,可能引发非预期的回归,幸运的是,随Oracle 10g数据库出现的闪回数据库(FLASHBACK DATABASE)特性帮助我们简单完成这个任务,其他可选的包括通过RMAN恢复到一个时间点,或使用数据泵导出导入,一旦测试环境正确地复位完毕,接下来,DBA应用所有的改变到测试服务器上的生产系统,使其现在的状态变为p+1,然后传送前面捕获的负载给这个p+1服务器。


通过重放驱动重放负载:当在p+1服务器上最后一次重放前面捕获的负载时,一个叫做重放驱动的应用程序向目标数据库系统发送请求,因为重放驱动是客户端不可知论的,对Oracle 11g而言最初发送请求的客户端类型是没有区别的,重放驱动消灭了录制的负载和向p+1系统发送请求的过程,就象是外部客户端发送的请求一样。


因为它将在所有重放客户端之间分配所有的负载捕获流,重放驱动可能会考虑网络带宽、cpu和内存容量,重放驱动也可能充分利用重新映射连接字串,使它们建立起一对一(如单实例到单实例)或多对一(如单节点到多个RAC节点)的关系,意味着连接负载均衡可能需要考虑,同样重要的是,重放驱动会忽略最初由外部客户端产生的活动(如EM数据库控制),不会重放这种活动,同时,它还会忽略通过数据库连接连接到外部数据库或访问目录对象的活动记录。


另一个使用数据库重放吸引人的优点是:可以同步模式或异步模式重放捕获的负载。在同步模式下,每一个事务都按照录制时的顺序准确地重放,然而,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集群数据库上重放预处理过的负载


标识出在转移到类型目标环境过程中可能出现的问题

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐