Friday, March 29, 2013

ORA-15564: contents of the replay directory provided to the workload replay client do not match with the replay directory provided to the database server

This can happen due to many different reasons.Some of the reasons I have noticed while running a DB replay were.

1)During connection remapping you are not providing the same connection string/service name as to the replay client.
2) The replay directory is not accessible from all the instances.
3) Replay workload is not pre-processed or it is pre-processed on some other version of the database as the target database.

ORA-00600: internal error code, arguments: [kdBlkCheckError], [75], [409240], [18018], [], [], [], [], [], [], [], []

I was working on Real application testing on an Exadata box and we faced following error while running the test.The changes made to the database:


  • We flashed back the database to guaranteed restore point after doing a Database replay.


ORA-00600: internal error code, arguments: [kdBlkCheckError], [75], [409240], [18018], [], [], [], [], [], [], [], []

On examining the alert log I noticed following error.This error is pointing for corruption in tablespace ABC.There is no segment name or segment owner reported ,so my initial thought  was that the corroupt block is actually a free space in this locally managed tablespace. I ran dbverify,rman validate and some other tests to identify the location of this corrupt block but all in vain .Then I looked at the trace file to find some more details of the corruption.The corruption actually happened at the time of flashback and it was in the bimap free space.The workaround was to restart the flashback and rebuild the bitmap segment.


Corrupt Block Found
         TSN = 12, TSNAME = ABC
         RFN = 75, BLK = 409240, RDBA = -998346247
         OBJN = 2, OBJD = -1, OBJECT = , SUBOBJECT =
         SEGMENT OWNER = , SEGMENT TYPE =


  • The ORA -600 error number is explained as below

arg[a]  --- File #
arg[b]  --- Block #
arg[c]  --- Application

So in case you are looking for a solution of other ORA-600 issues, you should be searching with ORA 600 and arg[c].

Workaround

1)
srvctl stop instance  -d rac -i rac1
srvctl start instance -d rac -i rac1 -o MOUNT
sqlplus / as sysdba
 Alter Database Flashback OFF;
 Alter Database Flashback ON;
 exit
srvctl stop instance  -d rac -i rac1
srvctl start database -d rac1

2) EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_BITMAPS('ABC');