Home » RDBMS Server » Server Administration » DBVerify issue (Oracle 10.2.0.4.0, RedHatLinux-5)
DBVerify issue [message #592450] Thu, 08 August 2013 08:54 Go to next message
8939513598$
Messages: 103
Registered: July 2013
Location: chennai
Senior Member
how to repair the blocks that gets corrupted found in dbverify, what usually happens in the real-time scenario?

Re: DBVerify issue [message #592451 is a reply to message #592450] Thu, 08 August 2013 09:02 Go to previous messageGo to next message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
>how to repair the blocks that gets corrupted found in dbverify, what usually happens in the real-time scenario?
drop the object the replace it with a good copy; all of which is easier said than done.

Please read and follow the forum guidelines, to enable us to help you:

http://www.orafaq.com/forum/t/88153/0/
Re: DBVerify issue [message #592454 is a reply to message #592450] Thu, 08 August 2013 09:18 Go to previous messageGo to next message
John Watson
Messages: 8960
Registered: January 2010
Location: Global Village
Senior Member
What's going on, man? It is hard to believe that you have suddenly been faced with all the errors that you have reported today. Specially not on an ancient release of Oracle that is in sustaining support as of last week.
Re: DBVerify issue [message #592458 is a reply to message #592450] Thu, 08 August 2013 10:00 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
Use RMAN to recover blocks.

Regards
Michel
Re: DBVerify issue [message #592562 is a reply to message #592450] Fri, 09 August 2013 11:36 Go to previous messageGo to next message
LKBrwn_DBA
Messages: 487
Registered: July 2003
Location: WPB, FL
Senior Member
If you cannot recover as suggested by Michel or BlackSwan, try using DBMS_REPAIR.FIX_CORRUPT_BLOCKS Procedure to fix it. If that does not work either, you can use the DBMS_REPAIR.SKIP_CORRUPT_BLOCKS Procedure temporarily while you export/import/rebuild the affected object (you will loose the rows from that block).
Good luck!

PS: I agree with Mr Watson, all these errors seem to indicate you did/are doing something wrong like suddenly re-booting the server without closing the database and/or killing the oracle process in the middle of executing a ddl statement or whatever unconventional method that stops the database.

[Updated on: Fri, 09 August 2013 11:45] by Moderator

Report message to a moderator

Re: DBVerify issue [message #592568 is a reply to message #592562] Fri, 09 August 2013 11:47 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
FIX_CORRUPT_BLOCK does not recover anything and does not fix anything, so it will not work to recover anything.

Regards
Michel
Re: DBVerify issue [message #592578 is a reply to message #592568] Fri, 09 August 2013 13:33 Go to previous messageGo to next message
LKBrwn_DBA
Messages: 487
Registered: July 2003
Location: WPB, FL
Senior Member
Oracle® Database PL/SQL Packages and Types Reference

FIX_CORRUPT_BLOCKS Procedure

This procedure fixes the corrupt blocks in specified objects based on information in the repair table that was previously generated by the CHECK_OBJECT Procedure.

Prior to effecting any change to a block, the block is checked to ensure the block is still corrupt. Corrupt blocks are repaired by marking the block software corrupt. When a repair is effected, the associated row in the repair table is updated with a fix timestamp.

[Updated on: Fri, 09 August 2013 13:48] by Moderator

Report message to a moderator

Re: DBVerify issue [message #592579 is a reply to message #592578] Fri, 09 August 2013 13:40 Go to previous messageGo to next message
John Watson
Messages: 8960
Registered: January 2010
Location: Global Village
Senior Member
You can get some pretty weird results if you use this. The fact that the "fixed" blocks are simply skipped means that a query that actually reads the table will not return the rows in the fixed blocks. But another query (such as a count) that can be satisfied by reading an index returns all the rows. I did once go through the process of identifying the missing rows by looking at the indexes, and re-creating them from the column values in the indexes. It is not easy and of course you lose all the data in non-indexed columns, but if you really can't lose a row, OK.
If you ever have to do this, good luck!
icon13.gif  Re: DBVerify issue [message #592583 is a reply to message #592578] Fri, 09 August 2013 13:49 Go to previous message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
Quote:
Corrupt blocks are repaired by marking the block software corrupt.


Do you call this "fixed"?
Razz

Regards
Michel
Previous Topic: unique session id
Next Topic: Displaying session level parameters
Goto Forum:
  


Current Time: Sun Dec 01 14:47:03 CST 2024