Block corruption error in system datafile

Hi Guru,
There is a problem in system datafile of production database, one of the block has been corrupted.we have set the configuration of RMAN with SBT_TAPE for backup. when we try to recover using then following commands then we get some error. Please help to solve the issue.database 1s 10g on linux environment.
RMAN> RUN
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
blockrecover datafile 3 block 39830;
}2> 3> 4> 5>
allocated channel: c1
channel c1: sid=1417 devtype=DISK
Starting blockrecover at 21-MAR-13
released channel: c1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 03/21/2013 13:02:10
RMAN-06026: some targets not found - aborting restore
RMAN-06100: no channel to restore a backup or copy of datafile 3
RMAN>
RMAN> blockrecover datafile 3 block 39830;
Starting blockrecover at 21-MAR-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1417 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=2351 devtype=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=1452 devtype=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: sid=1270 devtype=DISK
allocated channel: ORA_DISK_5
channel ORA_DISK_5: sid=1865 devtype=DISK
allocated channel: ORA_DISK_6
channel ORA_DISK_6: sid=2064 devtype=DISK
allocated channel: ORA_DISK_7
channel ORA_DISK_7: sid=1734 devtype=DISK
allocated channel: ORA_DISK_8
channel ORA_DISK_8: sid=1574 devtype=DISK
released channel: ORA_DISK_1
released channel: ORA_DISK_2
released channel: ORA_DISK_3
released channel: ORA_DISK_4
released channel: ORA_DISK_5
released channel: ORA_DISK_6
released channel: ORA_DISK_7
released channel: ORA_DISK_8
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 03/21/2013 13:19:59
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27211: Failed to load Media Management Library
Additional information: 2
RMAN>
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/d02/rman/ctl_%F';
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 8 BACKUP TYPE TO BACKUPSET;
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 8 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' TO 1;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/d02/rman/%T_%d_%s_%p';
CONFIGURE MAXSETSIZE TO UNLIMITED;
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM 'AES128';
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/d02/rman/snapcf_PROD.f';

Please find the below backup and recovery scripts.
Daily backup script
====================
run {
allocate channel 'dev_0' type 'sbt_tape'
parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=PROD,OB2BARLIST=Monday-ERP-RMAN-Daily)';
allocate channel 'dev_1' type 'sbt_tape'
parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=PROD,OB2BARLIST=Monday-ERP-RMAN-Daily)';
allocate channel 'dev_2' type 'sbt_tape'
parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=PROD,OB2BARLIST=Monday-ERP-RMAN-Daily)';
allocate channel 'dev_3' type 'sbt_tape'
parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=PROD,OB2BARLIST=Monday-ERP-RMAN-Daily)';
allocate channel 'dev_4' type 'sbt_tape'
parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=PROD,OB2BARLIST=Monday-ERP-RMAN-Daily)';
allocate channel 'dev_5' type 'sbt_tape'
parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=PROD,OB2BARLIST=Monday-ERP-RMAN-Daily)';
allocate channel 'dev_6' type 'sbt_tape'
parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=PROD,OB2BARLIST=Monday-ERP-RMAN-Daily)';
allocate channel 'dev_7' type 'sbt_tape'
parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=PROD,OB2BARLIST=Monday-ERP-RMAN-Daily)';
delete noprompt archivelog until time 'sysdate-2';
crosscheck archivelog all;
sql 'alter system archive log current';
backup as compressed backupset
format 'Monday-ERP-RMAN-Daily<PROD_%s:%t:%p>.dbf'
database;
backup as compressed backupset
format 'Monday-ERP-RMAN-Daily<PROD_%s:%t:%p>.dbf'
archivelog all;
backup
format 'Monday-ERP-RMAN-Daily<PROD_%s:%t:%p>.dbf'
current controlfile;
we tried the following command as well.
RMAN> RUN
ALLOCATE CHANNEL c1 DEVICE 'sbt_tape';
blockrecover datafile 3 block 39830;
but the same error as below.
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/d02/rman/ctl_%F';
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 8 BACKUP TYPE TO BACKUPSET;
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 8 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' TO 1;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/d02/rman/%T_%d_%s_%p';
CONFIGURE MAXSETSIZE TO UNLIMITED;
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM 'AES128';
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/d02/rman/snapcf_PROD.f';
RMAN>
also tried the following command
=======================
RMAN> RUN
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
blockrecover datafile 3 block 39830;
}2> 3> 4> 5>
allocated channel: c1
channel c1: sid=1417 devtype=DISK
Starting blockrecover at 21-MAR-13
released channel: c1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 03/21/2013 13:02:10
RMAN-06026: some targets not found - aborting restore
RMAN-06100: no channel to restore a backup or copy of datafile 3
RMAN>
RMAN> blockrecover datafile 3 block 39830;
Starting blockrecover at 21-MAR-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1417 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=2351 devtype=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=1452 devtype=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: sid=1270 devtype=DISK
allocated channel: ORA_DISK_5
channel ORA_DISK_5: sid=1865 devtype=DISK
allocated channel: ORA_DISK_6
channel ORA_DISK_6: sid=2064 devtype=DISK
allocated channel: ORA_DISK_7
channel ORA_DISK_7: sid=1734 devtype=DISK
allocated channel: ORA_DISK_8
channel ORA_DISK_8: sid=1574 devtype=DISK
released channel: ORA_DISK_1
released channel: ORA_DISK_2
released channel: ORA_DISK_3
released channel: ORA_DISK_4
released channel: ORA_DISK_5
released channel: ORA_DISK_6
released channel: ORA_DISK_7
released channel: ORA_DISK_8
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 03/21/2013 13:19:59
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27211: Failed to load Media Management Library
Additional information: 2
RMAN>

