Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Help - Corrupted Block - Lob Segment - NOLOGGING

RE: Help - Corrupted Block - Lob Segment - NOLOGGING

From: Wolfson Larry - lwolfs <>
Date: Mon, 23 Oct 2006 13:48:49 -0500
Message-ID: <>


        What release is this?

Here's a terrific presentation about LOBS from Tanel Poder. take a look at this.

Did OS say you could drop RIDs in that block, and if so, how will that effect your app?


-----Original Message-----

[] On Behalf Of Sam Bootsma Sent: Monday, October 23, 2006 1:47 PM
Subject: Help - Corrupted Block - Lob Segment - NOLOGGING

Our third-party version control software uses an Oracle database as its repository.

Documents are stored in a BLOB column in an Oracle table. It is NOT stored "in_row" and logging is turned off (for performance reasons they told me).

We recently encountered a bad block, and I have since determined there are additional bad blocks, but it is just one block that is continually giving us a problem.

When a user attempts to check an object into the repository, they often get the error message:

E03020003: Database Error: [CAI/PT][ODBC Oracle 8 driver][Oracle]ORA-01578: ORACLE data block corrupted (file # 31, block # 123533)
ORA-01110: data file 31: '/san1/oradata/PROD/harvestblob01.dbf' ORA-26040: Data block was loaded using the NOLOGGING option

This tells me the block still has free space to insert new data; i.e., the block is on the free list.

Here is some information about the tablespace housing this lob segment (from dba_tablespaces):
Allocation type='system'

Can somebody tell me what I need to do to allow users to continue to check items into this repository without receiving the error message and with minimal data loss; i.e., limiting data loss to the content of corrupted block# 123533. I think I can do this if I am able to permanently get this block off the free list, but how can I do that?

I have contacted Oracle Support, but they have been of limited assistance. They had me review metalink note 293515.1 "ORA-1578 ORA-26040 in a LOB segment - Script to solve the errors". But this has not helped our situation. The metalink note directs us to create a table with a single column of type rowid. Then run an Oracle procedure to populate this table with rowids for rows in the corrupted block. After this we set concat to "#", then update the lob column to "empty_blob". I did this and commited, but users receive the same error message.

Thanks for any and all suggestions.

Sam Bootsma
Oracle Database Administrator
Information Technology Services
George Brown College
Phone: 416-415-5000 x4933
Fax: 416-415-4836


The information contained in this communication is confidential, is intended only for the use of the recipient named above, and may be legally privileged.

If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited.

If you have received this communication in error, please resend this communication to the sender and delete the original message or any copy of it from your computer system.

Thank you.

-- Received on Mon Oct 23 2006 - 13:48:49 CDT

Original text of this message