Benchmark Factory 使用 简介之Capture and Replay Oracle Workload

来源:互联网 发布:小米手机3g网络慢 编辑:程序博客网 时间:2024/05/21 00:18

Capture and Replay Oracle Workload功能是用来捕获用户对数据库中已有表的各种操作,同时可以选择让数据库生成一种Report(AWR, ADDM, STATSPACK)用来分析数据库当时的状态。用来捕获的方法有2种:Oracle Trace files和FGAC。而捕获出来的操作可以在同一个数据库或另外的数据库回放,并生成2个库(捕获和回放)结果的比较,比如回放速度, Report的比较,数据库中Top SQL以及其它数据的比较。下面我们做一个Oracle Capture:
1. Oracle Capture 向导
我们可以直接从Tools->Capture Workload打开->Oracle Capture, 之后打开Capture Scenario Wizard。
Tools Open Capture
Capture Wiz
也可以从New-> New Job Wizard ->Add Workload->选 择测试类型:Capture / Replay Test -> Capture and Replay Oracle Workload。
Capture Replay Wizard
此页面点Select Test,打开Replay Workload 页面,点击左下角蓝色链接:Perform New Capture,这个从向导打开的步骤比较长,但是回放的话是必须从这个向导导入测试的。
另一种打开Oracle Capture向导的方式 是命令行,直接从bin目录下找到BFCapture.exe拖到命令行加参数 –o, “c:\Program Files….\bin\BFCapture.exe” –o。
2. 创建Capture
现在Capture Scenario Wizard打开了,我们就可以跟着向导创建Capture了。首页要输入的信息是连接信息,这个用户也是用来做Capture的用户,即用此页输入的用户去捕获它自己,或者用它去捕获别的schema, 或者是整个数据库。
选 择Capture方法,我们这里选择Oracle Trace files(可点击 Which method should I choose?查看你要选哪一种),但是这两种方法最根本的不同是,Oracle Trace files Capture出来的trace文件是放在数据库服务器上的,Capture结束则转成XML文件,但是trace文件不会删除;而FGAC Capture出来的数据是存放在 SYSTEM表空间中,等 Capture结束再转成XML文件,之后清除SYSTEM表空间存放的Capture数据。
Directory Settings,此页是设置路径的,但是我们先改一下Capture Name: CDEMO,Database Server directory是数据库用户能访问的路径,生成的文件需要放在这个路径下,同时它又是一个共享文件夹,在Benchmark Factory中也能访问。
Capture directory 是指Capture文件存放的地方,我们设置如下:(注意,这两个路径可以是一样的,比如下图如果我把Capture directory用\ip\mouse值 也是可以的,这样的话在后面回放的时候就不用拷贝,同时这个路径也可以用Network map的方式输入。当Capture路径和Server路径不一样时,我们为了数据更容易找到,一般在/mnt/mouse共享目录后再加一个子目录/local,这样拷数据的时候直接在这个子目录找,把生成的数据全部拷到Capture路径。)
Directory Settings
Reporting Settings我这里也用默认值AWR,如果数据库中没有装STATSPACK则这个选项不可用。
Reporting Settings
Capture Scope这里我选的是bmf,用它capture它自己。
Export Scope这个选项是说在进行Capture之前要不要先备份数据库,我们这里就用默认值,是要先导出所选的数据库(这也可以不导出,直接做Capture)。但是既然要导出,我们要先在数据库中准备一张表,(当然也可以用Benchmark Factory的基准测试先创建objects,等Capture开始之后再跑测试)我先在SQL Plus 创建表create table test(id int, name char(10));
Filter Settings 页设置过滤条件, (比如上面说Capture Benchmark Factory的基准测试,就要把Agent.exe给Remove)如果有的应用程序不在这里,但是你想要过滤掉,点Add把它加进来。本实例capture的操作将在SQL Plus执行,直接下一步。
Capture Thresholds是用来设置Capture的阈值停止条件,当然这些指标是数据库服务器上的。我们这里的CPU设置成90。
Threshold
Capture Control可以设置Capture开始的时间,结束的时间,设置如下。
Capture Control
Finish 页是对所有输入进行汇总性展示,让用户确认这些信息,确认结束,点击Capture。
3. Capture Status,Capture开始后,这里就打开了Capture Status 窗口,查看Exporting情况。
Exporting
查看Capture的情况,不巧达到Threshold了,因为Export的数据太多了。Capture Details窗口显示的是Capture的详细信息。
Threshold2
还有此窗口需要我们处理,如下图,因为我们在Directory Settings的时候用的是不同的路径,所以要从数据库服务器把diag文件夹和AWR Report文件拷到本地的桌面CDEMO文件夹,拷完之后点最上面窗口的OK。Manual Transfer
Copy data
点完OK之后,就会开始处理 数据,生成BMF_Replay_Files和SQL Scripts,当Capture 状态变成Done之后表示Capture工作已完成,点击Close关闭此窗口,有一个提示回放的窗口出现。
Done
4. Manage Capture
Capture已完成,现在我们可以回放了,New->New Job Wizard ,在选择Connection的时候我们可以用相同的连接,也可以用另一个数据库的连接,要注意的是,如果有导出需要导入的话,要注意数据库版本是向后兼容的,而且我们需要手动把dmp文件拷到要回放的数据库上。我们这里直接用相同的连接回放。
Add Workload->这时页面记住了我们刚才是用向导打开过Capture/Replay Test,直接点Select Test。此时的Replay workload已经有显示刚才完成的Capture:
Replay Workload
点Import Test,此时弹出的窗口是要输入dmp文件的路径,我们这里的是 /mnt/mouse 。OK 之后Job创建出来了,我们可以点开1 Transaction(s)查看Capture到的SQL是不是我们刚才操作的。
Summary
点Run Job开始回放,当Job正在回放的时候我们先来看一下主窗口下面的Captures Tab。
Capture tab
这里提供了三个选项,这三个都可以在命令行通过BFCapture.exe执行,第一个选项用得最多,如果一个Capture结束了,但是没有变成Done的状态,但Capture Status窗口已关闭,这时我们就可点View Status让它继续处理数据,直到这个Capture变成Done。
5. Run Report
回放完了,结果的主界面如下:
Report
Comparison Report部分截图:
这里写图片描述
这里写图片描述
无论是Oracle Trace files还是FGAC,操作方法都类似。

原创粉丝点击