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

Home -> Community -> Mailing Lists -> Oracle-L -> Repairing corrupt datablocks

Repairing corrupt datablocks

From: Jonas A Wetterberg <jonas.a.wetterberg_at_manpower.se>
Date: Fri, 16 Nov 2001 01:00:21 -0800
Message-ID: <F001.003C70B1.20011116003518@fatcity.com>

Hello

By using DBMS_REPAIR.CHECK_OBJECT I have found 3 corrupt datablocks in our database, all with error: Block Checking: DBA = 184607007, Block Type = KTB-managed data block
kdbchk: the amount of space used is not equal to block size

        used=8169 fsc=0 avsp=112 dtl=8120

My plan now is to fix these data blocks. I have never done this before, so I consulted my Oracle manual and the manual recomends the following:

First run DBMS_REPAIR.CHECK_OBJECT on the object to find out if the object contains any corrupt blocks. Then I run DBMS_REPAIR.FIX_CORRUPT_BLOCKS to mark the block as corrupt. After that run DBMS_REPAIR.DUMP_ORPHAN_KEYS to dump all the index references to these blocks. Then run DBMS_REPAIR.SKIP_CORRUPT_BLOCKS on the object, and after that recreate the table.

By doing this the corrupt blocks are removed from the object.

Now I have some questions about this. (My environments is a Oracle 8.1.7 on a Windows 2000 Advanced Server):

Is this a good way, or is there a better way? Can I access the data in the corrupt blocks in anyway so I can se whats in the blocks? I'm afraid that i will loose some data by doing it this way.

Regards Jonas
--

Please see the official ORACLE-L FAQ: http://www.orafaq.com
--

Author: Jonas A Wetterberg
  INET: jonas.a.wetterberg_at_manpower.se

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). Received on Fri Nov 16 2001 - 03:00:21 CST

Original text of this message

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