9
1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.c Web Version

1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

Embed Size (px)

Citation preview

Page 1: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

1 © 2010 Julian Dyke

Real ApplicationTestingJulian Dyke

Independent Consultant

juliandyke.com

Web Version

Page 2: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

2

© 2010 Julian Dykejuliandyke.com

Real Application TestingIntroduction 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

Page 3: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

3

© 2010 Julian Dykejuliandyke.com

Real Application TestingDatabase 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

Page 4: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

4

© 2010 Julian Dykejuliandyke.com

Real Application TestingWorkload Capture To capture workload on an existing system:

Create a operating system directory e.g.

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

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

Create an Oracle directory e.g.:

Run the workload:

Start the capture process:

dbms_workload_capture.start_capture(

name => 'TEST4',dir => 'DIR4'

);

dbms_workload_capture.finish_capture;

Finish the capture process:

Page 5: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

5

© 2010 Julian Dykejuliandyke.com

Real Application TestingReplay 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'

);

dbms_workload_replay.prepare_replay(

synchronization => FALSE);

Prepare the replay

Page 6: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

6

© 2010 Julian Dykejuliandyke.com

Real Application TestingWorkload 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

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

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

$ 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

Page 7: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

7

© 2010 Julian Dykejuliandyke.com

Real Application TestingWorkload 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 200VAR v_rep_rpt CLOB;

DECLAREl_cap_id NUMBER; l_rep_id NUMBER;

BEGINl_cap_id := dbms_workload_replay.get_replay_info (dir => 'DIR4');

SELECT MAX (id) INTO l_rep_id FROM dba_workload_replaysWHERE 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

Page 8: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

8

© 2010 Julian Dykejuliandyke.com

Real Application TestingSQL 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

Page 9: 1 © 2010 Julian Dyke Real Application Testing Julian Dyke Independent Consultant juliandyke.com Web Version

9

© 2010 Julian Dykejuliandyke.com

Thank you for your interest

[email protected]