Welcome

首页 / 数据库 / MySQL / 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.2gIP地址: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、数据类型
序号数据类型是否支持问题处理
1BINARY_DOUBLE8.1及以上 
2BINARY_FLOAT8.1及以上 
3CHAR8.1及以上 
4DATE8.1及以上需设置时间格式,否则只能同步日期alter system set nls_date_format="yyyy-MM-dd HH24:mi:ss" scope=spfile;
5INTERVAL DAY8.1及以上 
6INTERVAL YEAR8.1及以上 
7NUMBER8.1及以上 
8NVARCHAR28.1及以上 
9RAW8.1及以上 
10TIMESTAMP8.1及以上 
11TIMESTAMPWITH LOCALTIME ZONE8.1及以上 
12VARCHAR28.1及以上 
13LONG9.2及以上 
14CLOB10.1及以上需要设置如下:ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;插入时分为两条语句,另外插入二进制数据未进行测试
15BLOB10.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)支持
14NOT NULL约束(alter table TABLE modify COLUMN not null)支持
15UNIQUE约束支持
16PRIMARY KEY约束支持
17FOREIGN KEY 约束支持
18CKECK 约束支持
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)
方案一50M1个0个0笔/秒47.512.7113095.525438600
3个0个0笔/秒113095.725444222,236
5个0个0笔/秒113265.625445492,606
10个0个0笔/秒113265.6254451,149,284
方案二50M1个500个估计300笔/秒47.5201263916.735530111,328
3个500个估计300笔/秒1214736.437619372,389
5个500个估计300笔/秒1255346.844692622,390
10个500个估计300笔/秒1306246.7397801,254,748
方案三50M(未运行CPU80%,680M)1个1000个估计500笔/秒47.554.73.571688158080635,892
3个1000个估计500笔/秒1.54168814.478777384,743
5个1000个估计500笔/秒168687 75805652,148
10个1000个估计500笔/秒108068913.2798061,295,158
方案四50M(未运行CPU80%,667M)1个2000个估计1000笔/秒47.573.75.58469114.678808133,844
3个2000个估计1000笔/秒11.4706911275809390,029
5个2000个估计1000笔/秒5.57669013.676806668,013
10个2000个估计1000笔/秒6.14069015.4888091,335,587
方案五100M(未运行CPU25%,464M)1个500个估计300笔/秒23.88.70.8264844.130573268,715
3个500个估计300笔/秒0.9255343.236622768,989
5个500个估计300笔/秒0.9275813.2356621,324,447
10个500个估计300笔/秒1.1296905.2357632,619,322
更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址