Similar Messages

  • Block corruption error

    Hi,
    We are facing block corruption error file system file. I rtied to identify the corrupted object using dba_extents but that query is also giving the block corruption error for the same block. we are running the database in noarchivelog mode and we don't have backup.
    please suggest the way how can i solve this corruption error?
    Thanks in advance.
    Regards
    Chirag

    you can use dbverify to check which blocks are corrputed and see below to know how to solve it http://www.google.co.in/search?hl=en&q=how+to+resolve+block+corruption%2Boracle&btnG=Search&aq=f&aqi=&aql=&oq=&gs_rfai=

  • How to overcome from Data block corruption error

    Hi,
    I am using one table when i was deleting one row, i encountered "Data block corruption error".
    Kindly suggest solutions for the same.
    Regards,
    Abhishek

    If you have a recovery manager backup, then you can perform a block recovery operation, after the information shown on the error message where the file# and the block# are displayed you can perform the block recovery operation.
    Syntax for the block recovery operation can be found here : BLOCKRECOVER
    In case of an index block, it is enough to rebuild the index.
    In case you have a regular backup with archivelog enabled you can restore the damaged datafile and perform a simple file recovery operation.
    One more additional tip that can be used, you may be interested in using the DBMS_REPAIR package unit.
    Finally, I suggest you to check the complete datafile using dbv (Database Verifier) utility to find out if there are more corrupt blocks in your datafile, and proactively run this utility as a maintenance task.
    ~ Madrid

  • Oracle giving Block corruption errors when using CDC for sending the data to SQL Server 2012

    Hello Friends,
    We are facing an error while using CDC with Oracle. It is a "Block corruption" error, which indicates at some level of data corruption. We ran RMAN validate command to scan the database for corruption but it returned with no errors, however he
    Alert Log in Oracle is still coming up with the following error. Has anyone experienced this error when using Oracle Standard Edition and SQL 2012 ?
    Trace file e:\app\pulse-ad\diag\rdbms\orcl\orcl\trace\orcl_ora_5992.trc
    Oracle Database 11g Release 11.1.0.7.0 - 64bit Production
    Windows Server 2003 Version V5.2 Service Pack 2
    CPU                 : 4 - type 8664, 4 Physical Cores
    Process Affinity    : 0x0000000000000000
    Memory (Avail/Total): Ph:6782M/24575M, Ph+PgF:12203M/30844M
    Instance name: orcl
    Redo thread mounted by this instance: 1
    Oracle process number: 151
    Windows thread id: 5992, image: ORACLE.EXE (SHAD)
    *** 2013-12-12 03:04:33.655
    *** SESSION ID:(1281.3832) 2013-12-12 03:04:33.655
    *** CLIENT ID:() 2013-12-12 03:04:33.655
    *** SERVICE NAME:(orcl) 2013-12-12 03:04:33.655
    *** MODULE NAME:(xdbcdcsvc.exe) 2013-12-12 03:04:33.655
    *** ACTION NAME:() 2013-12-12 03:04:33.655
    Lost-write detected for sequence 70856. The lost-write starts occurring in block 11193. The current block being validating is 12930.
    Block dump of the first lost-write block:
    Flag: 0x1 Format: 0x22 Block: 0x00002bb9 Seq: 0x000114bf Beg: 0x94 Cks:0x68ee
    Dump of memory from 0x0000000598D06C00 to 0x0000000598D06E00
    598D06C00 00002201 00002BB9 000114BF 68EE8094  [."...+.........h]
    598D06C10 00085BF1 0023BDA1 000DE19C 000DE19C  [.[....#.........]
    598D06C20 0000000C 00000000 2209160A 5BF10000  [..........."...[]
    598D06C30 3EB10502 00C0F5CA 0031BDA1 00010205  [...>......1.....]
    598D06C40 02B22C6A 038A6D69 00000001 00000000  [j,..im..........]
    598D06C50 4D554407 30373230 35BB0206 001100AE  [.DUM0270...5....]
    598D06C60 0001040A 000D000E 038A6D69 56B25735  [........im..5W.V]
    598D06C70 729C0003 E19C0001 000C0006 000D0006  [...r............]
    598D06C80 02BB0502 00C0F5CD 0023BDA1 000A0002  [..........#.....]
    598D06C90 00C00013 000000D0 00030201 56B25736  [............6W.V]
    598D06CA0 03890001 00000000 00000000 002E0105  [................]
    598D06CB0 FFFF0003 00C0F5CD 56B25736 3EB10003  [........6W.V...>]
    598D06CC0 FFFF0024 0014000C 000C0018 00120014  [$...............]
    598D06CD0 09CC0058 E75B0022 0009000F 00085BF1  [X...".[......[..]
    598D06CE0 0024BDA1 000DE19D 000DE19D 0000000C  [..$.............]
    598D06CF0 00000000 2309160A 5BF10000 3EB10502  [.......#...[...>]
    598D06D00 00C0F5CD 0020BDA1 00010205 02B22C72  [...... .....r,..]
    598D06D10 03900974 00000019 00000000 3030300A  [t............000]
    598D06D20 33303030 06323132 AE35BB02 0B441100  [0003212...5...D.]
    598D06D30 0001040A 000D000E 03900974 56B25736  [........t...6W.V]
    598D06D40 729C0003 E19D0011 000C0006 000D0006  [...r............]
    598D06D50 02BB0502 00C0F5CD 0024BDA1 00EA0002  [..........$.....]
    598D06D60 00270016 000001FC 00032C01 56B25736  [..'......,..6W.V]
    598D06D70 00000001 00000000 30393007 002E0105  [.........090....]
    598D06D80 FFFF0003 00C0F5CD 56B25736 00000003  [........6W.V....]
    598D06D90 FFFF0025 00140052 000C0018 00070035  [%...R.......5...]
    598D06DA0 0003000A 00070003 0001001D 00030001  [................]
    598D06DB0 00010001 00010001 00010001 00010001  [................]
    598D06DC0 00010001 00010001 00010001 00010001  [................]
    598D06DD0 00010001 00000001 00010001 00010001  [................]
    598D06DE0 00010001 00000014 09720174 00000022  [........t.r."...]
    598D06DF0 0009000F 00085BF1 0025BDA1 000DE19A  [.....[....%.....]
    Block dump of the current block being validating:
    Flag: 0x1 Format: 0x22 Block: 0x00003282 Seq: 0x000114c8 Beg: 0x0 Cks:0x312a
    Dump of memory from 0x0000000598DDFE00 to 0x0000000598DE0000
    598DDFE00 00002201 00003282 000114C8 312A8000  [."...2........*1]
    598DDFE10 50424703 31303607 34353335 69745319  [.GBP.6015354.Sti]
    598DDFE20 6E696C72 72502067 6375646F 4C207374  [rling Products L]
    598DDFE30 4E206474 C3025650 0380013D 0457454E  [td NPV..=...NEW.]
    598DDFE40 4E1E09C2 1E09C204 10C2024E 1E09C204  [...N....N.......]
    598DDFE50 09C2044E C2024E1E 03C30510 021B0929  [N....N......)...]
    598DDFE60 C3053DC3 0F192602 2602C305 C3050F19  [.=...&.....&....]
    598DDFE70 0C1A6203 5102C105 C2041F4E 044E1E09  [.b.....QN.....N.]
    598DDFE80 4E1E09C2 0410C202 4E1E09C2 1E09C204  [...N.......N....]
    598DDFE90 10C2024E 2903C305 78071B09 011D0B71  [N......)...xq...]
    598DDFEA0 BF020101 1FBF0215 4E018001 53014E01  [...........N.N.S]
    598DDFEB0 0723002C 0B0C7178 0A3C3C18 30303030  [,.#.xq...<<.0000]
    598DDFEC0 33373030 4D033337 47034255 36075042  [007373.MUB.GBP.6]
    598DDFED0 38333936 4E113331 2065776B 74616C50  [693813.Nkwe Plat]
    598DDFEE0 6D756E69 56504E20 0B0AC303 4E038001  [inum NPV.......N]
    598DDFEF0 C2045745 0459512E 59512EC2 5253C203  [EW...QY...QY..SR]
    598DDFF00 512EC204 2EC20459 C2035951 C3055253  [...QY...QY..SR..]
    598DDFF10 1B092903 0B0AC303 3C04C305 C3053239  [.).........<92..]
    598DDFF20 32393C04 4F08C305 C105114F 1F4E5102  [.<92...OO....QN.]
    598DDFF30 512EC204 2EC20459 C2035951 C2045253  [...QY...QY..SR..]
    598DDFF40 0459512E 59512EC2 5253C203 2903C305  [.QY...QY..SR...)]
    598DDFF50 78071B09 01190A71 C0030101 C0034709  [...xq........G..]
    598DDFF60 8001330A 4E014E01 002C5301 71780723  [.3...N.N.S,.#.xq]
    598DDFF70 3C180B0C 30300A3C 30303030 33373337  [...<<.0000007373]
    598DDFF80 42554D03 50424703 31304207 344C5131  [.MUB.GBP.B011QL4]
    598DDFF90 6F725020 63657073 614A2074 206E6170  [ Prospect Japan ]
    598DDFFA0 646E7546 64724F20 44535520 30302E30  [Fund Ord USD0.00]
    598DDFFB0 04C30331 03800133 0557454E 5B1603C3  [1...3...NEW....[]
    598DDFFC0 03C30521 04215B16 1F4004C3 1603C305  [!....[!...@.....]
    598DDFFD0 C305215B 215B1603 4004C304 03C3051F  [[!....[!...@....]
    598DDFFE0 031B0929 043304C3 4D245AC2 245AC204  [).....3..Z$M..Z$]
    598DDFFF0 02C3054D 040A1A18 494002C1 1603C305  [M.........@I....]
    *** 2013-12-12 03:05:07.984
    ** LOGMINER WARNING - Invalidated 6 LCRs **
    Complete dump of first invalid START LCR follows:
    ++  LCR Dump Begin: 0x0000000532C004E0 - CANNOT_SUPPORT
         op: 255, Original op: 3, baseobjn: 0, objn: 233316, objv: 1
         DF: 0x00000002, DF2: 0x00000000, MF: 0x00000000, MF2: 0x00000000
         PF: 0x40000001, PF2: 0x00002000
         MergeFlag: 0x00, FilterFlag: 0x00
         Id: 0, iotPrimaryKeyCount: 3, numChgRec: 4
         NumCrSpilled: 0
         RedoThread#: 1, rba: 0x0114c8.0001c6ce.00d4
         scn: 0x0003.56b593be, xid: 0x0008.00c.00100d85, pxid: 0x0008.00c.00100d85
         ncol: 0newcount: 0, oldcount: 0
         LUBA: 0x3.c109c0.c.15.38f64
    Thanks
    Dee

    Hi Dee,
    Thank you for your question.
    I am trying to involve someone more familiar with this topic for a further look at this issue. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated.
    Thank you for your understanding and support.
    Regards,
    Mike Yin
    TechNet Community Support

  • Block corruption error keep on repeating in alert log file

    Hi,
    Oracle version : 9.2.0.8.0
    os : sun soalris
    error in alert log file:
    Errors in file /u01/app/oracle/admin/qtrain/bdump/qtrain_smon_24925.trc:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01578: ORACLE data block corrupted (file # 1, block # 19750)
    ORA-01110: data file 1: '/u01/app/oracle/admin/qtrain/dbfiles/system.dbf'system datafile is restored from backup still the error is logged in alert log file
    Inputs are appreciated.
    Thanks
    Prakash

    Hi,
    Thanks for the inputs
    OWNER                          SEGMENT_NAME                                                                      PARTITION_NAME                 SEGMENT_TYPE       TABLESPACE_NAME                 EXTENT_ID    FILE_ID   BLOCK_ID      BYTES     BLOCKS RELATIVE_FNO
    SYS                            SMON_SCN_TO_TIME                                                                                                 CLUSTER            SYSTEM                                  1          1      19749      16384          1            1
    SYS                            SMON_SCN_TO_TIME                                                                                                 CLUSTER            SYSTEM                                  2          1      19750      32768          2            1Thanks
    Prakash

  • Impact on import if there is a block corruption error in exported dump file

    Hi All
    I got an exported file(exp utility) from production database and in the log it is showing the error
    EXP-00056: ORACLE error 1578 encountered
    ORA-01578: ORACLE data block corrupted (file # 29, block # 387036)
    ORA-01110: data file 29: '+ORAFILES/prod/datafile/data.1750.715846723'
    ORA-26040: Data block was loaded using the NOLOGGING option
    There were two such errors. At the end of the export it is giving the message "Export terminated successfully with warnings"
    I want to if I do an import using imp will there be any issues with the import.
    will the import complete successfully.
    The database version is 10.2.0.2.0
    Regards,
    Samrat
    Edited by: Samrat Kumar on May 18, 2010 11:23 PM

    You may try the import and hope it works out, but you and your DBA should address the ORA-26040 error message. Identify the segments that relate to both errors you encountered (using file id and block number) and figure out the what you may want to do if those are not index segments. Here is a link to a similar issue:
    ORA-26040: Data block was loaded using the NOLOGGING option
    Good Luck

  • Data Block Corruption error

    Hi
    I have a partitioned table which has bitmap indexes on it.
    Some of the bitmap indexes are giving datablock corruption error. Currently I am dropping the index and recreating it.
    Is there any other way to resolve this issue?
    Thanks.

    What type of system is this - OLTP or Datawarehouse ?
    Since you did not post the exact Oracle error received, lets try some educated guess. Are you getting this error:
    ORA-01578: ORACLE data block corrupted (file # string, block # string)
    Cause: The data block indicated was corrupted, mostly due to software errors.
    Action: Try to restore the segment containing the block indicated. This may involve dropping the segment and recreating it. If there is a trace file, report the errors in it to your ORACLE representative.
    Did you see if there was something more useful in the trace file (if created)?

  • Block Corruption (BR0398E DBVERIFY detected corrupted blocks in /oracle/TS2

    Hello Gurus
    I am facing Data Block corruption error for single datafile....
    BR0278W Command output of '/oracle/TS2/102_64/bin/dbv file=/oracle/TS2/sapdata3/ts2_73/ts2.data73 blocksize=8192':
    DBVERIFY: Release 10.2.0.2.0 - Production on Thu Jul 17 23:31:25 2008
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    DBVERIFY - Verification starting : FILE = /oracle/TS2/sapdata3/ts2_73/ts2.data73
    Block Checking: DBA = 528925394, Block Type = KTB-managed data block
    row 4: key out of order
         end index block validation
    Page 443090 failed with check code 6401
    DBVERIFY - Verification complete
    Total Pages Examined         : 1280000
    Total Pages Processed (Data) : 248379
    Total Pages Failing   (Data) : 0
    Total Pages Processed (Index): 180541
    Total Pages Failing   (Index): 1
    Total Pages Processed (Other): 13272
    Total Pages Processed (Seg)  : 0
    Total Pages Failing   (Seg)  : 0
    Total Pages Empty            : 837808
    Total Pages Marked Corrupt   : 0
    Total Pages Influx           : 0
    Highest block SCN            : 65006255 (0.65006255)
    BR0398E DBVERIFY detected corrupted blocks in /oracle/TS2/sapdata3/ts2_73/ts2.data73
    appriciated help please..
    Regards
    Giridhar.

    Dump file /oracle/TS2/saptrace/usertrace/ts2_ora_23103.trc
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
    With the Partitioning and Data Mining options
    ORACLE_HOME = /oracle/TS2/102_64
    System name:    SunOS
    Node name:      sassad25
    Release:        5.10
    Version:        Generic_120011-14
    Machine:        sun4u
    Instance name: TS2
    Redo thread mounted by this instance: 1
    Oracle process number: 53
    Unix process pid: 23103, image: oracle@sassad25 (TNS V1-V3)
    2008-07-18 13:48:40.486
    SERVICE NAME:(SYS$USERS) 2008-07-18 13:48:40.484
    SESSION ID:(925.20292) 2008-07-18 13:48:40.484
    Block Checking: DBA = 528925394, Block Type = KTB-managed data block
    row 4: key out of order
    end index block validation
    for block 0x1f86c2d2
    Block header dump:  0x1f86c2d2
    Object id on Block? Y
    seg/obj: 0x2c6f0  csc: 0x00.3f418d9  itc: 2  flg: E  typ: 2 - INDEX
         brn: 0  bdba: 0x1f86c00b ver: 0x01 opc: 0
         inc: 0  exflg: 0
    Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
    0x01   0x0000.000.00000000  0x00000000.0000.00  -
        0  fsc 0x0000.00000000
    0x02   0x0002.008.00002cb6  0x02475283.0359.19  --U-    2  fsc 0x0000.03f418ee
    Leaf block dump
    ===============
    header address 17494483044=0x412c0a064
    kdxcolev 0
    KDXCOLEV Flags = - - -
    kdxcolok 0
    kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
    kdxconco 7
    kdxcosdc 0
    kdxconro 174
    kdxcofbo 384=0x180
    kdxcofeo 967=0x3c7
    kdxcoavs 583
    kdxlespl 0
    kdxlenxt 528925395=0x1f86c2d3
    kdxleprv 528925393=0x1f86c2d1
    kdxledsz 6
    kdxlebksz 8032
    row#0[7990] flag: -
    , lock: 0, len=42, data:(6):  1b ce 75 c6 00 15
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 9; (9):  48 50 4c 4a 31 31 30 30 69
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#1[7952] flag: -
    , lock: 0, len=38, data:(6):  1c 46 88 34 00 0e
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 5; (5):  48 50 4c 4a 34
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#2[7913] flag: -
    , lock: 0, len=39, data:(6):  1b 8f 2b bd 00 03
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 6; (6):  48 50 4c 4a 34 30
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#3[7871] flag: -
    , lock: 0, len=42, data:(6):  20 03 18 b1 00 0a
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 9; (9):  48 50 4c 4a 34 30 30 30 00
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#4[7830] flag: -
    , lock: 0, len=41, data:(6):  1b 4f 19 ef 00 0b
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 8; (8):  48 50 4c 4a 34 30 30 30
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#5[7788] flag: -
    , lock: 0, len=42, data:(6):  21 03 15 12 00 02
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 9; (9):  48 50 4c 4a 34 30 30 30 31
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#6[7746] flag: -
    , lock: 0, len=42, data:(6):  1c 86 83 6a 00 0c
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 9; (9):  48 50 4c 4a 34 30 30 30 37
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#7[7704] flag: -
    , lock: 0, len=42, data:(6):  1b 4f 19 0f 00 02
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 9; (9):  48 50 4c 4a 34 30 30 30 44
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#8[7662] flag: -
    , lock: 0, len=42, data:(6):  1f 03 50 f5 00 03
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 9; (9):  48 50 4c 4a 34 30 30 30 44
    col 4; len 3; (3):  37 30 30
    col 5; len 1; (1):  44
    col 6; len 1; (1):  80
    row#9[7619] flag: -
    , lock: 0, len=43, data:(6):  1f 03 50 f5 00 04
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 9; (9):  48 50 4c 4a 34 30 30 30 44
    col 4; len 3; (3):  37 30 30
    col 5; len 1; (1):  44
    col 6; len 2; (2):  c1 02
    row#10[7577] flag: -
    , lock: 0, len=42, data:(6):  1f 43 21 d1 00 09
    col 0; len 3; (3):  30 31 35
    col 1; len 2; (2):  58 58
    col 2; len 8; (8):  46 4f 4e 54 52 45 50 4c
    col 3; len 9; (9):  48 50 4c 4a 34 30 30 30 45
    col 4; len 3; (3):  34 36 43
    col 5; len 1; (1):  44

  • (oracle) block corruption

    Hi Everybody,
    Recently, my site has a development database that encountered block corruption in the system tablespace. I have verified this by using Oracle utility DBVERIFY on the system datafile.
    We have no backup at all for this development database. So database recovery from backup is impossible for us.
    I understand that there's a package called DBMS_REPAIR that can be used to repair corrupted blocks. I tried using this, but the process failed because it could not access the system tablespace (which is corrupted) to create a table used by the package.
    Does anyone know if I could overcome this problem and repair the corrupted blocks on the system tablespace?
    Also, I would like to understand what are the possible causes of block corruption. My site's Oracle Server and databases are installed on Windows 2000 platform.
    Please help answer my queries if you can. Thank you!
    null

    Iam sorry that I have not seen this posting until today .
    When there is a block corruption export will fail with error.
    The best method is to replace this file with a backup file and roll forward.
    null

  • BLOCK CORRUPTION (ORACLE8 에서 ORA-1578 조치방법)

    제품 : ORACLE SERVER
    작성날짜 : 2002-04-26
    BLOCK CORRUPTION (ORACLE8 에서 ORA-1578 조치방법)
    ================================================
    PURPOSE
    본 bulletin 에서는 Oracle8 에서의 data block corruption error
    (ORA-1578) 에 대해서 조치방법을 알아본다.
    BACKGROUND
    ORA-1578 은 data block 에 corruption 이 생긴 경우에 발생한다.
    이 error 는 corruption 이 발생한 곳의 file number 와 block
    number 를 알려준다.
    본 bulletin 에서는 file number 를 'f', block number 를 'b' 로
    지칭하기로 한다. ORA-1578 과 함께 return 되는 file number는
    relative file number 가 아닌 absolute file number 를 의미한다.
    (Oracle8 에서 새롭게 소개된 relative file number 에 대해서는 본
    bulletin 의 6번 항목에서 다루도록 한다.)
    RESOLUTION
    1. 최선의 해결책은 backup 받아둔 file 을 restore 한 후
    recover 작업을 하는 것이다. 이 작업을 위해서는 archive
    log mode 로 운영 중이어야 한다.
    dba_data_files 또는 v$datafile 과 ORA-1578 error 에서
    return 된 absolute file number 를 이용하여 corruption이
    발생한 datafile 의 이름을 알아낼 수 있다.
    Oracle8 에서는, dba_data_files 에 absolute file number
    (file_id) 와 함께 relative file number (relative_fno) 를
    가지고 있다.
    v$datafile 에는 아직 absolute file number (file#) 만을 가진다.
    backup 을 restore 하기 전에 hardware 의 문제를 fix 해야 할
    필요가 있을 수 있다. 만약 corruption 이 disk 불량에 의해
    발생하였다면, backup 받아둔 datafile 을 문제가 없는 disk 에
    restore 하고, startup mount 한 후, 새로운 위치로 datafile
    rename 을 하고 recover 한다.
    만약 해당 datafile 이 system tablespace 에 속하지 않는다면
    offline tablespace recovery 도 가능하다.
    2. backup datafile 을 restore 하고 recover 하지 않을 것이라면
    우선, 어떤 object 에서 corruption 이 발생하였는지 확인해야
    한다.
    다음의 SQL 문을 이용한다.
    SELECT owner, segment_name, segment_type, relative_fno
    FROM dba_extents
    WHERE file_id = f
    AND b BETWEEN block_id AND block_id + blocks - 1 ;
    3. 해당 segment 가 non-data dictionary index라면, 해당 index를
    drop 한 후 재생성한다.
    4. 해당 segment 가 table 이라면, corruption 이 발생한 block 의
    data 는 소실된 것이다.
    5. 만약 해당 table 에 대한 최근의 export dump file이 존재한다면,
    해당 table 을 drop 한 후 import 함으로써 복구할 수 있다.
    최근의 export dump file 이 없거나 이를 export 받을 수 있는
    최근의 backup 이 없다면 다음과 같은 방법을 이용할 수 있다.
    6. corruption 이 발생한 non-clustered table 에서 corrupted
    block 을 access 하지 않고 나머지 data 들을 select 할 수
    있도록 ROWID 를 이용할 수 있다. non-clustered table의 모든
    row 들은 해당 row 의 물리적인 주소를 가리키는 고유한 ROWID를
    갖는다(해당 row가 여러 block에 조각이 나 있다면 첫번째 조각에
    대한 주소). clustered table 인 경우에는 서로 다른 table 의
    data 들이 같은 block 에 존재할 수 있으며, 같은 ROWID 를 가질
    수 있다.
    Oracle 은 index 를 구성하기 위하여 내부적으로 ROWID 를 사용한다.
    따라서 where 절에 ROWID 를 사용하여 select 하면 강제로 range
    scan 를 할 수 있다.
    Oracle8 에서는 이를 위하여 ROWID hint 를 사용할 필요가
    없어졌다.
    ROWID 를 이용하여 table 로부터 data 를 추출하기
    예제로써 ACCT_NO, PERSON, WEEKNO 등의 column 으로 구성된
    SCOTT user의 EXAMPLE 이라는 table 이 있다고 가정한다.
    이때, ORA-1578 "ORACLE data block corrupted (file # 5,
    block # 2) 가
    발생하였다고 가정하자.
    ROWID in Oracle8 :
    Oracle8 에서의 ROWID 는 'OOOOOOFFFBBBBBBSSS' format 을 가진다.
    OOOOOO = data object number
    Oracle7 의 object_id 와는 별도로 segment 의 id 를 갖는다.
    dba_objects 의 data_object_id 에서 확인가능
    FFF = relative file number
    BBBBBB = block number
    SSS = row number
    Oracle8에서의 ROWID 는 absolute file number 가 아닌 relative
    file number 를 갖는다는 점에 주목해야 한다.
    relative file number 는 tablespace 에 대해 상대적이며
    (tablespace마다 첫번째, 두번째, 세번째 datafile 을 가질 수
    있음을 의미) absolute file number 는 전체 database 내에서
    고유하다. 두개의 서로다른 file 들이 동일한 relative file
    number를 가질 수 있다.
    만약 EXAMPLE table 에서 ACCT_NO, ROWID 를 select하면 다음과
    같은 결과가 나올 수 있다.
    ACCT_NO ROWID
    12345 AAAAh3AAGAAACJAAAA
    19283 AAAAh3AAGAAACJAAAB
    22345 AAAAh4AAFAAAAADAAA
    60372 AAAAh4AAFAAAAADAAB
    33456 AAAAh5AAEAAAAIuAAA
    29473 AAAAh5AAEAAAAIuAAB
    이러한 format 을 extended ROWID character format 이라고
    지칭한다.
    extended ROWID 는 number 이므로 substr 함수를 이용하여
    extended ROWID 로부터 일부를 떼어낼 수 없다.
    ROWID 를 생성하기 위해서는 모든 component 를 알아야 한다.
    그런다음, DBMS_ROWID package 의 function 을 이용하여 ROWID 를
    생성할 수 있다.
    function rowid_create(rowid_type IN number,
    object_number IN number,
    relative_fno IN number,
    block_number IN number,
    row_number IN number)
    return rowid;
    pragma RESTRICT_REFERENCES(rowid_create,WNDS,RNDS,WNPS,RNPS);
    -- rowid_type - type (restricted=0/extended=1)
    -- object_number - data object number
    (rowid_object_undefined for )
    -- restricted
    -- relative_fno - relative file number
    -- block_number - block number in this file
    -- file_number - file number in this block
    corruption 이 발생한 block 의 data object number 를 알기
    위해서는 dba_objects 를 조회한다.
    SELECT data_object_id FROM dba_objects
    WHERE owner = 'SCOTT'
    AND object_name = 'EXAMPLE' ;
    DATA_OBJECT_ID
    2168
    우리는 이미, 위에서 사용한 다음의 SQL 에 의해서 relative file
    number 를 알고 있다.
    SELECT owner, segment_name, segment_type, relative_fno
    FROM dba_extents
    WHERE file_id = 5
    AND 2 BETWEEN block_id AND block_id + blocks - 1 ;
    OWNER SEGMENT_NAME SEGMENT_TYPE RELATIVE_F
    SCOTT EXAMPLE TABLE 5
    corruption 이 발생한 block 이 2이므로, block# 2 이전의 access
    가능한 마지막 ROWID 는 block# 1 에 존재한다. 그리고 block# 2
    이후의 access 가능한 첫 ROWID 는 block# 3에 존재한다. block
    안에 몇개의 row number 가 존재할 지 모르므로 row number 0 을
    이용한다.
    이제 corrupted block 이전의 ROWID 와 이후의 ROWID 를 생성할
    준비가 끝났다.
    corrupted block 이전의 ROWID :
    SELECT DBMS_ROWID.ROWID_CREATE(1,2168,5,1,0) FROM example ;
    DBMS_ROWID.ROWID_C
    AAAAh4AAFAAAAABAAA
    corrupted block 이후의 ROWID :
    SELECT DBMS_ROWID.ROWID_CREATE(1,2168,5,3,0) FROM example ;
    DBMS_ROWID.ROWID_C
    AAAAh4AAFAAAAADAAA
    다음으로, EXAMPLE table 과 같은 spec 으로 table 을 하나 만든다.
    CREATE TABLE temp AS SELECT * FROM example WHERE 1=2;
    그리고 corrupted block 이외의 block 에서 data 를 추출하여
    insert 한다.
    INSERT INTO temp SELECT * FROM example
    WHERE ROWID <= 'AAAAh4AAFAAAAABAAA';
    INSERT INTO temp SELECT * FROM example
    WHERE ROWID >= 'AAAAh4AAFAAAAADAAA';
    이후 원본 table 을 drop 하고, TEMP 를 rename 한다.
    7. 만약 data dictionary 에 속하는 table, index 또는 rollback
    segment에 corrupted block 이 발생하였다면 Oracle Support 의
    지원을 받는다.
    8. 일반적으로, ORA-1578 은 hardware 의 문제때문에 유발된다.
    하지만 만약에 ORA-600[3374] 가 발생한다면 memory 상에서
    corruption 이 발생한 경우이다.
    이 경우 database 를 restartup 하면 문제가 해결될 수 있다.
    Reference Documents
    --------------------

    Hello,
    Please check the link i posted.
    Example: Detecting Corruption
    The CHECK_OBJECT procedure checks the specified object, and populates the repair table with information about corruptions and repair directives. You can optionally specify a range, partition name, or subpartition name when you want to check a portion of an object.
    Validation consists of checking all blocks in the object that have not previously been marked corrupt. For each block, the transaction and data layer portions are checked for self consistency. During CHECK_OBJECT, if a block is encountered that has a corrupt buffer cache header, then that block is skipped.
    The following is an example of executing the CHECK_OBJECT procedure for the scott.dept table.
    SET SERVEROUTPUT ON
    DECLARE num_corrupt INT;
    BEGIN
    num_corrupt := 0;
    DBMS_REPAIR.CHECK_OBJECT (
    SCHEMA_NAME => 'SCOTT',
    OBJECT_NAME => 'DEPT',
    REPAIR_TABLE_NAME => 'REPAIR_TABLE',
    CORRUPT_COUNT => num_corrupt);
    DBMS_OUTPUT.PUT_LINE('number corrupt: ' || TO_CHAR (num_corrupt));
    END;
    SQL*Plus outputs the following line, indicating one corruption:
    number corrupt: 1

  • Help on block corruption (URGENT ...!)

    Hi all.
    I have a Oracle 10g Rel1 database on a linux box who is presenting block corruption at the system tablespace level.
    This database IS NOT in archive mode.
    Message says:
    ORA-01578: bloque de datos ORACLE corrupto (archivo numero 1, bloque numero *47132*)
    ORA-01110: archivo de datos *1: '/u01/oradata/BADAN1/BADAN1/system01.dbf'*
    This script is suppose to tell me which is the segment holding corrupted block:
    SQL> SELECT e.file_id,
    2 e.block_id,
    3 e.owner,
    4 e.segment_name,
    5 e.segment_type
    6 FROM dba_extents e
    7 WHERE
    8 file_id=1 and 47132 BETWEEN 47132 AND 47132 + blocks - 1
    9 /
    FROM dba_extents e
    ERROR at line 6:
    ORA-01578: ORACLE data block corrupted (file # 1, block # 47132)
    ORA-01110: data file 1: '/u01/oradata/BADAN1/BADAN1/system01.dbf'
    It seems base tables associated with dba_extents view are related in this case:
    select ds.owner, ds.segment_name, ds.partition_name, ds.segment_type,
    ds.tablespace_name,
    e.ext#, f.file#, e.block#, e.length * ds.blocksize, e.length, e.file#
    from sys.uet$ e, sys.sys_dba_segs ds, sys.file$ f
    where e.segfile# = ds.relative_fno
    and e.segblock# = ds.header_block
    and e.ts# = ds.tablespace_id
    and e.ts# = f.ts#
    and e.file# = f.relfile#
    and bitand(NVL(ds.segment_flags,0), 1) = 0
    and bitand(NVL(ds.segment_flags,0), 65536) = 0
    union all
    select /*+ ordered use_nl(e) use_nl(f) */
    ds.owner, ds.segment_name, ds.partition_name, ds.segment_type,
    ds.tablespace_name,
    e.ktfbueextno, f.file#, e.ktfbuebno,
    e.ktfbueblks * ds.blocksize, e.ktfbueblks, e.ktfbuefno
    from sys.sys_dba_segs ds, sys.x$ktfbue e, sys.file$ f
    where e.ktfbuesegfno = ds.relative_fno
    and e.ktfbuesegbno = ds.header_block
    and e.ktfbuesegtsn = ds.tablespace_id
    and e.ktfbuesegtsn = f.ts#
    and e.ktfbuefno = f.relfile#
    and bitand(NVL(ds.segment_flags, 0), 1) = 1
    and bitand(NVL(ds.segment_flags,0), 65536) = 0
    Please anybody advise on what to do ...!
    Regards, Luis ...!

    myluism wrote:
    Hi all.
    I have a Oracle 10g Rel1 database on a linux box who is presenting block corruption at the system tablespace level.
    This database IS NOT in archive mode.
    Message says:
    ORA-01578: bloque de datos ORACLE corrupto (archivo numero 1, bloque numero *47132*)
    ORA-01110: archivo de datos *1: '/u01/oradata/BADAN1/BADAN1/system01.dbf'*
    This script is suppose to tell me which is the segment holding corrupted block:
    SQL> SELECT e.file_id,
    2 e.block_id,
    3 e.owner,
    4 e.segment_name,
    5 e.segment_type
    6 FROM dba_extents e
    7 WHERE
    8 file_id=1 and 47132 BETWEEN 47132 AND 47132 + blocks - 1
    9 /
    FROM dba_extents e
    ERROR at line 6:
    ORA-01578: ORACLE data block corrupted (file # 1, block # 47132)
    ORA-01110: data file 1: '/u01/oradata/BADAN1/BADAN1/system01.dbf'That query doesn't look right to me. Try this:
    SELECT e.file_id,
    e.block_id,
    e.owner,
    e.segment_name,
    e.segment_type
    FROM dba_extents e
    WHERE
    file_id=1  and 47132 BETWEEN block_id  AND block_id + blocks - 1
    /Let us know the result of that query.
    -Mark

  • Block corruption in 805

    Hi,
    we have 805 database. We have a table which contiants corrupted blocks.
    So I went to export dump (backup) and imported to a new temp instance. But strage thing is when I select on new instance, it giving again block corruption error for this table, (new database, new datafile)
    so any idea what can cause for this ? and any suggestion plz ???
    Thanks in advance.

    refer:
    logical corruption found in the sysaux tablespace
    Check the metalink note: Identify the corruption extension using RMAN/DBV/ANALYZE etc - 836658.1
    Note 28814.1 - Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g
    Note 472231.1 - How to identify all the Corrupted Objects in the Database reported by RMAN
    http://download.oracle.com/docs/cd/B12037_01/server.101/b10734/rcmrecov.htm
    http://oracleinstance.blogspot.com/2010/05/block-recovery-using-rman-backup.html

  • Blocks corrupted always with the same checksum 0x400

    Hello Oracle gurus,
    Need your help with finding source of block corruption errors that we observe repeatedly on one system. See the error below.
    Location of the corrupted block is always different, but the computed checksum is always 0x400. Only one block gets corrupted after a couple of days of stress testing. We completely re-install OS (RHEL4) and re-create DB. Still the same error with the same checksome appears, but in a different location. This happened 3 times already.
    Does anybody know what 0x400 corresponds to? Is it all zeroes?
    In my understanding, if the corruption was caused by a drive error, such as a single bit flip or several sectors corruption, then the computed checksum would be always different.
    Is this correct? Any other ideas what can be the reason for such corruption?
    Thanks a lot.
    Hex dump of (file 9, block 357024) in trace file /u01/app/oracle/admin/pndb/udump/pndb_ora_13828.trc
    Corrupt block relative dba: 0x024572a0 (file 9, block 357024)
    Bad check value found during buffer read
    Data in bad block:
    type: 6 format: 2 rdba: 0x024572a0
    last change scn: 0x0000.00b31c70 seq: 0x1 flg: 0x06
    spare1: 0x0 spare2: 0x0 spare3: 0x0
    consistency value in tail: 0x1c700601
    check value in block header: 0xfcd0
    computed block checksum: 0x400
    Reread of rdba: 0x024572a0 (file 9, block 357024) found same corrupted data
    Fri Apr 27 04:09:32 2007
    Corrupt Block Found
    TSN = 9, TSNAME = PN_TABL
    RFN = 9, BLK = 357024, RDBA = 38105760
    OBJN = 40738, OBJD = 40738, OBJECT = PN_EVENT_SESSION_1, SUBOBJECT =
    SEGMENT OWNER = PNADMIN, SEGMENT TYPE = Table Segment

    Well I understand that, however Oracle is running on higher level (application level).
    It's hard to trace a potential lower level ( hardware level) problem in high level application.
    The least thing you can try is find out which object this corrupted block belong if it's always same object or some pattarn you can tell then there might have something to do with Oracle.
    If it's totally random then it's hard to say.
    select segment_name,segment_type,owner
    from sys.dba_extents
    where file_id=(9)
    and (357024) between block_id and block_id + blocks -1;

  • Does Import/Export Utility check for Block corruption?

    Hi All,
    Just a quick question I have is does Import/Export Utiligy check for any block corruption while importing or exporting?
    If yes then does it do automatically or we have do set some parameter explicitly.
    I am using oracel version 9.2.0.6.
    Thx in advance.

    Hi yingkuan/kanchan
    Thx for your prompt reply. Still I am not clear as you said that export check for the block corruption error and if there is any it will display the error message in log file. But does it copy corrupted block or skip that block or mark that block as corrupted?
    Thx in advance.
    - Mehul

  • DB block corruption

    Hi All
    Is there any specific reason or what have possible to cause on the data block corruption in the oracle database.

    Block corruption is while the data is being written to the data blocks, if the write to the block fails abruptly, I mean that there is a partial write in the block, may be because of power disruption or I/O problem, leaving no time for header to be updated, or row data to be populated, oracle leaves the block corrupt.In case of block corruption you can normally use the database unless you try to read that particular block, against which it shoots up the block corruption error.Generally block corruption occurs if write fails on the block, when the transaction is being committed
    ORA-01578:
    ORACLE data block corrupted (file # string, block # string)
    Whenever we encounter above error message mean we have BLOCK CORRUPTION.
    We can find detail information about block corruption in alert.log file
    Two types of block corruption can happens
    - Physical corruption (media corrupt)
    - Logical corruption (soft corrupt)
    Physical corruption can be caused by defected memory boards, controllers or broken sectors on a hard disk;
    Logical corruption can among other reasons be caused by an attempt to recover through a NOLOGGING action.

Maybe you are looking for