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: Datablock Corruption

Re: Datablock Corruption

From: Mark D Powell <markp7832_at_my-deja.com>
Date: 2000/07/03
Message-ID: <8jq8rj$jmc$1@nnrp1.deja.com>#1/1

In article <3960413D.C8DD6EA2_at_email.com>,   frog <user_at_email.com> wrote:
> Use dbverify again your last night's backup to find out if any more
> corruption exists. If running 8i, you can use dbms_repair package for
> "repairing"; else go through a "messy" export/import to restore that
> table, along with using dbms_rowid(?) package to locate bad block
 etc..
>
> Gordy wrote:
>
> > Hi there,
> >
> > I have just run the following command with the following results.
> >
> > ANALYZE TABLE LBBKSEC ESTIMATE STATISTICS
> > *
> > ERROR at line 1:
> > ORA-01578: ORACLE data block corrupted (file # 1, block # 81058)
> > ORA-01110: data file 1: 'D:\ORANT\DATABASE\SYS1STN3.ORA'
> >
> > Does anybody have a script to find out if any more corruption exists
> > and does anyone have a recommended course of action apart from
> > last nights backup....?
> >
> > Cheers
> > Gordon
> >
> > --
> > Gordy
> > ICQ 3290116
>

File 1 is the system tablespace. Corruption of a sys owned object generally requires recreation of the database per Oracle support. Now my question to you before you do anything is, who owns lbbksec and where is this table?

If this is a sys owned table in the system tablespace you should not be analyzing it. You might be able to delete the statistics to clear the problem if it is sys owned. If it is not a sys owned table then what object is at file # 1, block # 81058? If it is an estat/bstat table or some table like these they can be dropped and recreated. If it is the sys.aud$ then you can probably clear the problem by deleting the affected data. If it is one of the base dictionary tables you might be able to drop and recreate an object to clear the problem if it is row data corruption as opposed to block header corruption.

Here is some sql that identifies what object is at a particular file and block:
set echo off
rem
rem file: FindCorrupt.sql
rem SQL*Plus script to find db object occuping specific blocks of a file
rem
rem 19960530 Mark D Powell Save sql used to identify corrupted obj. rem
set verify off
set heading on

select *
from sys.dba_extents
where file_id = &fileid
  and &badblock between block_id and (block_id + blocks - 1) /

Good luck.

--
Mark D. Powell  -- The only advice that counts is the advice that
 you follow so follow your own advice --


Sent via Deja.com http://www.deja.com/
Before you buy.
Received on Mon Jul 03 2000 - 00:00:00 CDT

Original text of this message

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