Oracle 等待事件 gc cr block busy 官方解释,作用,如何使用及优化方法

本站中文解释

Oracle事件gc cr block busy

1、gc cr block busy事件给Oracle数据库管理者带来了混乱运行和数据库性能下降。 它们是由于在块获取期间,多个会话同时使用同一页而出现的。 也就是说,其中一个会话试图访问同一页的两个或更多块的内容,但另一个会话正在修改它,这就导致了一个“block busy”事件。

2、GC CR Block Busy事件就是等待资源使用的过程。 Oracle块资源必须具有可重用会话特定的信息,以便读取它,并可能被其他会话修改或进行释放,即所谓的CR(Change Release)事件。 如果两个或多个会话同时尝试访问同一资源,第一个会话将获得读/写的权利,而第二个会话将被阻塞,直到资源被释放,它才可继续访问资源。 当一个事件被阻止时,就出现了GC CR Block Busy事件。

3、GC CR Block Busy事件的原因可以源于很多,它们主要有以下几种:一是在索引和表空间调整期间,如索引重新建立,表空间重新格式化和扩容;二是表中的并发存取,这可能包括B&R也就是“熊孩子”操作,如更新和删除; 三是残酷的操作,如共享锁在整个更新操作期间以一种不当的方式持有,而不是使用高效的短促事务; 最后,就是当上一次操作在没有释放之前就被中断了,所以系统将不得不等待它被清理掉,这样便可完成这个环节了。

4、关于GC CR Block Busy事件,数据库管理者需要根据事件发生的实际原因,采取相应的技术措施,避免此类事件的发生。一是针对表和表空间,可能需要改变结构,以获得更高的并发性;二是处理索引空间和索引,可能需要对其进行优化以提升性能;三是处理事务的同步,以确保更有效的处理;四是改变会话的超时时间,以避免残留会话;五是改变Oracle数据库的参数,以提高性能。

5、解决GC CR Block Busy事件可以涉及到如下的步骤:(1)检查系统,获取事件的精确定位;(2) 利用V$LOCKED_OBJECT可以检查对象与会话间的关系。如果一个会话持有一个受阻塞对象,其就有可能导致CR block busy事件;(3)利用V$FILESTAT及V$FILESTATIO这两个视图可以获取每个文件的总读、写次数,以及I/O等待时间;(4) 利用V$SESSION等视图,获取session状态、cpu利用率等信息;(5)利用V$SESSION_EVENT监控CR block busy事件的发生,(6)利用V$SESSION_BLOCKERS获取被阻塞的session的详细信息。

6、最后,要总结GC CR Block Busy事件,它们能够阻碍正常的业务流程,以降低数据库的性能,因此我们需要经常监控和优化,以保证数据库系统的正常运行。当GC CR Block Busy事件发生,应立即查明原因并采取措施预防或修复其影响,恢复数据库的性能。

官方英文解释

This event indicates that the requested consistent read (CR) buffer was transferred from another instance in the cluster, but the request had to be put on hold at the serving instance.

This could happen when a dirty buffer had to be transferred, in which case REDO needs to be flushed before the Cache Fusion transfer could be processed. This could also happen if the requested buffer was being held by another process on the remote instance. The serving instance would transfer the requested buffer once the REDO flush is complete, or once the buffer is released by the holding process.

Wait Time: The wait time is the actual time it took to receive the requested buffer.

Parameter Description

file#

See “file#”

block#

See “block#”

class#

See “class”


数据运维技术 » Oracle 等待事件 gc cr block busy 官方解释,作用,如何使用及优化方法