oracle压力测试过程
swingbench OracleRAC11g使用方法图解

Swingbench for oracleRAC使用方法图解1 Swingbench 简述1.1 概述这是Oracle UK的一个员工在一个被抛弃的项目的基础上开发的。
目前稳定版本2.2,最新版本2.3,基于JDK1.5。
该工具是免费的,可以在作者的网站上自由下载,并且拥有详细的使用文档。
除了Swingbench,作者还开发了两个相关工具:测试数据生成工具DataGenerator 和跟踪文件分析工具Trace Analyzer。
Swingbench 可以执行4种不同的标准测试(benchmark),拥有三种前端展示方式Swingbench/Charbench/Minibench,其中Charbench是字符模式的,另外两种是GUI模式的。
另外还可以通过ClusterOverview可以聚合显示所有的结果。
Swingbench 的开发目的主要是用来展示RAC的负载和测试,但也可用于单实例环境。
最新的2.3版本开始支持TimesTen 内存数据库。
下载地址:/downloads.html作者博客:/blog/blog.html目前网络上开源的oracle压力测试工具主要是orabm和swingbe nc h,由于orabm不支持oracle 11g版本,因此本次测试使用了swingben进行了压力测试。
另外,swingbench还能对rac进行测试。
swingbench是UK ba sed oracle Database Solutions group开发的一个oracle压力测试工具,好像是官方废弃的一个项目,官方页面/swingbench.html 上可以下载最新的软件版本。
swingbench可以运行在windows和linux平台,本次以windows 为例。
2. 环境配置测试客户端需要安装JDK,无需安装oracle client端swingbench的版本为2.4 ,直接解压软件压缩包,解压后路劲如下,因是windows下做测试所以使用 winbin目录下的批处理文件主要使用到的是如下四个bat文件主要的bat文件作用如下:1、bmcompare 用来对比测试结果2、ccwizard 是以CC种子为模板创建的运行测试数据3、clusteroverview 用来启动集群的压力测试,并查看测试结果4、coordinator 用来启动协调服务器5、minibench 用来注册节点到协调服务器6、oewizard 是以OE种子为模板创建运行测试数据7、shwizard 是以SH种子为模板创建运行测试数据8、swingbench 执行基准测试3.测试3.1 创建测试数据swingbench不使用客户数据,而是按自己的规则创建测试数据,(生成的测试数据只能使用一次,测试过后需要再次测试的话,需要重新创建测试数据,这点做的不好)到目标目录下运行oewizard.bat批处理文件,也可以在目录下双机oewizard.bat批处理文件运行会看到如下界面下一步下一步,输入你需要测试的数据库的 //ip/sid 以及sys用户的密码下一步,前三项不需要修改,为swingbench自动创建的schema,只需要修改datafile的存放路径即可。
SAP-GUI-logon-压力测试步骤

SAP GUI logon 压力测试
1:修改SAP参数
登陆SAP系统,输入T-CODE “RZ11”, 输入sapgui/user_scripting,单击“显示”单击“更改值”,输入“TRUE”
单击保存按钮,出现提示信息,不理会,单击“继续”。
2:启用脚本
登陆SAP,单击红方框的按钮,单击“选项”—
找到“脚本”选项卡,勾选“启用脚本”,单击确定
3:启动LoadRunner--Virtual User Generator,录制脚本单击新建按钮,选择SAPGUI,单击“Create”
弹出录制脚本页面
单击“Options”,可以设定SAP GUI自动登陆,输入相应参数单击“OK”,返回录制脚本页面,单击“OK”,开始录制脚本
录制脚本,比如完成一个VA01的事务
录制完脚本后,单击试运行按钮,看看是否能够执行刚才的SAP事务,试运行完后,手工登录到SAP验证一下。
4:创建场景(Controller),进行压力测试
(注意:由于SAPgui不是WEB应用,在创建测试场景之前
要把license换成golba-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI)
5:查看SAP资源监控输入RZ20
单击buffers
可以继续选择展开双击查看是那些参数需要调整(备注不要乱调,要有经验的BASIS去调,否则乱改参数可能导致SAP启动不起来)
(注:可编辑下载,若有不当之处,请指正,谢谢!)。
swingbench Oracle的免费压力测试工具

