Postgresql数据库在连接时引发错误

kuuvgm7e  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(253)

我在AWS上运行Postgresql数据库,后台是Django。在一些请求之后,比如说50个请求,它会引发错误“OperationalError:由于管理员命令而终止连接SSL连接已意外关闭”,但数据库仍将保持活动状态。最初,它会引发“OperationalError:FATAL:剩余的连接插槽是为非复制超级用户连接保留的”,因此我有一个脚本来关闭打开的连接。

export PGPASSWORD='mypassword'
psql --host=dbhost.myregion.rds.amazonaws.com --port=5432 --username=user --dbname=name \
     -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
AND state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled')
AND usename != 'rdsadmin';"

但是错误不断出现。我也试过将max_connections增加到150,但是仍然没有帮助。我也试过使用AWS RDS代理,但是仍然没有希望。
下面是我如何从django连接到DB:

DATABASES = {
    'default': {
        'ENGINE': config('DB_ENGINE'),
        'NAME': config('DB_NAME'),
        'USER': config('DB_USER'),
        'PASSWORD': config('DB_PASSWORD'),
        'HOST': config('DB_HOST'),
        'PORT': config('DB_PORT'),
        'CONN_MAX_AGE': 0
    }
}
ddrv8njm

ddrv8njm1#

您看到的错误是由关闭连接的脚本引起的。
与其随机终止会话,不如修复应用程序中的连接泄漏(不要问我们如何做--我们无法调试您的程序)。

相关问题