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 ...
随机推荐
- Activiti 查询流程定义
package com.mycom.processDefinition; import java.io.InputStream; import java.util.List; import java. ...
- C# 动态修改dll的签名 以及修改引用该dll文件的签名
在读取RedisSessionStateProvider配置 提到用mono ceil 来修改程序集以及它的签名,里面GetPublicKey 和GetPubliKeyToken 方法里面那个字符串的 ...
- Advanced Puppet 系列的前言
什么是Advanced 在网络上,你能找到大量关于Puppet的安装,配置以及基础用法的文章和博客.你在通过一段时间的实战后,熟练掌握了Puppet基础用法,随着你管理的集群日益扩大,你的部署逻辑越来 ...
- Android中Parcelable接口的使用
在做开发的过程中,序列化是非常常见的.比如要将对象保存本地磁盘或者在网络上传输等.实现序列化有两种方式,一种是实现Serializable接口,第二种是实现Parcelable. Serializab ...
- eclipse、myeclipse,svn插件subclipse 忘记密码的解决方法(win7、win8、xp)
如果是Windows7.Windows8系统只要删除当前用户目录下的AppData\Roaming\Subversion\auth\svn.simple 比如我的用户名taoweiji,就删除C:\U ...
- 利用Mahout实现在Hadoop上运行K-Means算法
利用Mahout实现在Hadoop上运行K-Means算法 一.介绍Mahout Mahout是Apache下的开源机器学习软件包,目前实现的机器学习算法主要包含有协同过滤/推荐引擎,聚类和分类三个部 ...
- Mac OS 中设置VPN(pptp连接方式)
第一步:点击系统设置(如图) 第二步:点击网络,进入网络设置(如图) 第三步:点击+号-创建新服务,创建新的VPN网络连接(如图) 第四步:接口-中选-VPN, VPN类型-中选-PPTP,服务名称- ...
- WebSocket桌面客户端工具
考虑到WebSocket的诸多优点和未来的趋势,去年底把服务端通讯全部由HTTP改成WebSocket,期间为了方便测试,做了这个小工具.共享出来以方便有同样需求的程序员. 下载的压缩包里含有源代码和 ...
- C# 百度语音合成
语音合成及TTS,我们尝试使用百度的语音合成技术 不过我发现 有一种缺点在于没有离线包让我有些很不舒服,可能是在线版的 原因微软语音识别技术在Windows 2000是默认集成在系统组件中 或许我们不 ...
- Raw-OS源代码分析之消息系统-Queue_Size
分析的内核版本号截止到2014-04-15.基于1.05正式版.blogs会及时跟进最新版本号的内核开发进度,若源代码凝视出现"???"字样,则是未深究理解部分. Raw-OS官方 ...