Avatar of khanzada19
khanzada19
 asked on

Oracle Datafile corrupt block issue

Hi,
We've been getting this error.  Can someone please explain and what is the best fix.  I know there is a risk of data loss if we try to repair it on the Oracle level.  Need your input to get this fixed please.
*************************************
Sat Feb 28 06:00:40 2009
Hex dump of (file 3, block 48908) in trace file e:\oracle\product\10.2.0\admin\xxx\bdump\xxxx_j000_2488.trc
Corrupt block relative dba: 0x00c0bf0c (file 3, block 48908)
Bad header found during buffer read
Data in bad block:
 type: 1 format: 2 rdba: 0x00000668
 last change scn: 0x8084.000050db seq: 0xb0 flg: 0x76
 spare1: 0x0 spare2: 0x0 spare3: 0xcd8
 consistency value in tail: 0x2a640601
 check value in block header: 0x6c
 computed block checksum: 0x4065
Reread of rdba: 0x00c0bf0c (file 3, block 48908) found same corrupted data
Sat Feb 28 06:00:41 2009
GATHER_STATS_JOB encountered errors.  Check the trace file.
Sat Feb 28 06:00:41 2009
Errors in file e:\oracle\product\10.2.0\admin\xxx\bdump\xxxx_j000_2488.trc:
ORA-01578: ORACLE data block corrupted (file # 3, block # 48908)
ORA-01110: data file 3: 'E:\ORACLE\ORADATA\XXXX\SYSAUX01.DBF'

Sat Feb 28 06:02:59 2009
Corrupt Block Found
         TSN = 2, TSNAME = SYSAUX
         RFN = 3, BLK = 48908, RDBA = 12631820
         OBJN = 9087, OBJD = 9087, OBJECT = WRH$_WAITCLASSMETRIC_HIST_IND, SUBOBJECT = Sat Feb 28 06:00:40 2009
Hex dump of (file 3, block 48908) in trace file e:\oracle\product\10.2.0\admin\xxx\bdump\xxx_j000_2488.trc
Corrupt block relative dba: 0x00c0bf0c (file 3, block 48908)
Bad header found during buffer read
Data in bad block:
 type: 1 format: 2 rdba: 0x00000668
 last change scn: 0x8084.000050db seq: 0xb0 flg: 0x76
 spare1: 0x0 spare2: 0x0 spare3: 0xcd8
 consistency value in tail: 0x2a640601
 check value in block header: 0x6c
 computed block checksum: 0x4065
Reread of rdba: 0x00c0bf0c (file 3, block 48908) found same corrupted data
Sat Feb 28 06:00:41 2009
GATHER_STATS_JOB encountered errors.  Check the trace file.
Sat Feb 28 06:00:41 2009
Errors in file e:\oracle\product\10.2.0\admin\xxx\bdump\xxx_j000_2488.trc:
ORA-01578: ORACLE data block corrupted (file # 3, block # 48908)
ORA-01110: data file 3: 'E:\ORACLE\ORADATA\XXX\SYSAUX01.DBF'

Sat Feb 28 06:02:59 2009
Corrupt Block Found
         TSN = 2, TSNAME = SYSAUX
         RFN = 3, BLK = 48908, RDBA = 12631820
         OBJN = 9087, OBJD = 9087, OBJECT = WRH$_WAITCLASSMETRIC_HIST_IND, SUBOBJECT =
         SEGMENT OWNER = SYS, SEGMENT TYPE = Index Segment
********************

thx.
Oracle Database

Avatar of undefined
Last Comment
NeilChak

8/22/2022 - Mon
David VanZandt

Do you have any known invalid objects?  SELECT * from DBA_OBJECTS WHERE STATUS <> 'VALID';
Have you used your trace file (named in the log) to determine which object has the bad block?
Some advise moving the table / indexes to another tablespace, or even simply closing then logging back on.  A couple of experts mentioned the repair utility found at http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14231/repair.htm.
 
schwertner

To see what is the damaged object use

SELECT owner, segment_name, segment_type
FROM dba_extents
WHERE file_id = 3
AND B BETWEEN block_id AND block_id + blocks    48908;

In most cases the damaged object is index.
If it so the rebuid it.
ASKER CERTIFIED SOLUTION
sventhan

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
NeilChak

Hi,
RMAN can recover individual corrupted datafile blocks. When RMAN performs
a complete scan of a file for a backup, any corrupted blocks are listed in
V$DATABASE_BLOCK_CORRUPTION. Corruption is usually reported in alert
logs, trace files or results of SQL queries. Use BLOCKRECOVER to repair all
corrupted blocks:
RMAN> BLOCKRECOVER CORRUPTION LIST;
You can also recover an individual block:
RMAN> BLOCKRECOVER DATAFILE 3 BLOCK 48908;
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23