Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Why did recovery work?

Re: Why did recovery work?

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Wed, 19 May 1999 19:59:31 +0100
Message-ID: <927140535.20620.0.nnrp-12.9e984b29@news.demon.co.uk>


The information goes out to the redo logs immediately, but the changes to the data blocks and rollback blocks doesn't go out until it absolutely has to, e.g. on a checkpoint, or when some free buffer space is needed and the only way to get it is to write dirty blocks out.

You may have got lucky, however it is possible that oracle discovered the files to be 'corrupt' some time after they had been compressed and simply put the files offline. Have you checked your alert log for any unusual messages; this might give you some interesting clues.

(It also depends on the mechanism you used to compress the data file - if Oracle had the original file opened, it could, on a UNIX system, carry on writing to it safely even though the file had apparently been deleted)

-

Jonathan Lewis
Yet another Oracle-related web site: www.jlcomp.demon.co.uk

Doug Cowles wrote in message <3742FBB3.C2474837_at_bigfoot.com>...
>Recently, someone compressed 3 live datafiles by accident on a
>production system. After
>much scurrying about and even arguing with an Oracle duty manager on the
>phone, we
>did the following. We shut down abort, uncompressed the datafiles, and
>brought it back
>up again, it then recovered, and everything was fine. We lost nothing.
>We made the case for this approach because we had very large redo logs,
>only switched about 3 times a day. Also, we had received no errors
>about writting to a non-existent datafile, so we concluded that they
>hadn't been touched, and that therefore, the header information in the
>compressed file was still consistent with what the control file would
>expect. In addition, we would not
>lose the redo information, which would roll forward, and then roll back
>from rollback accordingly when it was brought back up again. I've
>been thinking about this again, and I don't get it. I know we've been
>through this a lot on this group lately, but why weren't the datafiles
>touched? Why didn't Oracle try to touch the datafiles. If you execute
>a transaction, doesn't the info go straight out to redo, the datafiles,
>and rollback, until it is committed, and then when it is committed,
>doesn't the rollback just flush out? In which case, over the course of
>2 hours, why no arguments from Oracle about having no datafiles?
Received on Wed May 19 1999 - 13:59:31 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US