Re: split block (torn page) problem

From: <>
Date: Tue, 6 Dec 2011 15:10:56 +0200
Message-ID: <>

Thank a lot.
Yeah, I already have thought to rewrite my post that this is indeed a case of corruption. My first post sounds blaming oracle a bit which is wrong.

Now I'd formulate the statements this way. Plase correct if I am wrong:

Oracle ensures a crash recovery but only if underlying hardware does not currupt datafile blocks.
In particular, Oracle crash recovery does not protect against crash which results in split-block.
To generalize, Oracle crash recovery does not protect from crash which results in partially failed IO operation.

In other words, plugging power cable off may end corrupted blocks. Then citing you "So, there would be a need for block media recovery or restore snf recovery to repair that corrupt block" That's why backups are a must to have a complete crash recovery.

Brgds, Laimis N

Please consider the environment before printing this e-mail

  From:       Riyaj Shamsudeen <>                                                                                    
  Cc:         ORACLE-L <>.                                                                                               
  Date:       2011.12.06 14:53                                                                                                                 
  Subject:    Re: split block (torn page) problem                                                                                              

There will be corruption in this case as the head and tail piece of the block might not match etc. So, there would be a need for block media recovery or restore snf recovery to repair that corrupt block. Simply, this is a corruption induced by hardware problem.


Riyaj Shamsudeen
Principal DBA,
Ora!nternals - - Specialists in Performance, RAC and EBS
Blog: OakTable member and Oracle ACE Director Co-author of the books: Expert Oracle Practices, Pro Oracle SQL,  Expert PL/SQL Practices

On Tue, Dec 6, 2011 at 2:38 PM, <> wrote:.


      Recently people blogged about very basic, core oracle functionality
      issues with durability and isolation here:

      Now I have a similar basic question about split block (torn page)

      According to

       EMC has a (separately licensed) feature Generic SafeWrite which "is
      to help protect critical application from incurring an incomplete
      and subsequent torn page, due to a failure within a component"

      The question is what happens when:

- Oracle dbwr(or foreground process for that matter) issues a single
IO kernel call to write 8k block into a datafile
- the first 4k are written successfully and the next 4k fails, i.e.
torn page situation arises
- Oracle is stopped, the problem is fixed, oracle is started and
attempts crash recovery
- My understanding is that Oracle crash recovery can not handle
split-block. Unless the database was in backup mode meaning full block image is saved in the redo stream as a starting recovery point. I can only speculate the whole 8k image is so important because crash recovery needs datafile block sturctures like row directory (may be ITL's too ?) to be in a good shape.
- Basically, is it so that Oracle relies on hardware atomicity with
respect to 8k(or whatever block size) IO calls ? Is it so that the whole 8k block must be stored or nothing? Brgds, Laimis N --
Received on Tue Dec 06 2011 - 07:10:56 CST

Original text of this message