在Linux下使用strace窥视Oracle LGWR进程

2014-11-24 17:55:57 · 作者: · 浏览: 0

我们试一下用strace窥视一下LGWR的行为。


首先找出LGWR的进程号:


在一个终端中执行命令,我们比较关心LGWR对文件的打开操作:


在sqlplus中执行以下语句,用于添加一组新的online redo log:


然后多次切换logfile:


此时 strace 这边就有输出了:


我们可以看到LGWR对新的一组redo进行了打开操作,后面是一堆对 alert文件的打开并写入操作,可以看到LGWR对online redo log的open操作采用 O_SYNC 标志,从google中得知,该标志用于绕过文件系统的缓存。


我们可以再看看文件系统的缓存的巨大作用,用dd命令来模拟一下:


可以看到文件系统的缓存表面上大大增加了吞吐能力,但是如果一旦断电就有可能产生数据丢失的情况。