今天群里有人问关于数据库进程的事情,当然,他对oracle的后台进程不是很熟悉。当时我举了个例子,是关于LGWR,但是由于我学艺不精,当时只想起来了这个进程会被commit激发,实在是贻笑大方。回来以后查了一下书,于是记录在此,也算是和大家的分享吧。
LGWR被触发的情况:
1 commit。在提交之后,oracle会先把确认信息写到日志缓冲区里,然后再激发LGWR,将日志缓冲区内的Redo Entry写到联机重做日志文件里。
2 如果尚在日志缓冲区内的Redo Entry超过三分之一以上日志缓冲区大小的话,就会触发LGWR,将Redo Entry写到联机重做日志文件里。
3 LGWR每三秒触发一次。
4 DBWR被触发,但是脏缓冲相关的Redo Entry还没有写到联机重做日志文件里,这个时候会首先让LGWR将Redo Entry写到联机重做日志文件里,之后DBWR才会写脏数据到数据文件里。
把这个记录在云端,以备不时之需。