2、Oracle Logminer性能测试
Oracle Logminer性能测试
1 测试介绍
1.1 测试目的
通过模拟不同环境下LogMiner解析联机/归档日志文件运行情况,通过测试所获取的数据分析,通过对以下两点的验证来确定通过LogMiner技术技术可行性:
1、在日志文件不同大小、不同数据压力情况下对数据库服务器内存、CPU的影响;
2、并通过查询LogMiner的动态表和实际物理表中数据数目是否一致,验证其准确性。
1.2 测试环境
用途及说明 |
硬件配置 |
软件配置 |
其它说明 |
数据库服务器 |
型号:T420i 处理器:Intel(R)core(TM) i5 CPU M430 主频:2.2G 内存:2G 硬盘:300G |
操作系统:WindowXP 数据库及版本:Oracle10.2g IP地址:10.88.54.83 |
|
测试机 |
型号:T420i 处理器:Intel(R)core(TM) i5 CPU M430 主频:2.2GHz 内存:1.8 GB 显示器:1280*800 宽屏 |
操作系统:windows xp 浏览器及版本:ie8 |
1.3 测试方案
1.3.1 性能影响(针对目标一)
为了模拟实际运行环境,加入了Logminer运行背景环境,分别测试数据库在无操作、300个插入/秒操作、500个插入/秒操作情况下运行情况,并且对比日志文件50M、100M大小下运行情况
1.3.2 准确性(针对目标二)
1、数据类型
序号 |
数据类型 |
是否支持 |
问题处理 |
1 |
BINARY_DOUBLE |
8.1及以上 |
|
2 |
BINARY_FLOAT |
8.1及以上 |
|
3 |
CHAR |
8.1及以上 |
|
4 |
DATE |
8.1及以上 |
需设置时间格式,否则只能同步日期 alter system set nls_date_format='yyyy-MM-dd HH24:mi:ss' scope=spfile; |
5 |
INTERVAL DAY |
8.1及以上 |
|
6 |
INTERVAL YEAR |
8.1及以上 |
|
7 |
NUMBER |
8.1及以上 |
|
8 |
NVARCHAR2 |
8.1及以上 |
|
9 |
RAW |
8.1及以上 |
|
10 |
TIMESTAMP |
8.1及以上 |
|
11 |
TIMESTAMP WITH LOCAL TIME ZONE |
8.1及以上 |
|
12 |
VARCHAR2 |
8.1及以上 |
|
13 |
LONG |
9.2及以上 |
|
14 |
CLOB |
10.1及以上 |
需要设置如下: ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; 插入时分为两条语句,另外插入二进制数据未进行测试 |
15 |
BLOB |
10.0及以上 |
2、DDL语句测试(未测试完毕)
序号 |
类型 |
是否支持 |
1 |
创建表(Create table) |
支持 |
2 |
删除表(Drop table) |
支持,出现两个语句,首先修改表名为临时表名,然后删除该临时表 监控该类型需要进行合并处理 |
3 |
创建作业(Create job) |
不支持 |
4 |
创建序列(Create sequence) |
支持 |
5 |
创建存储过程(Create pocedure) |
支持 |
6 |
增加字段(alter table TABLE add column) |
支持 |
7 |
删除字段(alter table emp drop column) |
支持 |
8 |
修改字段(alter table emp modify column) |
支持 |
9 |
修改列名(alter table rename column) |
支持 |
10 |
修改表名(rename emp to TABLE) |
支持 |
11 |
清除表数据(truncate table TABLE) |
支持 |
12 |
删除表(drop table TABLE) |
支持 |
13 |
恢复被删除的表(Flashback table TABLE to before drop) |
支持 |
14 |
NOT NULL约束(alter table TABLE modify COLUMN not null) |
支持 |
15 |
UNIQUE约束 |
支持 |
16 |
PRIMARY KEY约束 |
支持 |
17 |
FOREIGN KEY 约束 |
支持 |
18 |
CKECK 约束 |
支持 |
19 |
禁用/激活约束 |
支持 |
20 |
删除约束 |
支持 |
21 |
创建不唯一索引 |
支持 |
22 |
创建唯一索引 |
支持 |
23 |
创建位图索引 |
支持 |
24 |
创建反序索引 |
支持 |
25 |
创建函数索引 |
支持 |
26 |
修改索引 |
支持 |
27 |
合并索引 |
支持 |
28 |
重建索引 |
支持 |
29 |
删除索引 |
支持 |
30 |
创建视图(CREATE VIEW) |
支持 |
31 |
修改视图(CREATE OR REPLACE VIEW) |
支持 |
32 |
删除视图(DROP VIEW) |
支持 |
33 |
创建序列(CREATE SEQUENCE) |
支持 |
34 |
修改序列(ALTER SEQUENCE) |
支持 |
35 |
删除序列(DROP SEQUENCE) |
支持 |
3、其他问题测试
序号 |
问题 |
现象及处理方式 |
1 |
主子表插入数据测试 |
能够正常插入及同步 |
2 |
事务提交(commit、rollback) |
能够看到提交和未提交的内容,考虑在产品设计中加入DBMS_LOGMNR.COMMITTED_DATA_ONLY 参数,该参数只读取已经提交事务 |
3 |
批量更新时,影响多条数据,在联机日志中每一条更新数据对应生成一条语句 |
不影响,可同步获取再执行 |
4 |
更新和删除语句中带rowid |
加入去除rowid参数dbms_logmnr.NO_ROWID_IN_STMT |
5 |
2 测试结论
2.1 测试初步结论
1. 从性能影响测试中可以看出:
a) logminer加载分析过程随机器根据负载不同在6~21秒完成;
b) 加载分析过程并不随日志文件个数增加在时间、CPU、内存有较大变化;
c) 加载分析过程中受分析日志文件个数最大是内存,其次是CPU,耗时应影响较小;
2. 从准确性测试来看
a) 通过设置基本上能够获取DML语句(其中LOB字段还需要进行测试);
b) 从现有情况来看,DDL支持并不充分,需要进一步测试;
附测试数据:
|
联机日志大小 |
读取文件个数 |
运行作业数目 |
插入数据量 |
生成字典文件 |
加载处理 |
分析处理 |
log_contents |
|||||
大小(M) |
时间(秒) |
耗时(秒) |
CPU(%) |
内存(M) |
耗时(秒) |
CPU(%) |
内存(M) |
||||||
方案一 |
50M |
1个 |
0个 |
0笔/秒 |
47.5 |
12.7 |
1 |
1 |
309 |
5.5 |
25 |
438 |
600 |
3个 |
0个 |
0笔/秒 |
1 |
1 |
309 |
5.7 |
25 |
444 |
222,236 |
||||
5个 |
0个 |
0笔/秒 |
1 |
1 |
326 |
5.6 |
25 |
445 |
492,606 |
||||
10个 |
0个 |
0笔/秒 |
1 |
1 |
326 |
5.6 |
25 |
445 |
1,149,284 |
||||
方案二 |
50M |
1个 |
500个 |
估计300笔/秒 |
47.5 |
20 |
1 |
26 |
391 |
6.7 |
35 |
530 |
111,328 |
3个 |
500个 |
估计300笔/秒 |
1 |
21 |
473 |
6.4 |
37 |
619 |
372,389 |
||||
5个 |
500个 |
估计300笔/秒 |
1 |
25 |
534 |
6.8 |
44 |
692 |
622,390 |
||||
10个 |
500个 |
估计300笔/秒 |
1 |
30 |
624 |
6.7 |
39 |
780 |
1,254,748 |
||||
方案三 |
50M(未运行CPU80%,680M) |
1个 |
1000个 |
估计500笔/秒 |
47.5 |
54.7 |
3.5 |
71 |
688 |
15 |
80 |
806 |
35,892 |
3个 |
1000个 |
估计500笔/秒 |
1.5 |
41 |
688 |
14.4 |
78 |
777 |
384,743 |
||||
5个 |
1000个 |
估计500笔/秒 |
1 |
68 |
687 |
75 |
805 |
652,148 |
|||||
10个 |
1000个 |
估计500笔/秒 |
10 |
80 |
689 |
13.2 |
79 |
806 |
1,295,158 |
||||
方案四 |
50M(未运行CPU80%,667M) |
1个 |
2000个 |
估计1000笔/秒 |
47.5 |
73.7 |
5.5 |
84 |
691 |
14.6 |
78 |
808 |
133,844 |
3个 |
2000个 |
估计1000笔/秒 |
11.4 |
70 |
691 |
12 |
75 |
809 |
390,029 |
||||
5个 |
2000个 |
估计1000笔/秒 |
5.5 |
76 |
690 |
13.6 |
76 |
806 |
668,013 |
||||
10个 |
2000个 |
估计1000笔/秒 |
6.1 |
40 |
690 |
15.4 |
88 |
809 |
1,335,587 |
||||
方案五 |
100M(未运行CPU25%,464M) |
1个 |
500个 |
估计300笔/秒 |
23.8 |
8.7 |
0.8 |
26 |
484 |
4.1 |
30 |
573 |
268,715 |
3个 |
500个 |
估计300笔/秒 |
0.9 |
25 |
534 |
3.2 |
36 |
622 |
768,989 |
||||
5个 |
500个 |
估计300笔/秒 |
0.9 |
27 |
581 |
3.2 |
35 |
662 |
1,324,447 |
||||
10个 |
500个 |
估计300笔/秒 |
1.1 |
29 |
690 |
5.2 |
35 |
763 |
2,619,322 |
2、Oracle Logminer性能测试的更多相关文章
- 总结:基于Oracle Logminer数据同步
第 1 页 共 20 页 出自石山园主,博客地址:http://www.cnblogs.com/shishanyuan LogMiner 配置使用手册 1 Logminer 简介 1.1 LogMin ...
- 3、使用Oracle Logminer同步Demo
使用Oracle Logminer同步Demo 1 Demo介绍 1.1 Demo设想 前面介绍了Oracle LogMiner配置使用以及使用LogMiner进行解析日志文件性能,在这篇文章中将利用 ...
- 1、图解Oracle Logminer配置使用
LogMiner配置使用手册 1 Logminer简介 1.1 LogMiner介绍 Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻 ...
- Oracle logminer 分析redo log(TOAD与PLSQL)
Oracle logminer 分析redo log Oracle 11g r2 RAC centos 6.5 设置时间格式 select to_char(sysdate,'yyyy-mm-dd hh ...
- 使用Oracle Logminer同步Demo
使用Oracle Logminer同步Demo 1 Demo介绍 1.1 Demo设想 前面介绍了Oracle LogMiner配置使用以及使用LogMiner进行解析日志文件性能,在这篇文章中将利用 ...
- Oracle IO性能测试
Oracle IO性能测试 前言 最近发生了迁移测试库后(单节点迁移RAC)因为IO性能问题导致迁移后性能非常差的问题. 原本想在创建ASM磁盘组之前用Orion做测试,但是忘了做就没做结果出了这档子 ...
- 4、总结:基于Oracle Logminer数据同步
最近开发Oracle数据同步功能,做了些调研和验证,这个工作过去有段时间,怕时间长了忘记,故用博客共享出来.在这系列中共写了三篇文章,第一篇是写LogMiner配置及使用,第二篇是测试了LogMine ...
- 基于LR的Oracle应用性能测试
最近对一个oracle ERP系统的INV模块进行性能测试,因为之前大部分都是测试web类型的应用,在这方面经验较少,期间也遇到了不少问题,因此有必要作些总结,以备后忘.首先先简单了解下测试对象相关的 ...
- oracle LogMiner配置使用
一.安装LogMiner1.@D:\app\product\11.1.0\db_1\RDBMS\ADMIN\dbmslm.sql 2.@D:\app\product\11.1.0\db_1\RDBMS ...
随机推荐
- Cause for NullPointerException android.support.v7.widget.RecyclerView.onMeasure
because you have not set LinearLayoutManager to RecyclerView. for example: mRecyclerView = (Recycler ...
- Could not find a storyboard named 'Main' in bundle NSBundle
转自:http://www.cnblogs.com/ygm900/p/3836580.html 1.删掉工程中main.storyboard 后要删除plist文件中对应的键值,否则会报如下错误: C ...
- Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分 标签: build targetminSdkVersiont ...
- 【地图API】地址录入时如何获得准确的经纬度?淘宝收货地址详解
用户需求:管理者需要录入一批商户,并在地图上把商户展示出来.但发现一些商户的地址描述并不清楚,导致商户位置出错.如何获得更加准确的商户位置呢? 分析:假设地址准确的,可以通过地址解析,得到准确的经纬度 ...
- 实用的插件:跨浏览器复制jQuery-zclip
Query-zclip是一个复制内容到剪贴板的jQuery插件,使用它我们不用考虑不同浏览器和浏览器版本之间的兼容问题.jQuery-zclip插件需要Flash的支持,使用时记得安装Adobe Fl ...
- MySQL查询及删除重复记录的方法
查询及删除重复记录的方法(一)1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select p ...
- 基于SlidePanelLayout实现ResideMenu
同步发表于http://avenwu.net/2015/02/24/custom_slide_panel_layout_as_reside_style_on_dribble_and_qq Fork o ...
- 结合仓库设计MVC控制器
为了更高效的开发MVC项目,我们对控制器进行了在一次的封装,使得控制器能够获得很好的继承关系,并能以更少 的代码,实现Web项目的开发工作,整个控制器的设计思路如下所示. 从上图的设计里面 ...
- SQLSERVER吞噬内存解决记录
现在手上有一个不大不小的系统,运行了一段时间,因为是24*7不断运行,所以内存逐渐增高,慢慢的会飙到95%以上,然后不得不重启电脑,因为用的是云,怕虚拟机重启down掉起不来,重启操作还只能在凌晨4. ...
- js-2
var myarray= new Array(); var myarray= new Array(8); var myarray= new Array(66,80,60,59,70); var mya ...