Re: Oracle Data Corruption error message

From: Roderick Manalac <rmanalac_at_oracle.com>
Date: 28 Oct 1994 05:24:50 GMT
Message-ID: <38q1v2$nkm_at_dcsun4.us.oracle.com>


proberts_at_iglou.iglou.com (Phil Roberts) writes:
|> rp1399_at_email.sps.mot.com (Steve) writes:
|>
|> >We saw this as a bug in Oracle 7.0.15? when using the freelist parameter
 

|> >Steve Lemme
|> >DBA/Systems Manager
|> >Motorola MOS12
 

|> >joel_at_skopen.dseg.ti.com (Joel
|> >Quejada) wrote:
 

|> >> One of my users is getting the following Oracle data corruption
|> >> message:
|> >>
|> >> ERROR:
|> >> ORA-01578: ORACLE data block corrupted (file # 24, block # 2)
|> >> ORA-00600:
|> >> internal error code, arguments: [3339], [0], [1610612738], [], [], []
|> >>
|> >>
|> >> This sounds like some kind of a disk media surface defect. However,
|> >> I don't see any messages being reported by the OS. We are planning on
|> >> doing a complete dump, reformat, and restore of this disk. Is this
|> >> the only way to solve this problem?
|> >>
|>
|> We also were told it was a bug in 6.0.27. We use a Unisys 5000 with Unix
|> and raw disks for our tablespaces. We were told we had a media defect by
|> Unisys software support. We ran a disktest on the disk with the problem,
|> and found NO disk errors, no bad blocks, no bad sectors, nada. Finally,
|> one of the Unisys people said that error 600 "is a catchall error that
|> is used when Oracle (the product, not the company) can't determine
|> the exact cause of problems." They guy may have been feeding me BS, but
|> he suggested I reinitialize the DB. After recreating the DB, on the same
|> disks with the same setup, the problem went away. We did import the
|> data rather than restore from a mirror image backup because I suspected
|> a mirror image would have restored the same problem..

It should be noted that not all ORA-600 errors mean the same thing. Yes, it is somewhat true that an ORA-600 error indicates a catchall error where we have run across an impossible or unrecoverable condition. The first internal argument after the error helps point Oracle RDBMS developers to the portion of the code that encountered the condition. The resulting trace file generated tries to provide as much gory detail as possible.

From experience, I can say that an ORA-600 with a [3339] argument means that Oracle requested a block to be read from disk. The read request was successful, but the information in the database block header did not match what we expected. How that block got messed up is the difficult part to figure out. It could be indicative of I/O problems (e.g. media failure, controller glitch, bad SCSI cable, etc.), an Oracle bug, or in some cases user error (e.g. one user accidently added a datafile to an instance that was still in use by another instance). The chances of this particular error turning out to be cuased by an Oracle bug has diminished almost to nothing in Oracle7 releases.

Still it is usually worthwhile to give Oracle support a call in these situations for confirmation and advice as to how to get around the problem.

Roderick Manalac
Oracle Corporation Received on Fri Oct 28 1994 - 06:24:50 CET

Original text of this message