RE: How does one manually corrupt a database (database file, redo logs and backups)

  • From: "Mark W. Farnham" <mwf@xxxxxxxx>
  • To: <kevinc@xxxxxxxxxxxxx>, "'Oracle-L Freelists'" <oracle-l@xxxxxxxxxxxxx>
  • Date: Sat, 2 Sep 2006 14:44:41 -0400

Kevin is right on the money.

And adding to Tanel's earlier list of things to try, one of my favorites it
simulating a fractured block. Get yourself an older vintage of one of your
files and use dd to dump out half a block or so and use that as the infile
(if) in Kevin's example below, but adjusting the block size and the seek so
you slap the partial Oracle block at the beginning of a current vintage
block that has been updated since the older file.

You can use od to look at the detailed contents of the blocks and if someone
has a copy of Sequent's old bp around with the man page you could punch
individual values into the block. (Or use bbed - doesn't -help or /h tell
you how to drive it, even though it is otherwise undocumented/unsupported?)

Enjoy!

-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]
On Behalf Of Kevin Closson
Sent: Saturday, September 02, 2006 1:47 PM
To: Oracle-L Freelists
Subject: RE: How does one manually corrupt a database (database file, redo
logs and backups)

 overwriting the binary files, but being simpled-minded I was using vi.
I thought about using the unix dd utility - unfortuantely I do not have
enough experience to be surgical (easy to mess up the first few blocks,
but what about the middle?). 


...use dd, you can precisely scribble over an exact block, such as:

$ dd if=/dev/zero of=system.dbf bs=4k seek=42 count=1


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



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


Other related posts: