数据库的典型操作就是进行大规模的输入/输出(I/O)。为了提高效率,减少I/O量,引入了LGWR进程,
为了减少I/O次数,引入了DBWR进程。
一般一个实例有多个DBWR进程,Oracle允许在一个实例上最多启动10个数据库写进程分别为DBW0-DBW9.
DBWR进程负责将数据库高速缓冲区中的脏缓冲区中的数据写到数据文件中,为了提高效率,数据库写进程并不是数据库高速缓冲区中的数据一有变化就写数据文件,而是在积累了足够多得数据一次写一大批内存数据块到数据文件上。
当数据库写进程在以下事件发生时把数据库高速缓冲区中的数据写到数据文件上。:
*当脏缓冲区的数量超过了所设定的限额。
*当所设定的时间间隔已到。
*当有进程需要数据库高速缓冲区却找不到空闲的缓冲区时。
*当校验点发生时
*当某个表被删除(drop)或者截断(truncate)时
*当某个表空间被设置为只读(read only)时
*当使用alter tablespace users begin backup的命令对某个表空间进行联机备份时
*当某个临时表空间被设置为只脱机(offline)或正常状态(normal)时.
为了减少I/O次数,引入了DBWR进程。
一般一个实例有多个DBWR进程,Oracle允许在一个实例上最多启动10个数据库写进程分别为DBW0-DBW9.
DBWR进程负责将数据库高速缓冲区中的脏缓冲区中的数据写到数据文件中,为了提高效率,数据库写进程并不是数据库高速缓冲区中的数据一有变化就写数据文件,而是在积累了足够多得数据一次写一大批内存数据块到数据文件上。
当数据库写进程在以下事件发生时把数据库高速缓冲区中的数据写到数据文件上。:
*当脏缓冲区的数量超过了所设定的限额。
*当所设定的时间间隔已到。
*当有进程需要数据库高速缓冲区却找不到空闲的缓冲区时。
*当校验点发生时
*当某个表被删除(drop)或者截断(truncate)时
*当某个表空间被设置为只读(read only)时
*当使用alter tablespace users begin backup的命令对某个表空间进行联机备份时
*当某个临时表空间被设置为只脱机(offline)或正常状态(normal)时.