Oracle11g新特性之Replay a captured workload 捕获工作负载新环境重放负载测试压力

Oracle 数据库11g新特性之性能优化篇》

Replay a captured workload 捕获工作负载新环境重放负载测试压力】

引言:DB Replay工具是Oracle11g的一个新组件,它的加入有效的提高了Oracle在数据迁移、新环境部署、系统升级等场景下的性能监控与自动化优化能力。

真实案例:

一枚客户希望识别环境改变带来的全面影响,一般无法模拟真实环境的工作负载,而DB Repaly可以捕捉到旧环境下的工作负载生成负载文件(包含工作压力和并发性),并把负载文件传送到新环境,在用DB Repaly还原旧环境下的工作负载对新环境的影响,测试其性能情况和稳定性。

应用场合:1.数据库升级

       2.操作系统升级

       3.存储系统升级

       4.数据迁移

       5.新环境的部署

分析比较报告:1.错误

         2.数据差异
         3.性能差异

实现流程:

1.捕获一个数据库工作负载

2.预处理一个数据库工作负载(把负载文件处理为重放文件)

3.重放一个数据库工作负载
 还原重放文件用于重放
 
孤立环境引用
 
重放客户机wrc模拟客户端

4.新环境下的工作负载性能分析

一、使用Grid Control来完成设置与操作

1.负载文件存放在capture目录下

[oracle@leonarding1 scripts]$ cd capture/

[oracle@leonarding1 capture]$ ll

total 72

drwxr-xr-x 12 oracle dba  4096 Jul 24 22:29 inst1

-rw-r--r--  1 oracle dba 37490 Jun 22 09:05 wcr_cr.html

-rw-r--r--  1 oracle dba 18090 Jun 22 09:05 wcr_cr.text

-rw-r--r--  1 oracle dba   314 Jun 22 09:05 wcr_fcapture.wmd   负载文件

-rw-r--r--  1 oracle dba   236 Jun 22 09:05 wcr_scapture.wmd

2.创建directory目录对象

[oracle@leonarding1 ~]$ sqlplus / as sysdba

SYS@LEO1> create directory REPLAY_DIR2 as '/home/oracle/scripts/capture';

3.使用GC进行预处理preprocess和重放replay

预处理一个数据库工作负载

GC->LEO1->Software and Support->Real Application Testing->Database Replay


Prepare for Replay-> Preprocess Workload 点击右侧的按钮->处理“负载文件”


Preprocess Captured Workload: Locate Workload 定位负载文件位置,点击“Next

The captured workload directory must be accessible from this database

这个捕获目录必须是数据库可访问的,有两种方式来定位:我们选择本地目录来捕获

1Copy the workload directory to this host from another host.

这个目录可以从另一台机器复制到本机

2Use an existing workload directory on this host.

直接使用本机上现有的负载文件


Preprocess Captured Workload: Select Directory 选择目录对象 如果我们已经创建了目录对象,点击“小手电”选择我们刚刚创建的“REPLAY_DIR2”目录对象,点击“Select”,这时将会自动加载现有的负载文件信息到GC,下面会显示“Capture Summary”概述信息,要想看详细信息请点击“Capture Details


如果你还没有创建目录对象,那么可以点击“Create directory Object”按钮来创建

NameREPLAY_DIR2

Path/home/oracle/scripts/capture

加载旧环境工作负载文件:capture -> /home/oracle/scripts目录下,如下所示

drwxr-xr-x 12 oracle dba  4096 Jun 22 09:07 inst1

-rw-r--r--  1 oracle dba 37490 Jun 22 09:05 wcr_cr.html

-rw-r--r--  1 oracle dba 18090 Jun 22 09:05 wcr_cr.text

-rw-r--r--  1 oracle dba   314 Jun 22 09:05 wcr_fcapture.wmd   这就是负载文件

-rw-r--r--  1 oracle dba   236 Jun 22 09:05 wcr_scapture.wmd

注:加载目录必须有这些文件,否则会报错:显示缺少.wmd类型文件,如下所示

ORA-20222: Workload capture in "REPLAY_DIR2" is missing required .wmd files. ORA-06512: at "SYS.DBMS_WORKLOAD_CAPTURE", line 1121 ORA-06512: at line 1


Capture Summary页面,显示旧环境capture workload概述信息,例如,点击“Next”

Captured Data Size (MB)0.81                捕获数据量

Duration (hh:mm:ss)00:02:11                  捕获持续时间

