oracle数据库管理-IO异常导致bufer busy waits异常等待
1 故障现象
rman进行全备份报错
channel ch00: starting piece 1 at 05-JAN-20
RMAN-03009: failure of backup command on ch01 channel at 01/05/2020 11:19:10
ORA-19501: read error on file "/orcl/oracle/oradata2/undotbs04.dbf", blockno 3541313 (blocksize=8192)
ORA-27063: number of bytes read/written is incorrect
IBM AIX RISC System/6000 Error: 5: There is an input or output error.
Additional information: -1
Additional information: 524288
channel ch01 disabled, job failed on it will be run on another channel
2 系统日志分析
使用errpt命令查看报错信息
不同的表对象之间产生了TX-ROW lock contention等待,堵塞源头buffer busy waits等待??很诧异
3 解决思路:
SELECT sid,serial#,status,program,module FROM V$SESSION WHERE SID IN(SELECT DISTINCT BLOCKING_SESSION FROM V$SESSION WHERE BLOCKING_SESSION IS NOT NULL) AND EVENT ='SQL*Net message from client';
查询到存在对应的堵塞源头为一个SQL*Net message from client在执行insert的会话
alter system kill sessIOn 'sid,serial#' immediate;
发现报错信息已出现,就会有buffer busy waits和TX-row lock等待堆积,切热点块大量的出现。数据库会话突增。
4 原因总结