连接Yugabyte Cloud DB报错:剩余连接槽预留给非复制超级用户
连接Yugabyte Cloud DB时出现连接槽耗尽错误的解决方法
问题描述
连接Yugabyte Cloud DB时触发以下错误:
Error: "Remaining connection slots are reserved for non-replication superuser connections" org.postgresql.util.PSQLException: FATAL: remaining connection slots are reserved for non-replication superuser connections at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2675) ~[postgresql-42.3.5.jar:42.3.5] at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2787) ~[postgresql-42.3.5.jar:42.3.5] at org.postgresql.core.v3.QueryExecutorImpl.<init>(QueryExecutorImpl.java:173) ~[postgresql-42.3.5.jar:42.3.5] at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:290) ~[postgresql-42.3.5.jar:42.3.5] at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) ~[postgresql-42.3.5.jar:42.3.5] at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:223) ~[postgresql-42.3.5.jar:42.3.5] at org.postgresql.Driver.makeConnection(Driver.java:402) ~[postgresql-42.3.5.jar:42.3.5] at org.postgresql.Driver.connect(Driver.java:261) ~[postgresql-42.3.5.jar:42.3.5] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na] at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:159) ~[spring-jdbc-5.3.20.jar:5.3.20]
解决步骤
- 调整连接池配置:你用的是HikariCP,检查
maxPoolSize参数,把它设为低于Yugabyte Cloud实例的max_connections值(通常要预留3-5个连接给超级用户)。不同规格的实例连接上限不同,可在控制台查看实例详情确认。 - 排查连接泄漏:检查应用代码,确保所有获取的数据库连接都在使用后正确关闭(包括异常场景)。可通过Yugabyte Cloud控制台的监控面板查看当前连接数,或用超级用户登录后执行
SELECT count(*) FROM pg_stat_activity;查看连接明细,杀掉闲置超时的连接:SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND usename != 'admin'; - 升级实例规格:如果业务需求确实需要更多连接,可在Yugabyte Cloud控制台升级实例的节点规格或增加节点数量,提升
max_connections上限。 - 紧急恢复连接:如果普通用户无法连接,用超级用户(如默认的admin账号)登录,清理闲置连接后再恢复应用连接。
内容的提问来源于stack exchange,提问作者dh YB
相关产品推荐
相关产品推荐

