惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MongoDB | Blog
MongoDB | Blog
B
Blog
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
博客园 - Franky
V
V2EX
IT之家
IT之家
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
F
Fortinet All Blogs
I
InfoQ
云风的 BLOG
云风的 BLOG
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Microsoft Security Blog
Microsoft Security Blog

PostgreSQL

五年过去了,结论有什么变化吗? 适配信创数据库的人的精神状态 be like 用了十几年的 MySQL 了,突然发现 PostgreSQL 可能更加适合我,大家怎么看? postgresql 多进程改多线程 二键安装一个 postgresql 服务 通过 pg_roaringbitmap 优化标签查询的话,有没有必要做高频标签映射和结合普通复合索引? PostgreSQL + TimescaleDB 方案不按主键索引走,有什么办法吗? 看看大家现在用 pg 的最佳实践是怎么样的 用 PostgreSQL 存图片等 binary 有什么坑吗 [求助] 在哪个网址能够下载 PostgresSQL 9.3.0 版本的 Windows 二进制安装包?官方/ftp/old/binary 里没有。 [请教]pgvector 的性能问题 多笔记本离线 PostgreSQL 数据库同步问题: UUID vs 自增主键 PostgreSQL 通过分 Database 做多租户可行吗? PostgreSQL 多租户的正确姿势 Postgresql 放 K8S 里,大家目前都用的什么方案呢? 2025 年 postgresql 有什么优秀的备份解决方案 有大神研究过 pg_resetwal 的原理吗,为什么会丢 user 表的数据 按照 stackoverflow 教程执行 pg_resetwal, postgresql 的数据库被清空了 求国内高性价比的 postgresql 服务,纳米项目 PostgreSQL 18 JSONB 增加能取代 MongoDB 吗? PostgreSql Oracle 迁移 postgreSQL ,有什么经验分享 有什么权限管理最佳实践吗 请教 PostgreSQL 和 PostGIS 使用问题 pg 的毫秒级时间戳转换 关于 PostgreSQL 中的 max_connections 和 pg_stat_activity 的疑惑 目前国内最高性价比的 postgresql 服务是? 新手,请问 postgres 怎么配置 vacuum 学习 PostgreSQL,有什么资料推荐? Apache AGE 和 Neo4j 哪个更好? 有没有像 Citus 那样方便分片的图数据库?
请教一个关于 PostgreSQL 连接被 Server 关闭的问题
Koril · 2025-03-11 · via PostgreSQL

背景

我在自己的阿里云服务器上( 2C2G ,3M ,Debian 12 )装了一个 PostgreSQL ( 15 ),安装后,仅仅做了以下配置改动:

pg_hba.conf:

添加:host all all 0.0.0.0/0 md5

postgresql.conf

开放端口:listen_addresses = '*'

给 postgres 设置了密码,sudo -i -u postgres -> psql -> \password


异常

无论是 Navicat 还是 Python 的 Psycopg2 在超过一定时间(大概 3-5 分钟),就会连接失效了。

Navicat 报错如下:

Server closed the connection unexpectedly
This probably means the server terminated abnormally before or while processing the request.

Psycopg2 报错如下:

psycopg2.OperationalError: server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.
server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request. 

已知

服务器没有太大的负载,cpu ,内存,磁盘,网络,占用率都很低,除了 Prometheus/Grafana/nginx 之外,这个机器上只有刚刚安装的 PostgreSQL 。

重新获取连接,能够正常访问,但是我使用的 Psycopg2 的 ThreadedConnectionPool 连接池,连接池没法保持连接么?代码如下:


def get_pg_pool(pg_config):
    pool = psycopg2.pool.ThreadedConnectionPool(
        minconn=1,
        maxconn=200,
        host=pg_config['PG_HOST'],
        port=pg_config['PG_PORT'],
        dbname=pg_config['PG_DB'],
        user=pg_config['PG_USER'],
        password=pg_config['PG_PASSWORD'],
        connect_timeout=5,
    )
    return pool
    
@flask_app.route('/task/log', methods=['GET'])
    def task_log():
        task_log_list = []
        # 在进程启动时,给 flask_app 初始化了一个 pg_pool 对象
        conn = flask_app.pg_pool.getconn()
        try:
            with conn.cursor() as cur:
                cur.execute('SELECT * FROM t_log')
                task_log_list = cur.fetchall()
        except psycopg2.Error as e:
            return JsonResult.failed('获取日志列表失败')
        finally:
            flask_app.pg_pool.putconn(conn)

        return JsonResult.successful(task_log_list)


问题

这个问题是和 Linux 服务器配置有关呢?还是跟 PostgreSQL 配置有关?请问如何排查和解决呢?