定期清理長事務、長時間未結束的SQL
更新時間 2025-02-05 09:37:25
最近更新時間: 2025-02-05 09:37:25
分享文章
本頁介紹天翼云TeleDB數據庫中定期清理長事務、長時間未結束的SQL的原因和操作。
長事務、長時間未結束的SQL,對數據庫危害極大,會導致表膨脹嚴重,垃圾回收不成功,XID回收異常,甚至會讓XID耗盡而導致數據庫進入只讀狀態。
特別注意:長事務會導致VACUUM FULL也沒有辦法回收空間,即使長事務的表和VACUUM FULL的表沒有關系。
應定期檢查并清理長事務、長時間未結束的SQL:
連接所有CN、DN主節點,執行以下SQL,查詢超過1小時的會話:
select pid,client_addr,state_change,query_start,state_change,EXTRACT(EPOCH FROM (now()-query_start)),query,state,usename,application_name from pg_stat_activity where EXTRACT(EPOCH FROM (now()-query_start))> 3600 and state!='idle';