Start TimeDec 14, 2013 2:55:09 AM EST      捕获开始时间

End TimeDec 14, 2013 2:57:20 AM EST       捕获结束时间

Start SCN1827566                        捕获起始SCN

End SCN1833512                         捕获结束SCN

AWR Data ExportedNot Possible             AWR数据输出

Preprocessed Database Version     N/A                预处理数据版本

Preprocess Captured Workload: Schedule 创建预处理作业计划,点击“Next”

Job NamePREPROCESS-LEO1 -20140622095131

Dscriptionleonarding

StartImmediately

Host Credentials主机认证

UserNameoracle

Passwordoracle

Confirm Passwordoracle


Preprocess Captured Workload: Review 审核提交信息,点击“Submit”

Job NamePREPROCESS-LEO1-20140622095131                   预处理作业名字

DatabaseLEO1                                              数据库名称

Preprocessed Database Version11.1.0.7.0           预处理数据库版本

Directory ObjectREPLAY_DIR2                                            目录对象名称

Directory Path/home/oracle/scripts/capture                      目录对象路径

Capture NameCAPTURE-LEO1-20131214024942                   捕获负载名称

Captured Data Size (MB)0.81                                   捕获数据量

Start TimeImmediately                                       预处理作业立即执行

Job 'PREPROCESS-20140725021212' to prepare the workload has been created successfully. ' to prepare the workload has been created successfully.

预处理作业已经执行完毕


点击“View Job”查看执行详细信息

一定看到StatusSucceeded成功才行,下面有个Error,预处理时会报错但不影响replay


红色的6个文件是预处理后多出来的文件

[oracle@leonarding1 capture]$ ll

total 212

drwxr-xr-x 12 oracle dba   4096 Jul 24 22:29 inst1

-rw-r-----  1 oracle dba   3586 Jul 25 02:17 wcr_calibrate.xml

-rw-r-----  1 oracle dba  12288 Jul 25 02:17 wcr_conn_data.extb

-rw-r--r--  1 oracle dba  37490 Jun 22 09:05 wcr_cr.html

-rw-r--r--  1 oracle dba  18090 Jun 22 09:05 wcr_cr.text

-rw-r--r--  1 oracle dba    314 Jun 22 09:05 wcr_fcapture.wmd

-rw-r-----  1 oracle dba    692 Jul 25 02:17 wcr_login.pp

-rw-r-----  1 oracle dba     35 Jul 25 02:17 wcr_process.wmd

-rw-r--r--  1 oracle dba    236 Jun 22 09:05 wcr_scapture.wmd

-rw-r-----  1 oracle dba 102400 Jul 25 02:17 wcr_scn_order.extb

-rw-r-----  1 oracle dba  12288 Jul 25 02:17 wcr_seq_data.extb

重放一个数据库工作负载

GC->LEO1->Software and Support->Database Replay->Replay Workload on Test Database->Replay Workload 点击右侧的按钮


Replay Workload: Locate Workload 定位重放文件位置,点击“Next”

The last replayed or preprocessed workload directory must be accessible from this database.

重放和预处理工作负载目录必须是这个数据库可访问的,有两种方式来定位:我们选择本地目录来捕获

1Copy the workload directory to this host from another host.

这个目录可以从另一台机器复制到本机

2Use an existing workload directory on this host.

直接使用本机上现有的重放文件


Replay Workload: Select Directory  选择目录对象,如果我们已经创建了目录对象,点击“小手电”选择我们刚刚创建的“REPLAY_DIR2”目录对象,点击“Select”。这时将会自动加载现有的重放文件信息到GC,下面会显示“Capture Summary”概述信息,要想看详细信息请点击“Capture Details


如果你还没有创建目录对象,那么可以点击“Create directory Object”按钮来创建

NameREPLAY_DIR2

Path/home/oracle/scripts/capture


预处理之后就会多出6个文件

drwxr-xr-x 12 oracle dba   4096 Jun 22 09:07 inst1

-rw-r-----  1 oracle dba   3586 Jun 22 10:05 wcr_calibrate.xml

-rw-r-----  1 oracle dba  12288 Jun 22 10:05 wcr_conn_data.extb

-rw-r--r--  1 oracle dba  37490 Jun 22 09:05 wcr_cr.html

-rw-r--r--  1 oracle dba  18090 Jun 22 09:05 wcr_cr.text

