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');