Re: split block (torn page) problem

  • From: Laimutis.Nedzinskas@xxxxxx
  • To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 6 Dec 2011 15:10:56 +0200

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 <riyaj.shamsudeen@xxxxxxxxx>                     
                                                               
                                                                                
                                                               
  To:         Laimutis.Nedzinskas@xxxxxx                                        
                                                               
                                                                                
                                                               
  Cc:         ORACLE-L <oracle-l@xxxxxxxxxxxxx>.                                
                                                               
                                                                                
                                                               
  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.

Cheers

Riyaj Shamsudeen
Principal DBA,
Ora!nternals -  http://www.orainternals.com. - Specialists in Performance,
RAC and EBS
Blog: http://orainternals.wordpress.com.
OakTable member http://www.oaktable.com. 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, <Laimutis.Nedzinskas@xxxxxx> wrote:.
      Hi

      Recently people blogged about very basic, core oracle functionality
      and
      issues with durability and isolation here:
      http://jonathanlewis.wordpress.com/2011/08/19/redo-2/

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

      According to
      
http://www.emc.com/collateral/hardware/solution-overview/h2603-oracle-db-emc-symmetrix-stor-sys-wp-ldv.pdf.

       EMC has a (separately licensed) feature Generic SafeWrite which "is
      used
      to help protect critical application from incurring an incomplete
      write,
      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

      --
      //www.freelists.org/webpage/oracle-l





--
//www.freelists.org/webpage/oracle-l


Other related posts: