igelr Asked: 2022-09-06 05:44:31 +0800 CST2022-09-06 05:44:31 +0800 CST 2022-09-06 05:44:31 +0800 CST 如何在 PostgreSQL 中检测和记录死锁 772 我想检测并记录我的 PostgreSQL 服务器中发生的所有死锁,最好包括查询的详细信息。这在 PostgreSQL 中可能吗? 我想要一个像 MS SQL 中提供的扩展事件这样的解决方案。 postgresql deadlock 1 个回答 Voted Best Answer Laurenz Albe 2022-09-06T06:12:26+08:002022-09-06T06:12:26+08:00 检测会自动进行,日志记录也会自动进行,除非您设置log_min_messages为fatal或panic。 死锁事件和涉及的语句被写入 PostgreSQL 日志(并且您不能将它们记录到不同的文件)。该信息通常不足以确定根本原因(因为这通常取决于同一事务中的先前语句,PostgreSQL 不保留关于这些语句的内存)。 理想情况下,通过查看与死锁一起记录的语句,您可以确定应用程序在做什么并从那里开始,但无法避免一些调查。
检测会自动进行,日志记录也会自动进行,除非您设置
log_min_messages
为fatal
或panic
。死锁事件和涉及的语句被写入 PostgreSQL 日志(并且您不能将它们记录到不同的文件)。该信息通常不足以确定根本原因(因为这通常取决于同一事务中的先前语句,PostgreSQL 不保留关于这些语句的内存)。
理想情况下,通过查看与死锁一起记录的语句,您可以确定应用程序在做什么并从那里开始,但无法避免一些调查。