我有一条ALTER TABLE
语句,根据pg_stat
,它正在“等待”,我想知道是否有一个简单的修复方法可以让语句执行?
据我有限的理解,我认为这是一个没有释放的表级锁。表pg_locks
显示了将其授权列设置为f
的单个AccessExclusiveLock
。运行ps aux | grep postgres
确认有一个postgres ALTER TABLE
在等待。
如果有帮助,则语句是Django ORM (特别是South)创建的语句。
谢谢。
发布于 2012-02-28 17:33:37
很可能还有另一个打开的事务对该表进行了选择。
寻找“在事务中”的会话。
确保它们结束了它们的事务(以便会话显示"“,或者如果您不能这样做,就用pg_terminate_backend()
杀死它们。
发布于 2013-04-15 12:40:11
如果您有很多事务中的会话,则可以使用查询,以列出已阻塞的进程及其阻塞的PID。
在尝试应用模式迁移时,请确保不运行pg_dump
。
https://dba.stackexchange.com/questions/14040
复制相似问题