您的当前位置:首页 >时尚 >PostgreSQL常见错误:sorry, too many clients already 正文
时间:2025-11-05 11:26:33 来源:网络整理编辑:时尚
当应用程序连接 PostgreSQL 数据库遇到“FATAL: sorry, too many clients already”错误时,表示数据库连接数已经到达服务器允许的最大值,无法建立新的连接。原
当应用程序连接 PostgreSQL 数据库遇到“FATAL: sorry,常见错误 too many clients already”错误时,表示数据库连接数已经到达服务器允许的常见错误最大值,无法建立新的常见错误连接。

PostgreSQL 允许的常见错误最大客户端连接数由配置参数 max_connections ,默认值通常为 100。常见错误
复制SHOW max_connections; max_connections| ---------------+ 100 |1.2.3.4.5.那是常见错误不是意味着客户端一定可以创建 100 个并发连接呢?
并不是,因为 PostgreSQL 还有另外两个相关参数:
复制SHOW superuser_reserved_connections; superuser_reserved_connections| ------------------------------+ 3 |1.2.3.4.5.superuser_reserved_connections 参数代表了 PostgreSQL 数据库为超级用户保留的常见错误连接数,默认值为 3。常见错误
也就是常见错误说,当客户端连接数到达 max_connections - superuser_reserved_connections 时,常见错误只有超级用户才能继续创建新的常见错误连接。
复制SHOW reserved_connections; reserved_connections| --------------------+ 0 |1.2.3.4.5.reserved_connections 参数代表了 PostgreSQL 数据库为拥有 pg_use_reserved_connections 角色的网站模板常见错误用户保留的连接数,默认值为 0。常见错误这个参数是常见错误 PostgreSQL 16 新增参数。
当可用连接数大于 superuser_reserved_connections 并且小于等于 superuser_reserved_connections + reserved_connections 时,常见错误只有超级用户或者拥有 pg_use_reserved_connections 角色的用户才能继续创建新的连接。
总结一下,假设 max_connections 参数设置为 100,superuser_reserved_connections 参数设置为 3,reserved_connections 参数设置为 10。此时,客户端最多可以同时创建 100 个连接;当连接数到达 87 并且小于 97 时,只有超级用户和 pg_use_reserved_connections 角色用户可以继续创建连接;当连接数到达 97 时,只有超级用户可以继续创建连接。
解决方法我们可以利用数据库为超级用户保留的连接登录数据库,然后查看当前服务器进程情况:
复制SELECT * FROM pg_stat_activity; datid|datname |pid |leader_pid|usesysid|usename |application_name |client_addr|client_hostname|client_port|backend_start |xact_start |query_start |state_change |wait_event_type|wait_event |state |backend_xid|backend_xmin|query_id|query |backend_type | -----+--------+-----+----------+--------+--------+-----------------------------------------+-----------+---------------+-----------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------------+-------------------+------+-----------+------------+--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+ 5|postgres|19256| | 10|postgres|DBeaver 24.1.5 - Main <postgres> |127.0.0.1 | | 55986|2024-08-28 21:20:25.682 +0800| |2024-08-28 21:20:25.795 +0800|2024-08-28 21:20:25.795 +0800|Client |ClientRead |idle | | | |SHOW search_path |client backend | 5|postgres|22216| | 10|postgres|DBeaver 24.1.5 - Metadata <postgres> |127.0.0.1 | | 55987|2024-08-28 21:20:25.826 +0800| |2024-08-28 22:03:37.376 +0800|2024-08-28 22:03:37.376 +0800|Client |ClientRead |idle | | | |SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr, pg_catalog.pg_get_partkeydef(c.oid) as partition_key ¶FROM pg_catalog.pg_class c¶LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=|client backend | 5|postgres|10736| | 10|postgres|DBeaver 24.1.5 - SQLEditor <Script-2.sql>|127.0.0.1 | | 55988|2024-08-28 21:20:26.003 +0800|2024-08-28 22:03:41.802 +0800|2024-08-28 22:03:41.803 +0800|2024-08-28 22:03:41.803 +0800| | |active| |1032 | |select * from pg_stat_activity |client backend | | |20852| | | | | | | |2024-08-24 20:56:59.100 +0800| | | | | | | | | | |autovacuum launcher | | | 9236| | 10|postgres| | | | |2024-08-28 21:13:57.480 +0800| | | |Activity |LogicalLauncherMain| | | | | |logical replication launcher| | |19468| | | | | | | |2024-08-24 20:56:59.082 +0800| | | |Activity |WalWriterMain | | | | | |walwriter | | | 3524| | | | | | | |2024-08-24 20:56:58.608 +0800| | | |Activity |CheckpointerMain | | | | | |checkpointer | | | 8896| | | | | | | |2024-08-24 20:56:58.620 +0800| | | |Activity |BgwriterHibernate | | | | | |background writer |1.2.3.4.5.6.7.8.9.10.11.12.系统视图 pg_stat_activity 显示了所有后端进程的云服务器提供商信息,其中 backend_type 字段取值为 client backend 的进程对应客户端连接。通过这个视图可以了解客户端的连接情况。
如果应用程序的确需要更多的数据库连接,可以修改上面介绍的 PostgreSQL 配置参数,这些参数的修改都需要重启服务。
如果应用程序并不需要这么多连接,而是由于代码问题导致连接泄露,例如创建了数据库连接后没有正确地释放,或者数据库连接池配置不当导致打开了过多连接。这种情况就需要调整应用端代码,确保正确管理了数据库连接。
免费源码下载小米小照相机——轻便便携,记录美好瞬间(小巧玲珑,拍摄卓越。)2025-11-05 11:16
OPPOR732G全网通手机体验评测(OPPOR732G全网通手机的性能、拍照、续航等方面优势分析)2025-11-05 11:02
HTCOneMax拍照表现如何?(探索HTCOneMax相机的功能与性能)2025-11-05 10:50
电脑出现bash错误的解决方法(快速修复电脑中的bash错误)2025-11-05 10:50
G403游戏鼠标体验与评价(G403游戏鼠标的优势和特点及用户反馈)2025-11-05 10:48
解决台式电脑主机启动问题的方法(探索台式电脑主机启动故障排除的有效策略)2025-11-05 10:26
电脑检测关键信号错误及其修复方法(解决关键信号错误的有效技巧与注意事项)2025-11-05 10:26
联想电脑CPU风扇错误的解决方法(探索联想电脑CPU风扇错误原因及应对措施)2025-11-05 10:11
卡西欧自动手表的品质和功能优势(一览卡西欧自动手表的智能科技与时尚设计)2025-11-05 10:04
OPPOA57自拍效果实测(探秘OPPOA57自拍的魅力与功能)2025-11-05 09:50
荣耀WS860(适用于多种应用场景的高效稳定路由器)2025-11-05 11:21
掌握Win7系统的基本操作技巧(让您成为Win7系统的专家)2025-11-05 11:11
如何使用光驱安装系统(光驱安装系统的步骤和技巧)2025-11-05 11:10
华为电脑音响使用教程——打造完美音频体验(掌握华为电脑音响的使用技巧,享受高品质音频效果)2025-11-05 11:10
小米手机性能如何?(深入剖析小米手机的性能表现)2025-11-05 10:37
HTCOneMax拍照表现如何?(探索HTCOneMax相机的功能与性能)2025-11-05 10:15
X99装机教程(选择X99主板,为你的装机之路带来巅峰体验)2025-11-05 10:12
将MOV格式视频转换为MP4的简单方法(以MOV格式的视频为例,教你一步步将视频转换为MP4格式)2025-11-05 09:21
小新iPad电脑模式教程(快速掌握小新iPad电脑模式的使用技巧)2025-11-05 08:59
电脑挂防封条教程(轻松保护电脑安全的关键技巧)2025-11-05 08:55