锁定和 oncheck

以下操作期间,oncheck 实用程序在表上放置了共享锁,因此其他用户在检查完成之前将不能执行更新、插入或删除:
  • 检查数据时
  • 检查索引(使用 -ci-cI-pk-pK-pl-pL)且表使用页锁定时
  • 当指定带有 -ci-cI-pk-pK-pl-pL -x 选项且表使用行锁定时

如果表不使用页锁定,那么使用 oncheck -ci-cI-pk -pK -pl-pL 选项检查索引时,数据库服务器不在表上放置共享锁。当做索引检查过程中表上没有共享锁时,其他用户可以在检查过程中更新行。

如果在索引检查过程中未在使用行锁的表上放置共享锁,那么 oncheck 实用程序无法进行准确的索引检查。要绝对确保完全的索引检查,可以用 -x 选项执行 oncheck 。使用 -x 选项, oncheck 在表上放置共享锁,这样其他用户就不能再检查完成之前执行更新、插入或删除。

若在高可用集群的辅助服务器上运行 oncheck 实用程序,它将返回不可靠的结果。

有关 -x 选项的更多信息,请参阅 使用 -x 开启锁 。有关共享锁和意向锁的更多信息,请参阅 GBase 8s 性能指南

在检查系统目录表时,oncheck 实用程序在这些表上放置共享锁。在执行时,它在表上放置互斥锁。