Log File Sync/Log File Parallel Write (单实例)

1 等待事件说明

当用户执行完事务(insert插入数据)执行commit/rollbackup命令后,Oracle后台LGWR进程需要redo log buffer -> online redo log files,写入后返回Commit complete/Rollback complete.。这个过程就会形成Log File Sync等待事件。
在这里插入图片描述
在这里插入图片描述

Log File Parallel Write是LGWR进程开始执行到结束这个过程的等待事件。
在这里插入图片描述

2 模拟该等待事件

2.1 单次

在这里插入图片描述
查不到等待事件

2.2 多次

drop table sync;
create table sync (x int);
begin
    for i in 1 .. 100000
    loop
        insert into sync values (i);
        commit work write wait immediate;
    end loop;
end;
/

在这里插入图片描述

在这里插入图片描述

drop table sync;
create table sync (x int);
begin
    for i in 1 .. 100000
    loop
        insert into sync values (i);
        commit;
    end loop;
end;
/

commit_write、commit_logging、commit_wait

drop table baipx;
create table baipx as select * from dba_objects;
begin
    for i in 1 .. 100
    loop
        insert into baipx select * from baipx;
        commit;
    end loop;
end;
/

在这里插入图片描述

2.3 别的等待事件

log file sequential read
在这里插入图片描述
在这里插入图片描述
log file parallel write
在这里插入图片描述

在这里插入图片描述

3 原因

数据库层面

  1. 提交或者回滚次数过于频繁 -> 查看统计信息(统计user commits,user rollback次数)
  2. 日志缓冲区过大
  3. redo logfile过少

系统层面
结合log file parallel write等待事件来判断

  1. I/O缓慢导致LGWR进程写日志慢 (log file sync ≈ log file parallel write)
  2. CPU使用率过高 (log file sync > log file parallel write)

4 解决方案

找到相应原因进行解决。
数据库层面

  1. 提交或者回滚次数过于频繁 -> 批量提交
  2. 日志缓冲区过大
  3. redo logfile过少

系统层面

  1. I/O缓慢导致LGWR进程写日志慢 -> 使用性能好的盘
  2. CPU使用率过高

5 学习链接

log file switch (日志切换)
log file sync( 日志文件同步)
Oracle log file sync 原理详解
频繁commit导致的log file sync的诊断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值