7.4.全局DDL锁监控

全局的 DDL 锁,用于 DDL 复制,可以取消和/或阻止并行写入和其他 DDL。所以它可以是重要的是确定究竟什么占用的锁,还是认为它仍在试图获得它,和多长时间它一直试图或已经持有该锁。

可以使用 bdr.trace_ddl_locks_level 设置使用 PostgreSQL 的日志文件, 提供了最完整和最有用的方式来看 DDL 锁定活动追踪 DDL 锁定活动。 强烈建议您启用 DDL 锁跟踪。

bdr.bdr_global_locks 目录还提供一些可视性 DDL 锁定状态。 当 DDL 锁时,该节点包含 DDL 锁不会任何行在此表中。 其他节点将都像单排条目︰

bdr_testdb=# select * from bdr.bdr_global_locks ;
locktype |    owning_sysid     | owning_timeline | owning_datid | owner_created_lock_at |   acquired_sysid    | acquired_timeline | acquired_datid | acquired_lock_at |  state   
----------+---------------------+-----------------+--------------+-----------------------+---------------------+-------------------+----------------+------------------+----------
 ddl_lock | 6313760379784308337 |               1 |        16385 | 1DC11/2CEB874C        | 6313760193895071967 |                 1 |          16385 |                  | acquired
 (1 row)

这表明存在持有锁或试图获取锁的节点。

全局DDL锁的工作原理,请参阅章节8.1.1 可以了解更多细节。

results matching ""

    No results matching ""