enq: HW - contention 说明: 硬件队列用于序列化段的高水位线以外的空间分配。 可以用手动分配范围即可解决问题。 V$SESSION_WaiT,P2 / V$LOCK
enq: HW - contention 说明:
硬件队列用于序列化段的高水位线以外的空间分配。
可以用手动分配范围即可解决问题。
V$SESSION_WaiT,P2 / V$LOCK.ID1 is the tablespace number.
V$SESSION_WAIT.P3 / V$LOCK.ID2 is the relative data block address (dba)
of segment header of the object for which space is being allocated.
巡检发现问题:
select event,count(*) from gv$session_wait
where wait_class <> 'Idle'
group by event;
1 enq: HW - contention 274
识别发生问题的会话:
select sid,event,P2,P3 from gv$session_wait where event like '%HW%';
通过DBMS_UTILITY包,来定位发生HW争用的对象。
SELECT DBMS_UTILITY.data_block_address_file(ID2) FILE#,
DBMS_UTILITY.data_block_address_block(ID2) BLOCK#
FROM GV$LOCK WHERE TYPE = 'HW';
通过上面查到的 文件号 和 块ID 定位到等待的对象。
SELECT OWNER ,
SEGMENT_TYPE,
SEGMENT_NAME
FROM DBA_EXTENTS
WHERE FILE_ID = 111
AND 126423 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS -1 ;
根据lob字段 查到相对应的表。
SELECT OWNER ,
TABLE_NAME ,
SEGMENT_NAME
FROM DBA_LOBS
WHERE SEGMENT_NAME = 'SYS_LOB0000080646C00004$$';
现在,已经查到是哪个LOB段造成的HW等待。应该向段中手动添加一个新的扩展区来解决问题。
添加一个该段中最大扩展区大小相同的扩展区。
查询对象最大扩展区的大小。
SELECT DISTINCT BYTES
FROM DBA_EXTENTS
WHERE SEGMENT_NAME = 'SYS_LOB0000080646C00004$$'
AND OWNER ='USER'
向lob字段添加扩展区。
alter table USER.TAB modify lob ('COL_NAME') (allocate extents (size 64M));
--结束END--
本文标题: enq:HW–contention 故障处理
本文链接: https://lsjlt.com/news/48191.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0