tps avg 25 30 33 18
tpm max 1774 2202 2401 1777
logic reads per sec 66,372 69,219 70,843 42,346
physic reads per sec 39 239 565 515
Transactions 43 45 46 28
-----------------------------------------------------------------------
response time max(ms)3307 1267 8717 7212
response time avg(ms)433 1009 1730 5084
io avgqu-sz 0.3 1.7 3 20
-----------------------------------------------------
------------------
us cpu 42 97 97 18
sys cpu 5 3 2 5
wa cpu 8 0 0 77
测试环境Linux Server 5, Oracle 11.2.0.2 64 bit.
测试的数据结果:
30 users 50 users 70 users 100 users
-----------------------------------------------------------------------
tpm avg 1488 1796 1998 1080
-------------------------------------metrics from os
Swingbench压力测试配置文档

Swingbench 压力测试安装目录第一部分Oracle11g客户端安装 (2)一、基本配置 (2)二、详细安装过程 (2)第二部分配置服务命名 (6)一、详细配置过程 (6)第三部分设置Swingbench (11)一、详细配置过程 (11)第一部分Oracle11g客户端安装一、基本配置•前提:在虚拟机中已安装oracle10g数据库,宿主机已安装jdk。
由于我的宿主机子装的是64位系统,所以只能安装oracle11g的64位的客户端软件。
二、详细安装过程1.解压安装软件,点击setup.exe进行安装,出现如下界面,选择安装类型为“管理员”,进入下一步。
2.选择产品语言,这里选择默认的即可,点击下一步。
3.指定安装位置,一般安装在D盘即可,进入下一步。
4.进入到执行先决条件检查,5.检查完毕后,会显示安装的概要信息,点击完成。
6.安装产品。
7.安装成功。
第二部分配置服务命名一、详细配置过程1. 选择开始菜单中的“Oracle - OraClient11g_home1”里的“配置和移植工具”中的“Net Manager”,出现下面界面。
2.选择服务命名,点击左边的“+”,添加网络服务名,这里服务名为“orcl”,点击下一步。
3.选择网络协议,这里选择“TCP/IP(Internet协议)”,继续下一步。
4.输入要连接的服务器的主机名和端口号,这里输入服务器的ip地址,端口使用标准的“1521”,进入下一步。
5.输入服务名和连接类型,这里服务名为“orcl”,连接类型选择“数据库默认设置”,选择下一步。
6.1设置完成可以选择测试,是否连接到服务器,点击测试,6.2这里一开始,默认的测试用户为“scott”,密码为“tiger”,但是在起初,服务器并没有把scott用户解锁,所以会显示下面信息。
6.3在服务器中使用sysdba连接,然后把scott用户解锁,之后再点击测试,就会显示测试成功。
7.完成之后会有如下界面,之后保存退出即可。
oracle数据库 测试用例

oracle数据库测试用例【原创实用版】目录1.Oracle 数据库测试用例的概述2.Oracle 数据库测试用例的编写方法3.Oracle 数据库测试用例的执行与维护4.Oracle 数据库测试用例的重要性正文一、Oracle 数据库测试用例的概述Oracle 数据库测试用例是指在对 Oracle 数据库进行测试时,所设计的一系列测试场景和操作。
通过对这些测试用例的执行,可以有效地检查 Oracle 数据库的功能是否正确、性能是否优良、稳定性是否可靠等。
测试用例是测试过程中的基础,是保证测试质量的关键。
二、Oracle 数据库测试用例的编写方法1.确定测试目标:在编写测试用例之前,首先要明确测试的目标,即要测试数据库的哪些功能或模块。
2.划分测试范围:根据测试目标,将数据库划分为不同的测试范围,如功能模块、性能模块、稳定性模块等。
3.编写测试用例:针对每个测试范围,设计具体的测试用例。
测试用例应包括测试条件、测试操作、预期结果等。
4.编号:对每个测试用例进行编号,方便管理和执行。
三、Oracle 数据库测试用例的执行与维护1.执行测试用例:按照测试计划,执行测试用例,记录测试结果。
2.更新测试用例:根据测试结果,对测试用例进行更新,以保证测试用例的完整性和准确性。
3.维护测试用例:对测试用例进行定期维护,删除无效的测试用例,增加新的测试用例。
四、Oracle 数据库测试用例的重要性1.提高测试质量:通过编写详细的测试用例,可以有效地提高测试质量,减少测试漏洞。
2.提高测试效率:通过编写合理的测试用例,可以减少测试时间,提高测试效率。
3.便于测试管理:通过编写规范的测试用例,可以便于测试管理,提高测试的可控性。
JMeter对Oracle数据库进行压力测试

