Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: corrupt block

Re: corrupt block

From: Samantha Hall <samanthahall_at_qwest.net>
Date: Sat, 16 Jun 2001 23:01:21 -0600
Message-ID: <3B2C39A1.CA3C158C@qwest.net>

If you intend to use dbms_repair to fix your blocks, please be very careful. Although the procedure is called fix_corrupt_block, I understand that all it will do is mark the block as "soft corrupt" so that Oracle will not touch it when scanning blocks for the object. This stops you getting a 1578 error whenever you touvh the block. I don't think it actually "fixes" the corruption, and therefore does not bring back any corrupted data that it has fixed. That would be too complex a problem for Oracle to solve.

The notes that have been referenced are very good srouces on getting data out of a corrupt block, where the corruption is not extreme enough to destroy the whole block contents. The only way to bring back ALL data from a fully corrupted block is to do a complete datafile recovery.

Have fun,
Samantha

Paul Drake wrote:

> Ralf Zwanziger wrote:
> >
> > Hi,
> > we've got an entry in the alertXXX.log file every day, saying:
> >
> > ***
> > Corrupt block relative dba: 0x06400c09 (file 25, block 3081)
> > Bad header found during buffer read
> > Data in bad block -
> > type: 16 format: 2 rdba: 0x06001609
> > last change scn: 0x0000.0b32fdb4 seq: 0x1 flg: 0x00
> > consistency value in tail: 0xfdb41001
> > check value in block header: 0x0, block checksum disabled
> > spare1: 0x0, spare2: 0x0, spare3: 0x0
> > ***
> >
> > Is there a way to find out more information on corrupt datafiles?
> > Is it possible to repair the datafile?
> >
> > Bye,
> > Ralf
>
> sqlplus> desc dbms_repair
>
> or read the package docs in
>
> D:\Oracle\Ora81\rdbms\admin\dbmsrpr.sql
>
> CREATE OR REPLACE PACKAGE dbms_repair
>
> IS
> ----------------------------------
> -- OVERVIEW
> --
> -- The DBMS_REPAIR package consists of data corruption repair
> procedures
> --
> -- SECURITY
> --
> -- The package is owned by SYS.
> -- Execution privilege is not granted to other users.
> ----------------------------------
>
> procedure fix_corrupt_blocks(
> schema_name IN varchar2,
> object_name IN varchar2,
> partition_name IN varchar2 DEFAULT NULL,
> object_type IN binary_integer DEFAULT TABLE_OBJECT,
> repair_table_name IN varchar2 DEFAULT 'REPAIR_TABLE',
> flags IN binary_integer DEFAULT NULL,
> fix_count OUT binary_integer);
  Received on Sun Jun 17 2001 - 00:01:21 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US