从Oracle 10g开始, RAC相关等待事件引入了从属关系。 某些事件扮演"Placeholder"角色,而另一些事件扮演"Fixed-up"角色。
"Placeholder"事件是指进程在全局资源(即数据块)"获取过程中"等待的事件。 "Fixed-up"事件表示记录进程"获取之后",表明数据块的获取方法的事件。
必须注意的是,"获取过程中"和"获取之后"之间的视角差异决定了 "Placeholder"事件和 "Fixed-up"事件的作用。 例如,在一致读取 (CR) 模式下向远程节点请求特定块的进程将等待"gc cr request"(Placeholder),直到该块被收到。如果收到实际块作为请求的结果,则最终报告将等待"gc cr block 2-way"( Fixed-up)。 也就是说,"Placeholder"事件将更改为特定的"Fixed-up"事件,这取决于进程获得的结果。
"Placeholder"和 "Fixed-up" 事件系统中的另一个注意事项是监视方法。 "Placeholder"事件在"获取过程中"观察到,因此在提供当前等待信息的 V\$SESSION_WAIT视图中观察到。 此外,如果尚未更改为"Fixed-up"事件,V\$SESSION_EVENT视图中也会观察到。 另一方面,由于"Fixed-up"事件在"获取之后"观察到,因此在 V\$SESSION_WAIT 视图中不能被观察到,仅在 V\$SESSION_EVENT 或 V\$SYSTEM_EVENT 视图中可以被观察到。 因此,如果查询 V\$SYSTEM_EVENT 视图,则仅能观察到"Fixed-up"事件,如 "gc cr block 2-way",而不能观察到"Placeholder"事件,如 "gc cr request"事件。
gc cr/ current request 的 fixed-up 事件
gc cr/ current request事件是"Placeholder"事件,根据获取数据块的手段,有下面几种类型的"Fixed-up"事件:
如果从主节点发送块映像(即,如果主节点是持有者节点)
gc cr block2-way
gc current block 2-way
从第三个持有者节点(而不是主节点)发送块映像时
gc cr block 3-way
gc current block 3-way
授予从主节点读取块的权限
gc cr grant 2-way
gc current grant 2-way
在发送块映像的过程中发生冲突时
gc cr block busy
gc current block busy
在授予读取块的权限的过程中发生冲突时
gc cr grant busy
gc current grant busy
发送块图像时出现拥塞时
gc cr block congested
gc current block congested
在授予读取块的权限的过程中出现拥塞时
gc cr grant congested
gc current grant congested
如果对块传输请求的响应丢失 (10g R2)
gc cr block lost
gc current block lost
这些"Fixed-up"事件有助于更详细地分析等待症状的原因。即使"Placeholder"是相同的"gc cr request"事件,依据"Fixed-up"事件是"gc cr block 2-way"还是"gc cr block busy"事件,发生等待行为的原因和解决方案可能完全不同。
最新评论
这个牛
放下欲望,男人从来不醉,充分且必要
勇气、责任、自信、创新,为天下先!
软件即数据,软件即服务,软件即管理,软件就是对人类各种社会活动的仿真和记录。软件很重要,但软件不可能凌驾于业务之上,尤其不可能高人一等。