Real Application TestingReported This is a featured page

Real Application Testing (RAT), a new and useful feature for Oracle 11g Enterprise Edition, consists of several components used to capture, analyze, and replay production database transactions. The goal of RAT is to assist DBAs in testing and identifying the full impact of upgrades and system changes.

First, the capture component of RAT works by recording production system workload transactions, including concurrency and timing details, and storing them in a set of binary capture files. In terms of what activity is captured depends on user-defined filters. Capture filtering allows a DBA to not only filter sessions which should and should not be captured, but also attributes such as users, programs, modules, actions, services, and session IDs. In addition, capture can be run at a scheduled interval or on-demand. While the capture process itself introduces some performance overhead, it is minimal (generally < 5%).

Second, the workload files must be processed and the secondary environment must be built. Generally, as the secondary test system must be logically similar to production, it is most easily built by using a backup of the production database. Also, during workload processing, the capture files are translated into replay files and relevant meta-data is generated. As processing is time-consuming and carries significant performance overhead, it is recommended that it be performed on the secondary test system. After all capture files have been processed into replay files, the workload can be replayed indefinitely.

Third, replay is performed using one or more driver systems. The number of driver systems required depends on the scale of concurrency. The best way to identify the number of clients needed to effectively replay the workload is by using the Client Calibration Advisor. Each driver system, reading the replay files, is able to recreate the captured production workload. In addition to preserving the production timings and concurrency (Synchronized Replay), the workload can be altered to perform stress testing (Unsynchronized Replay). In Synchronized Replay mode, the workload is recreated exactly; all concurrency, timing, and commit ordering remaining identical to that captured. In Unsynchronized Replay mode, the DBA is able to alter several parameters of replay such as think time, commit order, and logon time.

After replay, the DBA can analyze and report on the three types of divergence, Data Divergence, Error Divergence, and Performance Divergence. Data Divergence will compare and report on the divergence of both systems in regards to the number of rows returned by each call. For each call, Error Divergence reports on whether an error occurred only during replay (new error), when an error which happened during capture did not occur during replay (error not found), and whether a different error occurred during replay than it did in production (mutated error). Performance Divergence provides both high-level and detailed performance divergence information.

Real Application Testing is a separate licensed option for Enterprise Edition only.



jonah.harris
jonah.harris
Latest page update: made by jonah.harris , Dec 1 2007, 12:16 AM EST (about this update About This Update jonah.harris Fixing my own obvious mistakes - jonah.harris

29 words added
8 words deleted

view changes

- complete history)
More Info: links to this page
Started By Thread Subject Replies Last Post
sdeuvarow How to use the RAT 0 Nov 27 2008, 11:01 AM EST by sdeuvarow
Thread started: Nov 27 2008, 11:01 AM EST  Watch
I understand RAT's goals and benefits. It's a very powerfull tool.
But i have some doubts.

If i want to compare two "reproductions", i should do it using the same data in the DB. Then, i think the process should be something like this:

1- Start an on-the-fly Backup in production environment.
2- When it finish (i don't want a dirty capture), start to record.
3- Finish the record.
4- Recover the Backup on the testing environment.
5- Play the capture on the testing environment.

But, the problem i found is that the data in the production environment could have change from the backup to the record. And, maybe, this invalidates the results of the comparison.
Maybe i'm wrong. But, in case the data changing (between backup and the RAT record) is too much, what should be a good methodology (instead my 5 steps) to use the RAT.

Other question i have ¿Should i record with RAT in the testing environment while playing RAT reproduction to reproduce the 5% overhead?

regards,
Simon
Do you find this valuable?    
Keyword tags: None
caffeinated24x7 ideas for utilizing Real Application Testing 0 Aug 6 2008, 10:24 AM EDT by caffeinated24x7
Thread started: Aug 6 2008, 10:24 AM EDT  Watch
With Oracle 11g now well on its way in the market, I wanted to comment on one of the best new options available: Real Application Testing. Oracle 11g now allows DBAs the ability to capture their exisiting workload on a production system and play it back on a test system exactly as it behaved on production. Sound too good to be true? It isn't. In fact, its very easy to do. Oracle 11g RAT is able to capture the workload on an Oracle 10g database then replay it on an 11g database to see what has improved, remain unchanged, and what has regressed. With the release of Oracle 10g's 10.2.0.4 patchset, all Oracle 10g production databases can have their workload replayed on an Oracle 11g database and find issues before actually upgrading. What a great way to minimize risk. With the 11g RAT, there are two steps to take:
1. Database Replay
2. SQL Performance Analyzer (SPA)
The Database Replay feature enables users to perform real-world testing by capturing the actual database workload on the production system and replaying it on the test system. The replay on the test system can be done with production characteristics including timing and concurrency. It also provides analysis and reporting to highlight potential problems and recommend ways to remedy the problems. You also have the ability to perform load testing with Database Replay. By running the captured workload in parallel or quickening thr execution rate, the captured workload will simiulate real-world load testing. With either option, you decide how long you want to capture your production workload and when you want to capture your production workload. For example, if you were running a batch load at 4am to 5am, you can capture the entire batch process. Or if you are interested in capture the daily transactions from 11am to 1pm, Database Replay will create a job and execute during the times you are interested in capturing.

~Linda
http://linda-smith.blogspot.com (See 11.11.2007 entry)
Do you find this valuable?    
fendale Other processes running during replay? 1 Apr 21 2008, 12:20 PM EDT by virag_sh
Thread started: Apr 9 2008, 6:18 AM EDT  Watch
I cannot seem to find a clear explanation of this in the documentation I have come across so far.

If I am replaying a workload on a database, can I also run other processes on the replay database? I would like to have a replayed workload running, and then run other processes to see how they perform under real-life load.
Do you find this valuable?    
Show Last Reply
Showing 3 of 3 threads for this page

Related Content

  (what's this?Related ContentThanks to keyword tags, links to related pages and threads are added to the bottom of your pages. Up to 15 links are shown, determined by matching tags and by how recently the content was updated; keeping the most current at the top. Share your feedback on Wetpaint Central.)