Saturday, October 23, 2010

RAT (Real Application Testing)

Recently embarked upon playing with RAT. The requirement was to grab a 10.2.0.3 production database, setup capture and play it on an 11.1.0.7 environment. Was on the long run able to take a snapshot of a two and a half hour caption and successfully play this againt the 11.1 environment.

The issue wasnt with the capture but was instead with the replay part. Currently have oracle working on a one off patch to address this issue i have with playing a capture that exceeds a two and a half hour period. I shall in this blog attempt to share what i did and the issues i faced.
The environment was an AIX 64bit machine.
Oracles RAT can report three types of divergences - data divergence, error divergence and performance divergence. The data divergence oracle claims will compare and report on the varying systems of amount or rows returned per call, while the performance divergence primarily focuses on performance differences between the target and source systems and the error divergence bit focuses on looking for errors that you might experience if the decision is made to go ahead with the upgrade and helps you see what issues/bugs exists in the release you are contemplating migrating to.
Its important i have found to make a copy of the source and populate the target or at least make sure that the replay environments looks very close to the capture environment as best as possible. You can choose means you prefer and vary from imports via datapump, RMAN backup/duplication or even creating a physical standby database of the capture environment and activate the standby afterwards to make it a standalone afterwards. Issue with the duplication/stand by option is the database will have to be the same version first and then an upgrade done  afterwards .
Applied patch 6974999 and will need to run catwrr on the 10.2.0.3 source database before RAT can be run on 10.2.0.3.

CREATED DIRECTORY ON SOURCE


SQL> !mkdir /oraDVbkup/temp/new_cap

SQL> CREATE OR REPLACE DIRECTORY NEW_CAP as '/oraDVbkup/temp/new_cap' ;

Directory created.

SQL> grant read , write on directory NEW_CAP to public;

Grant succeeded.

SQL> exec dbms_workload_capture.start_capture('CAP1_TEST','NEW_CAP','600');

PL/SQL procedure successfully completed.

CHECK STATUS OF CAPTURE


SQL> COL NAME FOR A25
SQL> COL DIRECTORY FOR A15
SQL> COL STATUS FOR A20
SQL> /

        ID NAME                      DIRECTORY       STATUS
---------- ------------------------- --------------- --------------------
        13 CAP1_TEST                 NEW_CAP         IN PROGRESS


OBSERVE THE RECORDED FILES IN THE CREATED DIRECTORY


}:/home/oracle > ls -ltr /oraDVbkup/temp/new_cap
total 640
-rw-r--r--    1 oracle   oinstall        100 Sep 13 09:13 wcr_scapture.wmd
-rw-r--r--    1 oracle   oinstall          0 Sep 13 09:13 wcr_cap_0000d.start
-rw-r-----    1 oracle   oinstall       2173 Sep 13 09:14 wcr_4t3jjrc0034u6.rec
-rw-r-----    1 oracle   oinstall       2591 Sep 13 09:14 wcr_4t3jjrc0030vs.rec
-rw-r-----    1 oracle   oinstall       2325 Sep 13 09:16 wcr_4t3jk7w0034h2.rec
-rw-r-----    1 oracle   oinstall       1010 Sep 13 09:16 wcr_4t3jk7w0028ju.rec
-rw-r-----    1 oracle   oinstall       2235 Sep 13 09:16 wcr_4t3jk7w0030tu.rec
-rw-r--r--    1 oracle   oinstall       1833 Sep 13 09:16 wcr_4t3jk6c002nyn.rec
-rw-r--r--    1 oracle   oinstall       3096 Sep 13 09:17 wcr_4t3jkaw002hz2.rec
-rw-r--r--    1 oracle   oinstall       1590 Sep 13 09:18 wcr_4t3jkh400241n.rec
-rw-r-----    1 oracle   oinstall       1566 Sep 13 09:18 wcr_4t3jkps002s62.rec
-rw-r-----    1 oracle   oinstall       1058 Sep 13 09:19 wcr_4t3jku8003csh.rec
-rw-r-----    1 oracle   oinstall       1432 Sep 13 09:19 wcr_4t3jkxn002wwn.rec
-rw-r-----    1 oracle   oinstall       2234 Sep 13 09:21 wcr_4t3jmdw002hmh.rec
-rw-r-----    1 oracle   oinstall       2326 Sep 13 09:21 wcr_4t3jmdh003cua.rec
-rw-r-----    1 oracle   oinstall       1566 Sep 13 09:23 wcr_4t3jmvc002s7n.rec
-rw-r-----    1 oracle   oinstall       2326 Sep 13 09:26 wcr_4t3jnm00028vh.rec
-rw-r-----    1 oracle   oinstall       2235 Sep 13 09:26 wcr_4t3jnm0002sxu.rec
-rw-r-----    1 oracle   oinstall       6735 Sep 13 09:27 wcr_4t3jnv8002cny.rec
-rw-r-----    1 oracle   oinstall       7645 Sep 13 09:27 wcr_4t3jnuw0030g2.rec
-rw-r-----    1 oracle   oinstall      63868 Sep 13 09:27 wcr_4t3jnsn003cz6.rec
-rw-r-----    1 oracle   oinstall      11756 Sep 13 09:27 wcr_4t3jns80020ty.rec
-rw-r--r--    1 oracle   oinstall       5635 Sep 13 09:28 wcr_4t3jkm400343c.rec
-rw-r-----    1 oracle   oinstall     148793 Sep 13 09:28 wcr_4t3jjq80028ts.rec
-rw-r-----    1 oracle   oinstall       1565 Sep 13 09:28 wcr_4t3jp0w002cqc.rec
crpu162a:{ccvqat01}:/home/oracle >


