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: Current redo log corrupted.

Re: Current redo log corrupted.

From: Howard J. Rogers <howardjr2000_at_yahoo.com.au>
Date: Tue, 14 Jan 2003 13:24:18 +1100
Message-ID: <HnKU9.23589$jM5.62552@newsfeeds.bigpond.com>

"BigDob" <BigDob_at_Bigdob.com> wrote in message news:OiKU9.42104$Dn.8133_at_sccrnsc03...
> I had a disk go bad on a non production database. I have no recent backup
p
> and db is not in archivelog mode. The only db file on the bad disk is my
> current redo log file. I can't start the database, is their any way to get
> it started? Could I use the "alter database backup controlfile to trace"
> command to recreate the redo log file on a different disk? I know I'm
going
> to loose some data. Any suggestions :)
>

Why were your redo logs not multiplexed?? Multiplexing was invented for a reason, and this is it! Never mind O/S mirroring. There is simply no excuse for any Oracle DBA in the 21st century to lose his or her current redo log. Regardless of whether the database is a production one or not. If you value its contents, then multiplex the logs. Period.

But, given that it's happened:

The problem is that your datafiles are (probably) in an inconsistent state, and require the current redo log to sort them out. Therefore, your current data files are useless. So the first thing you do (normally) is to restore every single one of your datafiles, and roll them forward (by aplying redo) to a point short of where you got to in your current redo log.

Having restored all datafiles, you then get to the mount state, issue 'recover database until cancel', and then apply archived redo logs until Oracle prompts you to supply what you know to be the current redo log. At which point, you issue the command 'cancel', and finally do a 'alter database open resetlogs' (which re-creates the missing online redo logs for you).

However, you are in a particularly nasty pickle, because not only did you commit the unforgiveable sin of losing your online redo logs, you are also not in archivelog mode, and cannot therefore guarantee to be able to roll your last backup forward by applying archived redo.

I hate to say this, but it's true: if you are not in archivelog mode, then your recovery options are desperately simple: you find your last backup, restore it (all of it), and open the database. Of course, being in noarchivelog mode, your backups will have to have been taken with the database shutdown. That means they are consistent, and need no redo to be applied to make them so. And that in turn means that having restored the controlfiles, datafiles and online redo logs, you need do nothing more that 'startup' to get your database open.

It is conceivable that, despite doing cold backups, you took Oracle's official advice NOT to backup your online redo logs. In which case, you won't be able to restore them. Therefore, recovery would consist of restoring all datafiles, all controlfile copies, and then getting to the mount state, followed by 'recover database until cancel', issue an immediate 'cancel' and then 'alter database open resetlogs' to get the missing redo logs created for you.

The point is this: if you're not in archivelog mode, the best you can do is to restore the database to the time it was at when you took your last cold backup. No finessing, no workarounds, no clever, subtle 'buts'. Restore your last backup, and open it. End of story.

Now I can only hope that you've been taking your backups correctly, 'cos otherwise the entire database is just going to be toast.

<Pray>
Regards
HJR
> DB
Received on Mon Jan 13 2003 - 20:24:18 CST

Original text of this message

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