通常oracle的log file sync执行大致印象是等待cpu、log file parallel write、等待cpu,遇到问题主要考虑lgwr自适应模式参数要关闭、io性能、cpu瓶颈、归档数量和大小等,但是内部执行内容其实很多,尤其是有ADG了以后。
log file sync主要执行过程:
https://docs.oracle.com/en/database/oracle/oracle-database/19/haovw/tune-and-troubleshoot-oracle-data-guard.html#GUID-30CD6E1C-1CE2-4BB6-A404-896D5C06ECCE1. 前台进程向 LGWR 进程发出commit(log file sync 事件开始)。如果有并发提交请求排队,LGWR 将批处理所有未完成的提交请求一起导致连续的重做链。 2. LGWR 等待获取CPU。 3. LGWR 开始重做写入(redo write time 统计数据开始增加)。 4. 对于 Oracle RAC 数据库,LGWR 将当前写入操作广播到其他实例。 5. 预处理后,如果存在 SYNC 备用数据库,LGWR 将启动远程写入(SYNC remote write 开始)。 6. LGWR 发出本地写入(log file parallel write 事件开始)。 7. 如果存在 SYNC 备用数据库,LGWR 将等待远程写入完成。 8. 检查 I/O 状态后,LGWR 结束redo write time / SYNC remote write。 9. 对于 Oracle RAC 数据库,LGWR 等待广播确认。 10. LGWR 更新磁盘上的 SCN。 11. LGWR 通知前台进程。 12. 前台进程等待 CPU。 13. 前台进程结束 “log file sync”。
相关概念:
LGWR进程:Oracle 主要后台进程之一,用于将redo缓存内容写入redo文件
前台进程:服务器进程,当客户端连接Oracle时,数据库会自动创建一个服务器进程响应处理服务请求
等待事件:Oracle对内部一些操作分类并统计耗时,用于诊断数据库内部运行过程
ADG:Oracle数据库的数据保护技术,主库发生的变化同步到备库,保持数据一致
RAC:Oracle集群技术,通过多个节点实现高可用和负载均衡
参考:
简述
官方介绍