Oracle 等待事件 Enqueues:KO,MultipleObjectCheckpoint 官方解释,作用,如何使用及优化方法
本站中文解释
Oracle事件Enqueues: KO,Multiple Object Checkpoint是Oracle RAC环境中用于保证锁定机制的重要概念。
Enqueues是Oracle RAC中的一种锁定机制,表示锁分配的时候令牌的存在。当一个会话请求获得一个锁时,Oracle会把其存放在Enqueue中,会话才有资格对对象进行更改。被存放在Enqueue中的锁可以是共享锁或排它锁,当会话获取的锁是共享锁时,其它会话也可以获得这个共享锁;但如果获得的锁是排它锁时,其它会话将不能再获得该锁。
KO代表非活动锁(refixed),它在写时复制缓冲区中被设置,以避免当前缓冲区内容被更新到数据文件中时被他人破坏。 这样一来,只有非活动的锁才能被锁定其他会话,以避免可能发生隐含数据错误。
Multiple Object Checkpoint(MOC)提供了在一个事务逻辑单元内锁定多个资源和对象的功能。 MOC锁定可以被更新,对象或资源可以被独立地锁定,每个锁都受到上次检查点MOC操作的影响。一个MOC是检查点操作及其相应的锁,想解锁被MOC显性锁定的资源,所有资源必须被重新锁定,然后再清理掉以前的MOC锁。通过支持MOC可以确保,一些事件处理程序隐式的以一个原子操作来锁定对象或资源,同时也可以保证数据的完整性和一致性 。
总之,Enqueues: KO,Multiple Object Checkpoint是Oracle RAC环境中用于保证锁定机制的重要概念,它们主要是为了确保系统正确处理多用户访问数据库时处理的分布式事务的安全性。在Enqueues,KO,Multiple Object Checkpoint的机制下,可以保证数据的一致性,避免脏读和不可重复读,并保证在多台多节点是DBMS服务器上都获得正确的数据。