Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: REDO LOG Concepts

RE: REDO LOG Concepts

From: Peter McLarty <>
Date: Thu, 17 May 2007 14:18:04 +1000
Message-ID: <>

Hi Deepak
You will likey find that your database when you succeed in opening it does not show the transaction as successful. This is because the commit caused the lgwr to write your activity to the redo logs however the dbw has not at this time written your transaction to the datafile. This means that when you issued the shutfown immediate, the redo log items are not necessarily written to the datafiles. There is no requirement for Oracle to do this, I suspect that they do.  

The concepts guide is not clear on this with an immediate shutdown, however if it was a shutdown abort your tranaction would in effect be rolled back(not a true roll back) as in the abort Oracle waits until the restart to apply or not apply information in the redo files.    

From: DBA Deepak [] Sent: Thursday, 17 May 2007 01:08 PM
Subject: Re: REDO LOG Concepts

Hi Daniel,  

I did not try for other processes. But will the rm command in OS command queue? Is there any posibility to rollback the delete when the instance is open? And if at all it is possible will the commited transactions be reclaimed?  


On 5/17/07, Daniel W. Fink <> wrote:

        This occurs as at least one of the Oracle processes (LGWR, others?) still has the redo log open. You can rm it and it will 'disappear' from the file list, but as it is still open by LGWR. so when the log buffer is flushed and written by LGWR, it is written to the file that LGWR still has open. Once you shutdown the instance, LGWR terminates and lets go of the file, which is then 'officially' rmed. When the instance is restarted, the process(es) attempt to open the file, but cannot as it has been deleted.         

	Daniel Fink
	Oracle Performance, Diagnosis and Training
	Oracle Blog
	Join me at Miracle Scotland DB Forum!
	DBA Deepak 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;                 



                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 
		SQL> update emp set ename=ename; 
		14 rows updated. 
		SQL> commit; 
		Commit complete. 
		SQL> commit; 
		Commit complete. 
		SQL> conn / as sysdba 
		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:


                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 <> on Solaris 9 (64-bit)                                  




Oracle DBA 

Received on Wed May 16 2007 - 23:18:04 CDT

Original text of this message