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,