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等待堆积,切热点块大量的出现。数据库会话突增。

进过EMC厂家分析,lun出现坏块,绝对排除读写报错的undo文件进行全备份。

1 configure exclude for tablespace undotbs01---可以放在全局,也可以创建到run块内。进行全备份,备份成功。

2 创建新的undotbs到新的文件系统,新的文件系统不包含坏块磁盘。

3 对undo进行切换,待原来的undo segment全部offline之后,将表空间undotbs01表空间offline,然后删除。

4 对数据库进行全备份。

4 原因总结

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值