postgresql运维问题解决:PG数据库状态会话过多处理

106 阅读1分钟

小亦平台会持续给大家科普一些运维过程中常见的问题解决案例,运维朋友们可以在常见问题及解决方案专栏查看更多案例

问题概述:

  • 故障描述: pg数据库idle或idle in transaction状态会话过多,导致系统资源使用率告警,手动kill会话。

解决方案:

  1. 用postgres用户登录告警的数据库节点;
  2. 登录数据库,检查idle或idle in transaction状态的会话pid:
    psql
    \x
    select pid,state,query_start,xact_start,now()-query_start,wait_event_type,wait_event,query from pg_stat_activity where now()-query_start > '5s' and state != 'active' order by query_start;
    (可以根据要求修改会话超时时间)
  3. 根据情况杀掉过多的idle或idle in transaction状态的会话:
    select pg_cancle_backend(pid);
    (如果上述命令无法正常kill掉会话,则继续执行)
    select pg_terminate_backend(pid);
  4. 检查主机资源使用是否恢复正常,视情况决定是否继续kill相关进程。

立即查看更多postgresql的相关内容:www.ces-xiaoyi.com.cn/?wework_cfm…

运维工作中遇到难题?立即提交工单:www.ces-xiaoyi.com.cn/#/workOrder… 小亦平台工程师火速响应,助您快速修复故障!