You are on page 1of 9

Real Application Testing

Julian Dyke Independent Consultant


Web Version
1

2010 Julian Dyke

Real Application Testing Introduction


Introduced in Oracle 11.1 Licensable option Includes Database Replay SQL Performance Analyzer Database Replay Captures database workload on production system Replays captured workload on test system Optionally includes concurrency and timing characteristics Generates reports and recommends changes SQL Performance Analyzer Identifies performance divergence between workloads on source and target platforms Generates tuning recommendations

2010 Julian Dyke

Real Application Testing Database Replay

Requires the following steps: Capture workload into capture files Copy files to test system and preprocess them Replay files on test system Perform detailed analysis of workload capture and replay using reports generated by Database Replay Potential applications Test operating system upgrades Test database upgrades and migrations Test parameter changes Evaluate migration from single-instance to RAC Test storage changes Debugging Test database manageability features

2010 Julian Dyke

Real Application Testing Workload Capture

To capture workload on an existing system: Create a operating system directory e.g.


[oracle@server14]$ mkdir /home/oracle/rat/test1

Create an Oracle directory e.g.:


SQL> CREATE DIRECTORY dir1 AS '/home/oracle/rat/test1';

Start the capture process:


dbms_workload_capture.start_capture ( name => 'TEST4', dir => 'DIR4' );

Run the workload: Finish the capture process:


dbms_workload_capture.finish_capture;

2010 Julian Dyke

Real Application Testing Replay Preparation


Copy the capture files to the target database server On the target database Preprocess the captured workload
dbms_workload_replay.process_capture ( capture_dir => 'DIR1' );

Initialize the replay


dbms_workload_replay.initialize_replay ( replay_name => 'REPLAY1', replay_dir => 'DIR1' );

Prepare the replay


dbms_workload_replay.prepare_replay ( synchronization => FALSE );

2010 Julian Dyke

Real Application Testing Workload Replay


Copy the workload files to the client system. For example: /home/oracle/rat/test1 On the client Run the workload client to calibrate the replay
$ wrc tpcc/tpcc@cluster1-scan mode=CALIBRATE \ replaydir=/home/oracle/rat/test1

The calibration process recommends the number of client processes required to perform the replay Replay the workload

$ wrc tpcc/tpcc@cluster1-scan mode=REPLAY \ replaydir=/home/oracle/rat/test1

The client will not start to replay the workload until the replay has been started on the target database

2010 Julian Dyke

Real Application Testing Workload Replay

On the target database Start the replay process


dbms_workload_replay.start_replay;

When the replay process completes on the client, run the replay report

SET SERVEROUTPUT ON TRIMSPOOL ON LONG 500000 LINESIZE 200 VAR v_rep_rpt CLOB; DECLARE l_cap_id NUMBER; l_rep_id NUMBER; BEGIN l_cap_id := dbms_workload_replay.get_replay_info (dir => 'DIR4'); SELECT MAX (id) INTO l_rep_id FROM dba_workload_replays WHERE capture_id = l_cap_id; :v_rep_rpt := dbms_workload_replay.report ( replay_id => l_rep_id, format => DBMS_WORKLOAD_CAPTURE.TYPE_TEXT ); END; / PRINT :v_rep_rpt 7

2010 Julian Dyke

Real Application Testing SQL Performance Analyzer

Can analyze impact on SQL performance of Database upgrade Configuration changes to operating system or hardware Schema changes Changes to database initialization parameters Refreshing optimizer statistics SQL tuning

2010 Julian Dyke

Thank you for your interest

info@juliandyke.com
9

2010 Julian Dyke

You might also like