Oracle Real Application Testing(简称RAT)是11g的一个重要的feature,其推出的初衷是为了满足数据中心变更后有很好的方法和工具去衡量这些变更对于生产环境的应用带来的影响,更好的评估诸如硬件升级,软件升级,架构变化等等对于客户应用程序的影响。

Real Application Testing其实有两个解决方法,分别是Database Replay和SPA(SQL Performance Analyzer)。

Database Replay,数据库回放顾名思义可以理解为一个录像机,通过在源系统上把实时应用产生的负载录制下来,并拿到变更后的环境进行播放,从而进行一个对比。数据库回放分为四个阶段完成:录制、预处理、回放、结果分析和报告。

SPA就是针对更细颗粒的SQL给出变更前后的执行结果,并进行分析和建议。SPA一般配合在数据库回放中进行使用。

下面重点介绍数据库回放中的四个步骤如何完成。

1. 录制(为了支持老版本的数据库,RAT提供了一个打开捕捉的开关参数,在10.2的环境也可以使用)

1.1 首先创建一个操作系统目录,用于存放录制的文件

1.2 在数据库中创建一个目录,用于跟OS的目录对应:

create or replace directory “sample_cap_dirobj” as ‘/tmp/sample_cap_dir’;

1.3 设置捕捉的过滤条件,有时候我们需要限定只捕捉部分的工作负载,可以通过这个设置来达成:

exec dbms_workload_capture.add_filter(

‘sample_cap_filter’,

‘‘,

‘[VALUE]’);

比如,只捕捉SCOTT用户的负载:

exec dbms_workload_capture.add_filter(‘sample_cap_filter2’, ‘USER’, ‘SCOTT’);

1.4 检查下限定条件设定的是否正确:

select type, name, attribute, status, value from dba_workload_filters;

1.5 开始捕捉:

exec dbms_workload_capture.start_capture(‘sample_cap_name’, ‘sample_cap_dirobj’, NULL, ‘INCLUDE’);

1.6 使用下面的视图检查当前的捕捉情况和状态:

select name, directory, status, start_time, end_time, duration_secs, errors

from dba_workload_captures;

一般情况,捕捉的时候如果没有设定捕捉的时长,就需要通过手工的命令进行停止。

1.7 停止捕捉:

exec dbms_workload_capture.finish_capture;

1.8 为了分析变更前后的负载运行情况,推荐在捕捉结束之后进行导入一个AWR报告:

declare

capture_id number;

begin

select max(id) into capture_id

from dba_workload_captures

where status = ‘COMPLETED’;

dbms_workload_capture.export_awr(capture_id);

end;

/

2 预处理(预处理之前需要把捕捉好的文件copy到变更后的环境,预处理的数据库版本需要跟回放的版本保持一致)

2.1 同样创建一个目录的对象指向目标环境的录制后的文件

create or replace directory “sample_rep_dirobj” as ‘/tmp/sample_rep_dir’;

2.2 预处理:

exec dbms_workload_replay.process_capture(‘sample_rep_dirobj’);

2.3 初始化播放:

exec dbms_workload_replay.initialize_replay(‘sample_rep_name’, ‘sample_rep_dirobj’);

2.4 如果播放环境和捕捉环境数据库配置不同,则需要进行一个映射的过程:

exec dbms_workload_replay.remap_connection(, ‘‘);

比如:

exec dbms_workload_replay.remap_connection(1, ‘(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sample_host)(PORT=1234))(CONNECT_DATA=(SERVICE_NAME=sample_sid)))’);

2.5 设置播放模式,可以支持同步和异步两种方式:

exec dbms_workload_replay.prepare_replay(synchronization => TRUE, connect_time_scale => 100, think_time_scale => 100, think_time_auto_correct => FALSE);

3 回放(需要准备好相应的客户端,包括启动客户端和开始回放两个步骤)

3.1 准备客户端(RAT提供了客户端的工具wrc,位于ORACLE_HOME/bin/目录下)

根据工作负载的强度大小,准备相应的客户端,可以使用wrc的评估模式来衡量大约需要多少客户端。

$ORACLE_HOME/bin/wrc /mode=calibrate replaydir=/tmp/sample_rep_dir

3.2 启动客户端:这个时候客户端属于就绪状态,等待播放开始

$ORACLE_HOME/bin/wrc /replaydir=/tmp/sample_rep_dir

3.3 开始播放:

exec dbms_workload_replay.start_replay;

3.4 播放结束

exec dbms_workload_replay.cancel_replay;

4. 报告和分析

4.1 分别导入捕捉和回放时候的AWR:

select dbms_workload_capture.import_awr(, ‘SYSTEM’) from dual;

select dbms_workload_replay.import_awr(, ‘SYSTEM’) from dual;

4.2 查看捕捉和回放时候的报告:

select dbms_workload_capture.report(, ‘TEXT’) from dual;

select dbms_workload_replay.report(, ‘TEXT’) from dual;

上面全部是通过命令行的方式来完成的Database Replay的过程。如果你熟悉EM的操作,通过EM来完成同样的工作更加简单,而且直观,Oracle也是推荐你通过EM的方法来完成捕捉,准备,回放和报告的。

