Re: REDO LOG Concepts

Can we use UTL_FILE to copy the file as seen by oracle itself to a separate
location? Am suggesting the use of something like UTL_FILE because UTL_FILE
will be running from within Oracle's environment and Oracle can still see
the file.

Deepak


On 5/17/07, Stefan Knecht <knecht.stefan@xxxxxxxxx> wrote:

I've run into this situation before as well. It happens, people
accidentally delete files.

What would be interesting to research, is if you still can somehow recover
those files. As they're still there, and locked by the process accessing
them (in your case LGWR), there might be a way to "steal" the filehandle
from that process and just write the file to another location before it's
being closed. Though you would have to intercept the syscall closing the
file.

Anyone ever heard of any research on this ?

Stefan

On 5/17/07, DBA Deepak <oracle.tutorials@xxxxxxxxx > wrote:
>
> Hi Alexander,
>
> I do not think UNIX removes the directory entry immediately. Otherwise
> how would it access the REDO logs by their paths.
>
> What might be happening is UNIX is marking it as deleted (may be using a
> flag or so). Please do correct me if am wrong.
>
> Deepak
>
>
> On 5/17/07, Alexander Fatkulin <afatkulin@xxxxxxxxx > wrote:
> >
> > Deepak,
> >
> > As others have already pointed out - you actually didn't delete
> > anything. You just unlinked a directory entry in a file system. File
> > is still "there" and is open by the LGWR.
> >
> > Shutdown immediate is a clean shutdown (no instance recovery is
> > required after it).
> >
> > On 5/17/07, DBA Deepak < oracle.tutorials@xxxxxxxxx> wrote:
> > > Hi All,
> > >
> > > As we know when we issue a COMMIT the log buffer content is flushed
> > to the
> > > online redo log file before the "Commit complete" status is returned
> > to the
> > > user. Please correct me if I am wrong.
> > >
> > > I have the following scenario...
> > >
> > > SQL> select member from v$logfile;
> > >
> > > MEMBER
> > >
> > 
--------------------------------------------------------------------------------
> >
> > > /u04/oradata/BIDWDB01/redo03.log
> > > /u04/oradata/BIDWDB01/redo02.log
> > >  /u04/oradata/BIDWDB01/redo01.log
> > >
> > > SQL> !rm /u04/oradata/BIDWDB01/redo01.log
> > >
> > > SQL> !rm /u04/oradata/BIDWDB01/redo02.log
> > >
> > > SQL> !rm /u04/oradata/BIDWDB01/redo03.log
> > >
> > >
> > > SQL> connect scott/oracle
> > > Connected.
> > > SQL> update emp set ename=ename;
> > >
> > > 14 rows updated.
> > >
> > > SQL> commit;
> > >
> > > Commit complete.
> > >
> > > SQL> commit;
> > >
> > > Commit complete.
> > >
> > > SQL> conn / as sysdba
> > > Connected.
> > > SQL> shutdown immediate
> > > Database closed.
> > > Database dismounted.
> > > ORACLE instance shut down.
> > >
> > >
> > > SQL> startup
> > > ORACLE instance started.
> > >
> > > Total System Global Area 4479516672 bytes
> > > Fixed Size            1984504 bytes
> > > Variable Size        905975816 bytes
> > > Database Buffers      3556769792 bytes
> > > Redo Buffers          14786560 bytes
> > > Database mounted.
> > > ORA-00313: open failed for members of log group 1 of thread 1
> > > ORA-00312: online log 1 thread 1:
> > > '/u04/oradata/BIDWDB01/redo01.log'
> > >
> > >
> > >
> > >
> > >
> > > -----------------------
> > >
> > > My question is even after deleting all the online redo log files how
> > did
> > > Oracle returned the Commit complete status to the user? What
> > happened to the
> > > log buffer data flush?
> > >
> > > I am using 10.2.0.2 on Solaris 9 (64-bit)
> > >
> > >
> > > Regards,
> > >
> > > Deepak
> >
> >
> > --
> > Alexander Fatkulin
> >
>
>
>
> --
> Regards,
>
> Deepak
> Oracle DBA




--
=========================

Stefan P Knecht
Consultant
Infrastructure Managed Services

Trivadis AG
Europa-Strasse 5
CH-8152 Glattbrugg

Phone +41-44-808 70 20
Fax +41-808 70 12
Mobile +41-79-571 36 27
stefan.knecht@xxxxxxxxxxxx
http://www.trivadis.com

=========================




--
Regards,

Deepak
Oracle DBA

Other related posts: