33533/7D2841D8
。有一个逻辑工作者在订阅者上运行,因为我在 pg_stat_activity
中看到它,但我不确定它在做什么。无论这笔交易是什么,我都想终止,因为它已经持续了好几天了。我找到了
pg_replication_origin_advance
函数,它可以让我做到这一点,但是我不知道“下一个”LSN 值是什么。有什么办法可以查到吗?
我弄清楚了我的问题是什么:订阅者上的触发器。
我在
pg_locks
看到一张桌子不断被撞击。表上有一个排他锁,并且没有其他查询想要使用它,这很好。一直很忙。
不知怎的,我发现了
pg_stat_user_functions
,它表示一个函数(如触发函数)执行了多少时间。有两个函数运行时间非常长,并且持续上升。
我做了一个
alter table foo disable trigger x
,一旦完成,复制立即开始流动。我的数据现在已经过时了,因为触发器没有运行,但只要我的发布商不会因为空间不足而崩溃,那就没问题。复制完成后,我重新启用了触发器,一切都运行正常。