• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1050
  • Last Modified:

Corrupt block found

we have oracle 8i on linux (2 database on same server)
error: Corrupt block relative dba : 0*03400353 file=13 blocknum=915
       Fractured block found during buffer read
       data in bad block type : 0. format : 0 rdba :0*00000000
0
purnaoracle
Asked:
purnaoracle
1 Solution
 
purnaoracleAuthor Commented:
no
0
 
purnaoracleAuthor Commented:
I have oracle 8i on linux (2 database on same server)
error: Corrupt block relative dba : 0*03400353 file=13 blocknum=915
      Fractured block found during buffer read
      data in bad block type : 0. format:0 rdba :0*00000000
0
 
SDuttaCommented:
If this is a production server, first thing you should do is file an iTAR with Oracle and involve them in resolving the corruption.

Some things you can do by yourself is identify the bad block and try recreating the object if it is an index etc.

SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents WHERE file_id = 13 and 915 between block_id AND block_id + blocks - 1;

Once you identify the bad object, if the object belongs to SYS or SYSTEM don't mess around with it unless Oracle tells you to do so. If you are able to recreate the object analyze the corresponding table with VALIDATE STRUCTURE to see if it is ok.

0
 
DatamonkeyCommented:
The best way to get around this is to offline the datafile, restore a backup of the datafile and recover that. Obviously you can only do that if you're in archive log mode and if the corruption wasn't already introduced a long time ago (you need a backup from before the corruption started and all the archive logfiles created since then).

If you can't recover this it's useful to check what the object is that lives on the corrupted block. If it is an index for example you can simply drop and recreate it.

To check what lives on this block run the following query:

SELECT tablespace_name, segment_type, owner, segment_name
  FROM dba_extents
 WHERE file_id = 13
   AND 915 between block_id AND block_id + blocks - 1

Now, if it's an index you can drop and recreate it, it could be a table that you can rebuild based on other information in other tables etc. etc.
If it's something that you cannot rebuild and you cannot recover like explained at the beginning of this then let us know and I'll have a further look
--dm
0
 
iozturkCommented:
Datamonkey is correct but an additional comment before doing his suggession use "dbv" to check if your backup file has the corruption or not.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now