不会,Oracle 的写操作不过文件系统缓存,只要文件系统返回写完成,就肯定已经落盘。文档ID 393768.1 对此已有描述:
Q:
Oracle Server - Enterprise Edition - Version: 8.1.7.4 to 10.2.0.1
When writes are cached in memory it is possible for them to be lost if the system crashes before the data is written to disk.
Is such loss of data possible with Oracle write I/O calls on Unix filesystems e.g. for redo writes to online logfiles ?
A:
Oracle does not use filesystem caching for writes.
Oracle opens files on Unix using the O_DSYNC flag, this is sometimes called "data synchronous mode."
From the Unix "man" page for the "open" system call (on Solaris) :
O_DSYNC
Write I/O operations on the file descriptor complete as defined by synchronized I/O data integrity completion.
This ensures that writes bypass the Unix File Cache and are really on disk when I/O request completion is signalled by the O/S.
So there is no possibility of a system crash causing loss of writes due to caching, unless there is a defect at the O/S or lower level.