oracle rat结果分析比较,Oracle RAT介绍及最佳实践相关推荐

  1. Oracle 12c数据库优化器统计信息收集的最佳实践

    Oracle 12c数据库优化器统计信息收集的最佳实践 转载自     沃趣科技(ID:woqutech) 作者         刘金龙(译) 原文链接   http://www.oracle.com ...

  2. 选择嵌入式分析提供商的五个最佳实践

    越来越多的用户都期望在企业应用程序中嵌入数据分析和可视化.然而并非所有的分析平台都可以直接嵌入到其他应用之中.企业应用的技术产品经理应使用本文介绍的最佳实践,选择合适的嵌入式数据分析提供商. 摘要 关 ...

  3. oracle 在线表分析报告,Oracle Statspack分析报告详解(一)

    statspack 输出结果中必须查看的十项内容 1.负载间档(Load profile) 2.实例效率点击率(Instance efficiency hit ratios) 3.首要的5个等待事件( ...

  4. 干货丨金仓JDBC读写分离介绍和最佳实践

    背景和目的 当前业务系统面临的业务压力越来越大,单节点已经难以满足现在和未来的业务需求.因此市面上出现了很多的解决方案,其中就包括读写分离集群.读写分离通过备机读负载均衡,降低主机上读负载,以此提高整 ...

  5. Kyligence 客户案例“泰康集团精细化经营分析与运营平台”获评数据智能最佳实践案例

    近日,"2022 爱分析·中国数据智能最佳实践案例"评选结果正式揭晓.Kyligence 携手泰康集团申报的"泰康集团精细化经营分析与运营平台"项目经过多轮角逐 ...

  6. oracle的日志分析工具,oracle日志分析工具LogMiner使用(实战)

    要安装LogMiner工具,必须首先要运行下面这样两个脚本,这两个脚本必须均以SYS用户身份运行.其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件.第二个脚本用来创建DBMS_LO ...

  7. oracle 9i生成分析报告,ORACLE 9i 以后的分析函数汇总 - fesing - Qihang.Net

    现在少做一些汇总: Ⅰ.start with...connect by prior connect by 是结构化查询中用到的,其基本语法是: select ... from tablename st ...

  8. oracle 查询脚本分析,一个oracle数据查询脚本

    -- Create table create table TEST_ZL ( CONTRACT_ID VARCHAR2(32), PROJECT_ID VARCHAR2(32), AMOUNT NUM ...

  9. Oracle SaaS精准营销,Eloqua 结合微信的最佳实践

    市场部如何驱动业绩增长,保证销售团队拥有高质量的潜在客户?升级营销自动化体系需要重点关注: 客户精准画像:把握精准的客户画像与分类,根据客户购买旅程,提供定制化的内容. 打通多元渠道:与客户互动的渠道 ...

  10. SequoiaDB扩容介绍与最佳实践

    2019独角兽企业重金招聘Python工程师标准>>> 1. 前言 随着业务系统非结构化数据年增长量较大并且数据越来越多.在业务系统投产后,由于业务量的增加使得集群可使用存储容量逐渐 ...

最新文章

  1. 2022-2028年中国交通建设PPP模式深度分析及发展战略研究报告(全卷)
  2. 感恩工作平台心得体会_感恩有你,一路同行——石龙联社组织举办10月份员工集体生日会...
  3. 《Python核心编程》第二版第36页第二章练习 -Python核心编程答案-自己做的-
  4. JavaScript中随着鼠标拖拽而移动的块
  5. 实现接口时@Override注解问题
  6. 容器源码解析之LinkedHashSet(六)
  7. Android无线测试之—UiAutomator UiDevice API介绍六
  8. 奇安信RSA观察|RSAC应用安全技术新风向
  9. ABAP - 3D Graphs with SAP
  10. duilib加载xml以及资源文件的路径问题
  11. python DEA: by-product NDDF DEA模型
  12. 家里计算机网络布局图,图解八种家庭网络常规布局优缺点
  13. Windows2003搭建IIS网站
  14. c语言 白噪声,高斯白噪声 C语言实现
  15. java pdf 盖章
  16. 中医针灸学综合练习题库【9】
  17. PHP导出Excel,亲测有用
  18. Xilinx FPGA “打一拍”“打两拍”以及IOB含义
  19. 基于移动终端的大学生心理健康交互管理系统的研究与设计
  20. 程序员的工资是不是被高估了?

热门文章

  1. java实现即时通讯软件
  2. 美通社企业新闻汇总 | 2019.1.17 | 骊住在上海成立亚洲研发中心,霍尼韦尔深入参与中国最大石化项目建设...
  3. ORB-SLAM2代码阅读笔记(一):从mono_kitti单目运行开始
  4. cpu load是什么?
  5. 剑指Offer之二维数组中的查找
  6. 校验EXE文件防止软件被破解
  7. 计算机毕业设计Java优乐帮育儿系统(系统+程序+mysql数据库+Lw文档)
  8. 山丽防水墙客户端的卸载
  9. linux离线安装nettools,CentOS最小安装之安装net-tools并配置网络
  10. 谷歌学术 rss_更改Google RSS文件夹