-rw-r--r--  1 oracle dba    314 Jun 22 09:05 wcr_fcapture.wmd

-rw-r-----  1 oracle dba    692 Jun 22 10:05 wcr_login.pp

-rw-r-----  1 oracle dba     35 Jun 22 10:05 wcr_process.wmd

-rw-r--r--  1 oracle dba    236 Jun 22 09:05 wcr_scapture.wmd

-rw-r-----  1 oracle dba 102400 Jun 22 10:05 wcr_scn_order.extb

-rw-r-----  1 oracle dba  12288 Jun 22 10:05 wcr_seq_data.extb

选择目录对象之后就会自动加载目录下的capture文件,Capture Summary页面,显示旧环境capture workload概述信息,点击“Next

Replay Workload: Initialize Options 初始化选项:Use the default replay options,什么也不用动,点击“Next”

Repaly NameLEO1-20140622102711 自动生成重放作业名


Replay Workload: Customize Options  定制选项,什么都不用动,点击“Next”

Connections Mapping 选项卡上点击“Test Connection”测试,显示InformationThe connection test was successful.表示连接成功

Use a single connect descriptor for all client connections.     所有客户端选择“连接串”连接服务端

Replay Parameters      选项卡可以设置重放参数,例如如下参数

Synchronization        同步参数:保证captureSQL提交的顺序与replay时提交的顺序一致

connect time scale      连接时间尺度:重放开始时刻到第一个会话连接上时的间隔时间

think time scale        思考时间尺度:两个SQL执行之间的间隔时间,默认同capture时一致

think time auto correct  思考时间自动校准:调整think time参数可以自动校准两条SQL执行之间的间隔时间


Replay Workload: Prepare Replay Clients  准备重放客户机,点击Next

Number of Replay Clients and CPUs,点击“Estimate”,可以评估出重放客户端数量和CPU数量


Replay Client Hosts,点击“Add Replay Client Hosts”选择重放客户机主机,默认本机


Replay Workload: Wait for Client Connections  等待客户机连接

数据库已经准备接收来自replay client重放客户机的连接


数据库正在等待replay client重放客户机连接,你现在可以启动replay client重放客户机


启动Replay Clients重放客户机连接服务器

[oracle@leonarding1 capture]$ wrc system/oracle@LEO1 replaydir=/home/oracle/scripts/capture mode=replay

system/oracle@LEO1system是客户机默认权限用户

replaydir=/home/oracle/scripts/capture:是重放文件的路径

mode=replay:默认模式,模拟客户端并发连接

如果你没有启动数据库重放服务,就启动了Replay Clients重放客户机连接服务器,就会报错

[oracle@leonarding1 capture]$ wrc system/oracle replaydir=/home/oracle/scripts/capture mode=replay

Workload Replay Client: Release 11.1.0.7.0 - Production on Sun Jun 22 11:13:02 2014

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

Errors in file :

ORA-15554: cannot start workload replay client because the database server is not in PREPARE mode

不能启动replay client重放客户机,因为数据库服务是不准备模式(即Replaying不是重放模式)

如果发现 Actual Number of Client Connections(实际客户端连接数)1,点击“Next

Expected Number of Client Connections(预期客户端连接数)0

实际我们就启动了一个客户端-符合,这个应该马上就会显示出来。


Replay Workload: Review  审核提交信息

Database LEO1

Capture Name CAPTURE-LEO1-20131214024942

Replay NameREPLAY-LEO1-20140725025417

Directory ObjectREPLAY_DIR2

Connected Replay Clients1

Client Connections

预期客户端连接数Expected Number of Client Connections0

实际客户端连接数Actual Number of Client Connections1

正在执行工作负载Repaly重放


正在收集工作负载性能信息用于分析,需要等待1分钟,StatusCompleted


Elapsed Time Comparison消耗时间对比,Detailed Comparison详细信息对比

Capture2:11

Replay1:05


点击“View Workload Replay Report”创建工作负载重放报告


Save to File:保存对比报告,下载路径是桌面

OK:返回数据库重放主页面


刘盛&Leonarding
2015.05.08
天津&spring
分享技术~成就梦想
Blog
www.leonarding.com


如果喜欢我的文章就请扫下面二维码吧!关注微信号:leonarding_public
在这里你能得到技术、实事、热点消息等新兴事物的思考和观点,别的地方可能没有的东西。我将为大家提供最新技术与资讯动态,传递正能量。

请使用浏览器的分享功能分享到微信等