Username: lianggzone
Password:lianggzone
附注:
Database URL格式:jdbቤተ መጻሕፍቲ ባይዱ:oracle:thin:@[IP地址]:[端口号]:[实例名]
用户名、密码就是连接数据库的用户名和密码
(5)在Database Connection Configuration输入Virable Name Bound to Pool的Variable Name内容
(6)在Database Connection Configuration输入数据库配置信息
例如:
Database URL: jdbc:oracle:thin:@192.168.1.168:1521:ptoracl
JMeter对Oracle数据库进行压力测试
步骤
(1)复制ORACLE的JDBC驱动JAR包文件(ojdbc14.jar)到JMeter的lib目录下。
(2)运行jmeter.bat
(3)建立线程组:右键测试计划->添加->Threads->线程组
(4)建立JDBC Connection Configuration:右击线程组->添加->配置原件->JDBC Connection Configuration
(7)建立JDBC Request:右击线程组->添加->Sampler->JDBC Request
Variable Name:和上面的JDBC Connection Configuration填写同样的内容。
SQLQuery:就是SQL语句。
Oracle的性能测试经验总结

前段时间,在阿里妈妈新机房压力测试过程中用到了LR测试ORACLE,跟DBA一起在杭州网通新机房进行1000用户的压力模拟测试。
整个压力测试耗时两天。
以下是一些经验:1)压力测试过程中发现一些SQL脚本执行非常慢,进行了优化。
2)最好并发测试,否则服务基本上没有什么压力。
3)先从100用户开始,再慢慢向上加,直到CPU的承载达到90%以上。
查看系统的性能情况,包括TPS,响应时间,和内存等。
还包括oracle服务器的I/O流量和交易数。
这个方案是参考了淘宝的机房性能测试方案,下面是性能测试的具体步骤:oracle的性能测试主要是模拟大量的sql语句操作,来对数据库服务器进行加压。
在测试前,需要准备以下要模拟的sql语句,测试脚本,并将测试控制机、测试加压机、被测数据库服务器准备妥当。
脚本协议选择oracle(2-Tier),将所有要模拟的sql语句放在一个sql文件内,使用sql-plus 来操作数据库载入,使用loadrunner来录制。
录制好之后就是修改脚本了,首先在vdf.h文件中定义变量(static void FAR * OraBind1;),定义参数(static LRD_VAR_DESC UID ={LRD_VAR_DESC_EYECAT, 1, 10, LRD_DBTYPE_ORACLE, {1, 1, 0},DT_SF_STRIPPED_SPACES};)。
为什么要在这里定义而不直接只用参数化呢?因为那样会对加压机造成很大的压力,不利于测试。
这里需要根据你的脚本来变化,你在脚本中使用了多少变量,多少参数,那么你就在要这里定义多少。
接下来修改脚本的,将一次性的登陆登出放在init和end中,使用lrd_assign和lrd_ora8_bind_placeholder命令替代参数,如lrd_ora8_stmt(OraStm6, "SELECT COUNT(*) as counter FROM ***** WHERE ***_id="":U and ( status = 0 or ""status is null)", 1, 0, 0);lrd_assign(&UID , "{UID}", "", 0, 0);lrd_ora8_bind_placeholder(OraStm6, &OraBind1, "U", &UID , 0, 0, 0);这样,脚本就差不多大功告成了。
压力测试方法

