Interesting Oracle Question: How Does the Oracle LGWR Write to Online Redo Log Files?

As the title states I was recently asked the question above.

It’s actually a simple answer with much documentation out there. 

Here is the simple answer: Redo records are buffered in a circular fashion in the redo log buffer of the SGA and are written to one of the redo log files by the LGWR database background process.

Now here is a more detailed answer:

The LGWR process begins with writing entries to the online log files when at least one of the following conditions are met:

1.  The log buffer reaches the log_io_size threshold.
2.  A server process perfoming a COMMIT on ROLLBAK posts to the LGWR process.
3.  The DBWR process post to the LGWR process before it begins writing.

When the LGWR process writes entries to disk the user processes can then reuse the space in the log buffer for new entries.

Note:  If the log buffer is small the user processes will wait until the LGWR flushes the redo information in memory to disc.

However, I suggest for more information start with these links below (especially since I use them for reference as well.):
http://stanford.edu/dept/itss/docs/oracle/10g/server.101/b10739/onlineredo.htm
http://stanford.edu/dept/itss/docs/oracle/10g/server.101/b10739/onlineredo.htm#i1006187
and lets not forget you could logon and look it up in http://support.oracle.com

Comments/Questions?

2 Comments

Comments are closed.