Tag Archives: RAT

打开Oracle 10g的Real Application Testing功能

Oracle 自11gR1开始提供了一个极好的feature– Real Application Testing,又叫做数据库回放。可以通过内置于数据库中的捕捉功能从数据库层面把所有的业务操作录制下来,并拿到适当的环境进行回放。这个对于想要模拟实际生产环境的负载来说,实在是非常有用的特性。传统的在测试环境要想模拟生产负载一般通过挑选典型场景,使用测试工具(如LoadRunner或者JMeter)或者编码的形式准备好测试脚本,然后进行加压,耗时长而且误差不可估计。 RAT因为是内置于数据库本身,所有就具有与生俱来的优势了。 除此之外,对于数据库的升级,软硬件架构变化等等各种变化可能对数据库带来的影响,RAT也是极好的一个衡量手段。在老的系统上录制下来的工作负载,拿到变更后的环境进行回放,就可以很好的看出变更带来的差异,性能的提升或者衰减。 之前介绍过RAT的使用方法,今天主要介绍如何在老版本上打开RAT功能。 10.2.0.4之前的版本,需要打一个补丁,然后再运行必须的程序包进行激活。10.2.0.4之后的版本,因为本身已经具备了RAT功能,所以只需要修改一个数据库参数即可。(之所以这个参数从10.2.0.4开始才有是因为11gR1发布的时候10.2.0.4尚未发布,所以这个feature就被backport进去了)。 10.2.0.2或者更老的版本有一个特殊之处是补丁打完,捕捉的时候还会报错,现象就是: ERROR at line 1: ORA-04063: package body “SYS.DBMS_WORKLOAD_CAPTURE” has errors ORA-06508: PL/SQL: could not find program unit being called: “SYS.DBMS_WORKLOAD_CAPTURE” ORA-06512: at line 1 这个问题在bug#9094202中描述,这个bug可以通过替换之前版本的prvtawr.plb文件进行绕过。这个问题在10.2.0.3修复了。 P.S. 还有不到10个小时2012年就要结束了,今年太懒了,总共不到10篇博文,来年得好好反省反省。顺便祝本站的新老读者朋友新年开心! BTW:玛雅人的预测太不靠谱了!他们预言的世界末日那一刻,我刚好在客户现场解决刚才的这个bug,等到搞定之后,旁边的哥们告诉我,世界末日已经过了,我立时有种劫后余生的感觉!!

Posted in 数据库 | Tagged , | Leave a comment