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

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。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
也可以从New-> New Job Wizard ->Add Workload->选 择测试类型:Capture / Replay Test -> Capture and Replay Oracle Workload。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
此页面点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路径。)
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
Reporting Settings我这里也用默认值AWR,如果数据库中没有装STATSPACK则这个选项不可用。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
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。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
Capture Control可以设置Capture开始的时间,结束的时间,设置如下。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
Finish 页是对所有输入进行汇总性展示,让用户确认这些信息,确认结束,点击Capture。
3. Capture Status,Capture开始后,这里就打开了Capture Status 窗口,查看Exporting情况。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
查看Capture的情况,不巧达到Threshold了,因为Export的数据太多了。Capture Details窗口显示的是Capture的详细信息。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
还有此窗口需要我们处理,如下图,因为我们在Directory Settings的时候用的是不同的路径,所以要从数据库服务器把diag文件夹和AWR Report文件拷到本地的桌面CDEMO文件夹,拷完之后点最上面窗口的OK。Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
点完OK之后,就会开始处理 数据,生成BMF_Replay_Files和SQL Scripts,当Capture 状态变成Done之后表示Capture工作已完成,点击Close关闭此窗口,有一个提示回放的窗口出现。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
4. Manage Capture
Capture已完成,现在我们可以回放了,New->New Job Wizard ,在选择Connection的时候我们可以用相同的连接,也可以用另一个数据库的连接,要注意的是,如果有导出需要导入的话,要注意数据库版本是向后兼容的,而且我们需要手动把dmp文件拷到要回放的数据库上。我们这里直接用相同的连接回放。
Add Workload->这时页面记住了我们刚才是用向导打开过Capture/Replay Test,直接点Select Test。此时的Replay workload已经有显示刚才完成的Capture:
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
点Import Test,此时弹出的窗口是要输入dmp文件的路径,我们这里的是 /mnt/mouse 。OK 之后Job创建出来了,我们可以点开1 Transaction(s)查看Capture到的SQL是不是我们刚才操作的。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
点Run Job开始回放,当Job正在回放的时候我们先来看一下主窗口下面的Captures Tab。
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
这里提供了三个选项,这三个都可以在命令行通过BFCapture.exe执行,第一个选项用得最多,如果一个Capture结束了,但是没有变成Done的状态,但Capture Status窗口已关闭,这时我们就可点View Status让它继续处理数据,直到这个Capture变成Done。
5. Run Report
回放完了,结果的主界面如下:
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
Comparison Report部分截图:
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
Benchmark Factory 使用 简介之Capture and Replay Oracle Workload
无论是Oracle Trace files还是FGAC,操作方法都类似。