Re: split block (torn page) problem
Date: Tue, 6 Dec 2011 15:10:56 +0200
Message-ID: <OF6E5D504A.75A6ED42-ONC225795E.00473A80-C225795E.00486A06_at_seb.lt>
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_at_gmail.com> To: Laimutis.Nedzinskas_at_seb.lt Cc: ORACLE-L <oracle-l_at_freelists.org>. 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_at_seb.lt> 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 -- http://www.freelists.org/webpage/oracle-l
-- http://www.freelists.org/webpage/oracle-lReceived on Tue Dec 06 2011 - 07:10:56 CST