在数据库的迁移和升级场景中,我们经常会遇到一个问题:在做压力测试时,如何模拟真实的业务压力,解决这个问题的方法有很多,比如:应用方开发模拟程序或者使用压力测试工具模拟,如load runner,但是,如果要说哪种方法能最大限度地模拟真实业务压力,我认为还是Oracle的Database Replay(数据库重放)功能,Database Replay功能是Real Application Testing的一部分,它的基本原理图如下:

简单说,Database Replay可以在生产数据库上“捕获”负载(workload capture),保存成一定格式的二进制文件。将保存的负载文件复制到测试环境,经过一定的处理后,就可以在测试环境“重放”负载(workload replay),从而达到模拟真实压力,进行压力测试的目的。

Database Replay是11g才有的特性,但是,负载的捕获,支持10.2.0.4之后的数据库,这一点也正好符合国内很多客户的需求,因为国内还有相当一部分客户,因为稳妥起见,系统还都一直运行在10gR2版本的Oracle数据库上,都有升级的需求。

Consolidated Database Replay 是11.2.0.2之后才出现的功能,字面意思是整合的数据库重放,它可以将不同系统“捕获”的负载,整合到一起重放,适用于数据库整合测试和Scale-Up测试。

后面我们用实验来详细介绍一下Database Replay的相关功能,实验采用10.2.0.5作为负载的捕获端,用12.1.0.2作为负载的重放端。

准备工作(安装Database Replay相关补丁)

首先要根据文档 Mandatory Patches for Database Testing Functionality for Current and Earlier Releases (Doc ID 560977.1),检查该打的补丁是否打过了。捕获端和重放端都要打。

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式