ASM实验手册22-17_Oracle数据库教程_安装配置SwingBench进行Oracle压力测试
ASM实验手册22-17_Oracle数据库教程_安装配置SwingBench进行Oracle压力测试
1252
附:使用orastress!进行数据库压力测试该工具内附说明书,请看说明书比较该文档该文档为转载orastress主要测试数据库的压力。它可以测试数据库的CPU或者内存的压力(以只读方式),也可以使用包括普通INSERT和直接路径INSERT两种方式测试数据库的I/O能力。
orastress只能运行在windows下,但它也可以测试远程服务器的压力。
1、下载
下载地址是[color=#0066a7]http://www.linxcel.co.uk/orabm/orastress.zip2、安装
orastress!使用的用户和数据和orabm类似,它的安装方法和orabm也类似。1) 扩充表空间
orastress!使用orabm用户作为测试用户,orabm用户默认使用tools表空间作为默认表空间,在本测试中要导入10个Warehouses的数据,数据库大概在1G左右,所以,要保证orabm所用的表空间大于1G
注意:orastress!是共享软件,没有注册只能使用1个并发测试数据库
SQL> alter database datafile 'E:ORACLEORADATAORACLE9ITOOLS01.DBF' resize 1500m;
2) 删除orabm用户
如果你的数据库没有orabm用户,则跳过这步
DROP USER ORABM CASCADE;
3) 创建用户
sqlplus [color=#0066a7]system/pwd@tnsname @orabm_user
4) 创建表
sqlplus [color=#0066a7]system/pwd@tnsname @orabm_tab
5) 装载数据
orabmload Warehouses 10
这里装载10个warehouses的数据进行测试。数据量大概在1G左右,执行时间估计在15分钟左右。
如果是远程数据库,则先
set LOCAL=tnsname
然后再执行orabmload
6) 创建索引
sqlplus [color=#0066a7]system/pwd@tnsname @orabm_ind
7) 分析表和索引
sqlplus [color=#0066a7]system/pwd@tnsname @orabm_analyze
8) 授权
连接到目标服务器,以sys执行
GRANT EXECUTE ON DBMS_LOCK TO ORABM
9) 创建压力测试插入记录所用的表
sqlplus [color=#0066a7]orabm/orabm@tnsname @orastress_tab.sql
10) 创建orastress!用到的包和存储过程
创建包:
sqlplus [color=#0066a7]orabm/orabm@tnsname @orastress.plh
创建包体:
sqlplus [color=#0066a7]orabm/orabm@tnsname @orastress.plb
11) 申请注册码
经过以上步骤,在oracle的测试环境基本搭建完成,可以使用orastress!开始测试了。但orastress!是共享软件,没有注册只能使用1个并发测试数据库,我们可以申请一个有效期为20天的、功能无限制的试用注册码。
申请注册码的步骤是:
首先运行
D:programeroracle tools压力orastress>"orastress!.exe"
Serial: D989-A483
Licensed to: DEFAULT
Evaluation version: 1 session only per database
得到的D989-A483就是序列号(不同的机器有不同的序列号)
然后登录[color=#0066a7]http://www.linxcel.co.uk/software_orastress_key.html
输入相关信息,邮件地址一定要正确填写,并在最后一个输入框中输入序列号,提交后如果审核通过的话能拿到一个注册码拿到注册码后运行
D:programeroracle tools压力orastress>"orastress!.exe" register
在弹出的对话框中填入注册信息即可。很可惜,到目前位置我还没有能拿到key。
3、使用
orastress!可以运行在4种模式下:
READ :只读,测试CPU和内存。如果只测试单个实例,效果和orabm一样
OLTP :模拟在线事务交易系统测试
INS :测试普通insert的I/O压力
DIO :测试直接路径insert的I/O压力orastress!的使用方式是:
orastress! –s sess-iterations-list –t transacts-per-sess –c tns-alias-list –m mode [ -s batchsize]
其中:
sess-iterations-list:并发的个数。如果要测试多种数量的并发数,则多种数量之间用都好分割
transacts-per-sess:每个并发执行的事务数
tns-alias-list:被测试的实例别名。如果要测试多个实例,则各个实例名用逗号分割。
mode:运行模式。参看上文。
batchsize:可选。在IDS和DIO模式下用到。默认值是1000。在IDS和DIO模式下,插入的记录数达到batchsize就会提交一次。建议对单节点数据库分别采用1,2,3,5,10个Warehouses进行1,2,4,6,10个并发的50000个事务的测试.
对于多节点RAC建议采用1,2,3,5,10个Warehouses进行1,3,4,7,10个并发的50000个事务的测试.
$orastress -s 1 -t 500000 -c orcl -m oltp -u orabm/orabm 测试结果:---begin mode=OLTP sess=1 u=orabm txn=5000 TNS=orcl Tue Apr 29 16:49:45 2008
ORCL#1 w=1 txn(all)=5000 xn(sam)=4000 t(sam)=136 tps=29.4 d=202(5.1%) n=1606(40.
2%) o=179(4.5%) p=1828(45.7%) s=185(4.6%) end=290408-16:52:55
Total-tps=29.4
---end - Tue Apr 29 16:52:55 2008
---begin mode=OLTP sess=3 u=orabm txn=5000 TNS=orcl Tue Apr 29 16:52:58 2008
ORCL#1 w=1 txn(all)=5000 xn(sam)=4000 t(sam)=113 tps=35.4 d=194(4.9%) n=1650(41.
3%) o=194(4.9%) p=1781(44.5%) s=181(4.5%) end=290408-16:55:50
Total-tps=35.4
---end - Tue Apr 29 16:55:51 2008
---begin mode=OLTP sess=5 u=orabm txn=5000 TNS=orcl Tue Apr 29 16:55:53 2008
benchmark() Thread sess_ix=1 ExitThread(1)
benchmark() Thread sess_ix=2 ExitThread(1)
benchmark() Thread sess_ix=3 ExitThread(1)
benchmark() Thread sess_ix=4 ExitThread(1)
benchmark() Thread sess_ix=5 ExitThread(1)
Total-tps=0.0
---end - Tue Apr 29 16:55:56 2008注:ORA11G#1 is the database name followed by the instance id (useful for RAC testing)
w=1 shows the TPC-C Warehouse W_ID chosen at random for the session.d= delivery (4.6%)
n= new order (40.9%)
o= order status (4.6)
p= payment (45.4%)
s= stock level (4.5%)这个测试比较缓慢,大家在测试的时候需要耐心。