千家信息网

DBWR,LGWR,CKPT,ARCH触发条件总结

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,DBWR写磁盘数据触发条件:1) 当进程在辅助LRU链表和主LRU链表上扫描以查找可以覆盖的buffer header[空闲缓冲区]时,如果已经扫描的buffer header的数量到达一定的限度(由
千家信息网最后更新 2026年11月02日DBWR,LGWR,CKPT,ARCH触发条件总结

DBWR写磁盘数据触发条件:

1) 当进程在辅助LRU链表和主LRU链表上扫描以查找可以覆盖的buffer header[空闲缓冲区]时,如果已经扫描的buffer header的数量到达一定的限度(由隐藏参数:_db_block_max_scan_pct决定)时,触发DBWR进程。_db_block_max_scan_pct表示已经扫描的buffer header的个数占整个LRU链表上buffer header总数的百分比。这时,搜索可用buffer header的进程挂起,在v$session_wait中表现为等待"free buffer wait"事件,同时增加v$sysstat中的"dirty buffers inspected"的值。(can query by x$kvit)
2) 当DBWR在主LRUW链表上查找已经更新完而正在等待被写入数据文件的buffer header时,如果找到的buffer header的数量超过一定限度(由隐藏参数:_db_writer_scan_depth_pct决定)时,DBWR就不再继续往下扫描了,而转到辅助LRUW链表上将其上的脏数据块写入数据文件。_db_writer_scan_depth_pct表示已经扫描的脏数据块的个数占整个主LRUW链表上buffer header总数的百分比。
3) 如果主LRUW链表和辅助LRUW链表上的脏数据块的总数超过一定限度,也将触发DBWR进程。该限度由隐藏参数:_db_large_dirty_queue决定。
4) 发生增量检查点(incremental checkpoint)或完全检查点(complete checkpoint)时触发DBWR。
5) 每隔三秒钟启动一次DBWR。
6) 将表空间设置为离线(offline)状态时触发DBWR。
7) 发出命令:alter tablespace … begin backup,从而将表空间设置为热备份状态时触发DBWR。
8) 将表空间设置为只读状态时,触发DBWR。
9) 删除对象时(比如删除某个表)会触发DBWR。

LGWR写联机日志文件触发条件:

1)超时(timeout)
当LGWR处于空闲状态时,它依赖于rdbms ipc message等待,处于休眠状态,直到3秒超时时间到。
如果LGWR发现有redo需要写出,那么LGWR将执行写出操作,log file parallel write等待事件将会出现。

2)阈值达到
只要一个进程在log buffer中分配空间,已经使用的Log buffer的数量将被计算。如果使用的块的
数量大于或等于_log_io_size参数设置,那么将会触发LGWR写操作。
如果此时LGWR未处于活动状态,那么LGWR将被通知去执行后台写操作。
缺省的_log_io_size等于1/3 log buffer大小,上限值为1M,此参数在X$KSPPSV中显示的0值,意为缺省值。
也就是,LGWR将在Min(1M,1/3 log buffer size)时触发。注意此处的log buffer size是以log block来衡量的。
此值通常为512 bytes.

3)提交
当一个事物提交时,在redo stream中将记录一个提交标志。
在这些redo被写到磁盘上之前,这个事物是不可恢复的。所以,在事务返回成功标志给用户前,必须等待LGWR写完成。进程通知LGWR写,并且以log file sync事件开始休眠,超时时间为1秒。
Oracle的隐含参数_wait_for_sync参数可以设置为false避免redo file sync的等待,但是就将无法保证事务的恢复性.注意,在递归调用(recursive calls)中的提交(比如过程中的提交)不需要同步redo直到需要返回响应给用户。因此递归调用仅需要同步返回给用户调用之前的最后一次Commit操作的RBA。

存在一个SGA变量用以记录redo线程需要同步的log block number。
如果多个提交在唤醒LGWR之前发生,此变量记录最高的log block number,在此之前的所有redo都将被写入磁盘。
这有时候被称为组提交(group commit).

4)在DBWR写之前
如果DBWR将要写出的数据的高RBA超过LGWR的on-Disk RBA,DBWR将post LGWR去执行写出。
在Oracle8i之前,此时DBWR将等待log file sync事件。
从Oracle8i开始,DBWR把这些Block放入一个defer队列,同时通知LGWR执行redo写出,DBWR可以继续执行无需等待的数据写出。

CKPT发送CHECKPOINT信号的触发条件:

1)log_checkpoint_timeout时间达到
2)当前redo日志已经写够log_checkpoint_internavl*操作系统块大小
3)redo log switch
4)alter system checkpoint
5)alter tablespace XXX begin backup,end backup的時候
6)alter tablespace ,datafile offline,shutdown immediate,direct read的時候;


ARCH进程日志归档触发条件:
如果设置了自动归档模式,则日志切换时,由LGWR进程触发ARCH进程进行归档。这是最常见的方式。 可以手工进行归档。使用命令:alter system archive log current表示启动ARCH进程,从而对当前的日志文件进行归档。 如果ARCH进程在5分钟以后还没有接收到LGWR的通知,则发生超时,于是ARCH被唤醒以检查是否存在需要归档的日志文件。ARCH通过读取控制文件中的信息来决定是否需要归档以及应该归档哪些日志文件。但是在进行实例恢复或者介质恢复的过程中,ARCH进程不会启动。


进程 数据 参数 文件 日志 状态 条件 事件 数量 空间 限度 总数 时间 用户 磁盘 同步 检查 辅助 个数 事务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 哈尔滨大商圈互联网科技有限公司 为想互联网科技怎么样 互联网科技活动banner 苏州互联网科技贷款公司 奇酷互联网络科技公司 深圳期待互联网科技 广西拼得多互联网科技有限公司 博兴的互联网电子科技公司 济南华为互联网科技产业总部基地 广州恒生互联网科技有限 速维有品互联网信息科技(苏州)有限公司 工业互联网等科技实现智能化赋能 互联网科技资金流入 江苏互联网科技小贷 广州有谷有贝互联网科技有限公司 唯美互联网科技 互联网科技自媒体灵感 现代科技的标志之一的互联网 六子台科技互联网展会 猪兼强互联网科技 美国互联网黑科技 碳银互联网科技有限公司 互联网科技咨询 中国互联网十大科技股排名 互联网行业科技股 从那以后互联网科技有限公司 互联网科技包装股 盐城市攀科互联网科技有限公司 东风日产互联网科技公司叫什么
0