Postgresql
如何在 PostgreSQL 中檢測和記錄死鎖
我想檢測並記錄我的 PostgreSQL 伺服器中發生的所有死鎖,最好包括查詢的詳細資訊。這在 PostgreSQL 中可能嗎?
我想要一個像 MS SQL 中提供的擴展事件這樣的解決方案。
檢測會自動進行,日誌記錄也會自動進行,除非您設置
log_min_messages
為fatal
或panic
。死鎖事件和涉及的語句被寫入 PostgreSQL 日誌(並且您不能將它們記錄到不同的文件)。該資訊通常不足以確定根本原因(因為這通常取決於同一事務中的先前語句,PostgreSQL 不保留關於這些語句的記憶體)。
理想情況下,通過查看與死鎖一起記錄的語句,您可以確定應用程序在做什麼並從那裡開始,但無法避免一些調查。