压力测试方法压力测试旨在测试一个系统在有限资源和时间条件下的可靠性和可用性,可以发现系统中的缺陷和问题。
它是一种非常重要的软件测试方法,能够测试出系统的健壮性,耐久性以及数据的正确性,保证软件的功能安全性。
压力测试通常包括:功能测试,系统测试,系统可用性测试,性能测试,事务性测试,安全测试,断言测试等。
压力测试也可以叫系统测压(System Stress Testing)或者最大负载测试(Maximum Load)。
压力测试应该根据系统的特点和要求,有选择地进行相应的测试,以更好地检测出系统中存在的问题,更有效地提高系统的可用性和可靠性。
1、准备阶段在进行压力测试之前,首先要细心准备,准备阶段包括四个步骤。
第一步是确定压力测试的目的,以及要评估的哪些性能和可用性标准。
第二步是开发一个压力测试计划,确定压力测试范围,压力测试方法,评估标准等等。
第三步是准备测试数据,这是压力测试所需要的一个重要组成部分,需要一个大量、真实和精确的测试数据集。
第四步是准备测试工具和测试环境,来模拟实际使用系统的环境,以保证测试的准确性。
2、执行阶段压力测试的执行阶段,主要是要根据压测计划,正确执行压力测试。
在此阶段,应该按照压测计划的步骤,先进行功能性压力测试,即检查系统的基本功能是否正确,运行是否稳定,以及系统中的数据是否有误,等等。
然后进行系统性压力测试,检查系统可用性,系统可靠性,负载能力,安全性等。
最后进行性能测试,检查系统性能指标,如处理能力,响应时间,网络带宽,系统资源使用情况等。
3、结果评估在压力测试执行完毕后,应该及时评估结果,是否达到预期的效果,以及是否存在问题。
可以通过一些可视化的工具,来分析压力测试的结果,比如数据库和网络压力曲线,响应时间曲线,负荷曲线,计算能力曲线等等,以及建立指标报表,从而快速发现系统存在的问题,以及进行性能优化。
4、报告最后一步是将压力测试的结果报告给客户,或者其他相关的人员。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle10g中可以使用两个命令就可以知道,该版本的数据库系统是下载版还是商业版,使用两个命令就可以确定。
最大session数:show parameters session.....................170 sessions //170是下载版数值当前连接数:select * from v$bgprocess最大进程数:show parameters process....................150 processes //150也是下载版数值查看当前连接到数据库的用户:select * from v$session默认系统最大session=min( session,process * 1.1 +5 )2SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%';SQL>SQL> show parameter processesNAME TYPE V ALUE------------------------------------ ------- ------------------------------aq_tm_processes integer 1db_writer_processes integer 1job_queue_processes integer 4log_archive_max_processes integer 1processes integer 200这里为200个用户。
Select * from v$license 其中sessions_highwater纪录曾经到达的最大会话数。
3如何调整Oracle参数,使它支持更多的用户连接,在参数文件中有三个参数processeslicense_max_sessionslicense_max_users这三个参数相互作用影响着用户连接数license_max_sessions (同时连接数据库的会话数)license_max_users (数据库能够创建的用户数)如果设置为0就是不加限制。
如何查看Oracle的连接数?SQL> select count(*) from v$session #查看当前Oracle的连接数SQL> Select count(*) from v$session where status='ACTIVE'#查看当前Oracle的并发连接数SQL> show parameter processes #如何查看Oracle的最大进程数最大连接SQL> alter system set processes = value scope = spfile;重启数据库#修改连接如何对操作系统进行调优,使操作系统支持最大连接数?在solaris下,在安装Oracle前必须要调整系统参数,该参数文件位于/etc/下,名为system,里面有一个参数semsys:seminfo_semmns=1024,这个值是processor的最终控制值,这个参数表示UNIX系统总共可以分配的进程。
当Oracle的进程数超过操作系统的限制时,就会出现这样的错误。
maximum number of processes(150)exceeded,现在,你可以检查根据你自己的操作系统检查一下看怎样找到该参数。
AIX操作系统下,smIT chgsys 查看Maximum number of PROCESSES allowed per user系统缺省128。
如果连接数超过,也会有访问不了Oracle的问题.1,数据库压力测试工具JMeter 2.3.1下载地址:/site/downloads/downloads_jmeter.cgi2,压力测试参考教程/blog/620186简单介绍如下:JMeter 10步搞定ORACLE数据库并发测试与LoadRunner相比,JMeter是一个轻量级的测试工具,入门也简单,功能简单但都很实用,本文主要介绍其中一个功能点,数据库JDBC并发访问测试。
共分以下10个步骤。
1、下载软件,目前最新版为jmeter 2.3.12、COPY ORACLE的JDBC驱动JAR包文件(ojdbc14.jar)到JMeter的lib目录下。
ojdbc14.jar文件一般位于ORACLE的安装目录下的jdbc\lib目录中。
本人的就在C:\oracle\ora92\jdbc\lib目录中。
3、进入bin目录运行jmeter.bat启动jmeter.4、从测试计划里新增一个线程组.5、再从线程组下新增一个JDBC连接池配置.6、接着新增一个JDBC访问测试.7、再配置一个聚合报告,用来显示测试结果的.8、保存测试计划.9、从运行菜单启动测试.10、从聚合报告查看测试结果.3,pga的相关知识[转]Oracle如何估算PGA,SGA的大小,配置数据库服务器的内存ORACLE给的建议是: OLTP系统PGA=(Total Memory)*80%*20%。
DSS系统PGA=(Total Memory)*80%*50%。
ORACLE建议一个数据库服务器,分80%的内存给数据库,20%的内存给操作系统,那怎么给一个数据库服务器配内存呢?SQL> select * from v$pgastat;NAME V ALUE UNIT---------------------------------------------------------------- ---------- ------------aggregate PGA target parameter 104857600 bytes-----这个值等于参数PGA_AGGREGATE_TARGET的值,如果此值为0,表示禁用了PGA 自动管理。
aggregate PGA auto target 75220992 bytes-----表示PGA还能提供多少内存给自动运行模式,通常这个值接近pga_aggregate_target-total pga inuse.global memory bound 20971520 bytes-----工作区执行的最大值,如果这个值小于1M,马上增加PGA大小total PGA inuse 30167040 bytes-----当前分配PGA的总大小,这个值有可能大于PGA,如果PGA设置太小.这个值接近select sum(pga_used_mem) from v$process.total PGA allocated 52124672 bytes-----工作区花费的总大小maximum PGA allocated 67066880 bytestotal freeable PGA memory 0 bytes ----没有了空闲的PGAprocess count 23 ----当前一个有23个processmax processes count 25PGA memory freed back to OS 0 bytestotal PGA used for auto workareas 8891392 bytesmaximum PGA used for auto workareas 22263808 bytestotal PGA used for manual workareas 0 bytes ---为0自动管理maximum PGA used for manual workareas 0 bytes ---为0自动管理over allocation count 0如果PGA设置太小,导致PGA有时大于PGA_AGGREGATE_TARGET的值,此处为0,说明PGA没有扩展大于TARGET的值,如果此值出现过,那么增加PGA大小。
bytes processed 124434432 bytesextra bytes read/written 0 bytescache hit percentage 100 percent ---命中率为100%,如果太小增加PGArecompute count (total) 665119 rows selectedSQL> select max(pga_used_mem)/1024/1024 M from v$process; ----当前一个process消耗最大的内存M----------9.12815189SQL> select min(pga_used_mem)/1024/1024 M from v$process where pga_used_mem>0; ---process消耗最少内存M----------0.19186878SQL> select max(pga_used_mem)/1024/1024 M from v$process ; ----process曾经消耗的最大内存M----------9.12815189SQL> select sum(pga_used_mem)/1024/1024 from v$process; ----当前process一共消耗的PGASUM(PGA_USED_MEM)/1024/1024---------------------------28.8192501068115如何设置PGA呢?我们可以在压力测试阶段,模拟一下系统的运行,然后运行select (select sum(pga_used_mem)/1024/1024 from v$process) /(select count(*) from v$process) from dual;得到一个process大约占用了多少的内存,然后估算系统一共会有多少连接,比如一共有500个连接,那么Sessions=1.1*process +5=500,那么processes=450,再乘以一个process需要消耗的内存,就能大约估算出PGA需要设置多大。
最好将PGA设置的值比计算出的值大一点,PGA值设定好后,就可以根据系统的性质,如果系统为OLTOP,那么总的内存可以设置为PGA/0.16,最后也能估算出SGA的大小,建议还是多配点内存,反正便宜。
下面摘抄eygle的关于一个process能够分配的最大内存(串行操作)的规则:10gR1之前,对于串行操作(非并行)一个process能够分配的最大的内存为min(5%pga_aggregate_target,100m)10gR2之后,对于串行操作(非并行)一个process能够分配的最大内存有如下规则:如果pga_aggregate_target<=500m,那么最大的内存为20%*pga_aggregate_target.如果500m<pga_aggregate_target<=1000m,那么最大内存为100m.如果1000m<pga_aggregate_target<=2.5G,那么最大内存为10%*pga_aggregate_target.如果pga_aggregate_target>2.5G,那么最大内存为2.5G.SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ2 FROM SYS.x$ksppi x, SYS.x$ksppcv y3 WHERE x.inst_id = USERENV ('Instance')4 AND y.inst_id = USERENV ('Instance')5 AND x.indx = y.indx6 AND x.ksppinm LIKE '%&par%'7 /NAME V ALUE DESCRIB------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------_smm_max_size 20480 maximum work area size in auto mode (serial)SQL> show parameter pgaNAME TYPE V ALUE------------------------------------ ----------- ------------------------------pga_aggregate_target big integer 100M此处我的一个process能够分配的最大内存为20M,因为我的PGA=100M,符合上面的规则。