美文网首页程序员
Operation timeout SequelizeConn

Operation timeout SequelizeConn

作者: last_edc | 来源:发表于2020-07-28 17:03 被阅读0次

数据库操作超时常见原因:

  • 连接数超过负荷
  • 锁表

注意:以下SQL适用postgres数据库

查看数据库最大连接数

SHOW max_connections;

查看活跃连接数的SQL:

-- 方式一:
SELECT
    count(*)
FROM
    pg_stat_activity
WHERE
    datname = '数据库名称';

-- 方式二:
SELECT
    sum(numbackends)
FROM
    pg_stat_database
WHERE
    datname = '数据库名称';

如果发现活跃连接数很小,继续查看活跃连接数里边有没有锁表的

SELECT * FROM pg_stat_activity WHERE datname = '数据库名字';
image.png

发现有很多 state 为 idle in transaction (aborted) 记录,这种情况一般是开启事务后,并没有提交或回滚操作。

杀死无效的连接(包括锁表的连接)
select pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='tiku' and "state"='idle in transaction (aborted)';
查看锁表的情况
select relation::regclass, * from pg_locks where not granted;

相关文章

网友评论

    本文标题:Operation timeout SequelizeConn

    本文链接:https://www.haomeiwen.com/subject/lwufrktx.html