THE FTP THE RECORDED FILES OF TO THE 11G PLAY SERVER



ON 11G (TARGET)

CREATE DIRECTORY FOR REPLAY



SQL> !mkdir /tempfs/ccvplay/new_cap

SQL> create or replace directory NEW_CAP as '/tempfs/ccvplay/new_cap';

Directory created.

SQL> grant read , write on directory new_cap to public;

Grant succeeded.

FOR SOME REASON WE NEED TO PROCESS THE REPLAY WITH BELOW COMMAND FIRST

SQL>  EXEC DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE(capture_dir=>'NEW_CAP');

PL/SQL procedure successfully completed.


CALIBRATE FOR REPLAY

crpu220p3a:{ccvplay}:/tempfs/ccvplay >  $ORACLE_HOME/bin/wrc mode=calibrate replaydir=/tempfs/ccvplay/new_cap

Workload Replay Client: Release 11.1.0.7.0 - Production on Mon Sep 13 10:11:22 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


Report for Workload in: /tempfs/ccvplay/new_cap
-----------------------

Recommendation:
Consider using at least 1 clients divided among 1 CPU(s)
You will need at least 22 MB of memory per client process.
If your machine(s) cannot match that number, consider using more clients.

Workload Characteristics:
- max concurrency: 6 sessions
- total number of sessions: 39

Assumptions:
- 1 client process per 50 concurrent sessions
- 4 client process per CPU
- 256 KB of memory cache per concurrent session
- think time scale = 100
- connect time scale = 100
- synchronization = TRUE

crpu220p3a:{ccvplay}:/tempfs/ccvplay >


INITIALIZE THE REPLAY PROCESS

BEGIN
DBMS_WORKLOAD_REPLAY.initialize_replay (
replay_name => 'MYFIRST_REPLAY',
replay_dir => 'NEW_CAP');
DBMS_WORKLOAD_REPLAY.prepare_replay (
synchronization => TRUE);
END;
 /

PL/SQL procedure successfully completed.


SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
crpu220p3a:{ccvplay}:/tempfs/ccvplay >



NOW RUN REPLAY
FIRST RUN WRC FROM HOME/bin as below;

      
crpu220p3a:{ccvplay}:/home/oracle > $ORACLE_HOME/bin/wrc system/password@ccvplay mode=replay replaydir=/tempfs/ccvplay/ne>

Workload Replay Client: Release 11.1.0.7.0 - Production on Mon Sep 13 11:50:44 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


Wait for the replay to start (11:50:44)


OPEN 2ND WINDOW and sqlplus into play database.

SECONDLY IN ANOTHER WINDOW RUN-DBMS_WORKLOAD_REPLAY.start_replay like below


crpu220p3a:{ccvplay}:/home/oracle > sqlplus

Copyright (c) 1982, 2008, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> BEGIN
  DBMS_WORKLOAD_REPLAY.start_replay;
END;
/ 

PL/SQL procedure successfully completed.

SQL>


NOTICE IN THE 1ST WINDOW MESSGAE CHANGE FROM WAITING TO STARTED.



BEGIN
DBMS_WORKLOAD_REPLAY.initialize_replay (
replay_name => 'MYFIRST_REPLAY',
replay_dir => 'NEW_CAP');
DBMS_WORKLOAD_REPLAY.prepare_replay (
synchronization => TRUE);
END;
/

PL/SQL procedure successfully completed.

SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
crpu220p3a:{ccvplay}:/tempfs/ccvplay >       
crpu220p3a:{ccvplay}:/home/oracle > $ORACLE_HOME/bin/wrc system/password@ccvplay mode=replay replaydir=/tempfs/ccvplay/ne>

Workload Replay Client: Release 11.1.0.7.0 - Production on Mon Sep 13 11:50:44 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


Wait for the replay to start (11:50:44)
Replay started (11:51:05)

Replay finished (12:31:00)


Issues encountered:
Getting error below when issueing the process capture command on the replay server of captures spanning over 2 and a half hours.Oracle suggest taking database to 10.2.0.5 to overcome this error. They are working currently to get me a one off patch as i cant upgrade my 10.2.0.3 environment. Will update blog as soon as i get the patch number.
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x382BB89F8] [PC:0x105034610, keccfParseAttributes()+01
f0]
Incident 96224 created, dump file: /orabase/admin/wm5cplay/diag/rdbms/wm5cplay/wm5cplay/incident/incdir_96224/wm5cpla
y_ora_3026978_i96224.trc
ORA-07445: exception encountered: core dump [keccfParseAttributes()+01f0] [SIGSEGV] [ADDR:0x382BB89F8] [PC:0x10503461
0] [Address not mapped to object] []

ssexhd: crashing the process...
Shadow_Core_Dump = partial

No comments:

Post a Comment