我已经了解了几种方法(即查询pg_stat_activity表以获取要杀死的pid ),但在这些查询中没有返回数据。在MSSQL等其他DBMS中,我至少可以看到未提交的数据和/或使用profiler查看哪些连接是活动的。使用postgres,我只知道情况是这样的,因为我运行的java应用程序偶尔会意外关闭,这会阻止应用程序提交或回滚其更改。当我尝试运行应用程序时,我看到重复的键数据错误,这些数据没有提交,但以某种方式仍处于活动状态。我已经停止了我的postgres实例,但是当我再次打开它时仍然遇到了问题。有没有其他方法可以查看与我的数据库服务器有挂起连接的任何东西并将其杀死?
发布于 2019-12-17 21:50:17
从未提交的值上的重复键获得唯一约束错误的唯一方法是,如果两个dups都插入到同一事务中。否则,第二个进程插入块,直到第一个进程提交或回滚。
如果进程正在轰炸自己,那么在pg_stat_activity中看不到任何东西就不足为奇了。
https://stackoverflow.com/questions/59364861
复制相似问题