跳到主内容
数据库故障手册专业资料更新于 2026-07-286 分钟阅读

数据库连接耗尽怎么查:MySQL / PostgreSQL 只读容量脚本与排查手册

下载经过隔离多版本验证的MySQL与PostgreSQL只读容量脚本,用单行脱敏聚合核对最大连接、当前连接、状态分布和近似余量。

摘要

先判断连接上限是否真的接近耗尽,再核对连接池、事务、内存、线程、后台进程与最近变更;脚本不会终止会话、修改连接上限或自动扩容。

适用对象

MySQL与PostgreSQL DBA应用负责人值班工程师数据库服务团队
核心结论
  • MySQL卡已在8.0.46与8.4.10验证;PostgreSQL卡已在14.20—18.4验证。
  • 两张卡都只返回一行实例级聚合,不输出SQL、库表、账号、应用、地址或会话身份。
  • 近似连接余量只是当前快照,不能代替连接池、内存、事务、后台进程和时间线核对。
  • 终止连接、调整max_connections、改连接池或扩容都必须单独评估和授权。
01可用脚本

两张卡回答什么,也明确不回答什么

只做聚合容量快照,不采集SQL文本、连接身份或业务对象。

先选择与数据库引擎匹配的脚本,再按已验证版本和可见性边界解释结果;任一聚合值都不能直接转化为生产变更指令。

MySQL与PostgreSQL容量卡
引擎已验证版本聚合输出可见性边界不能据此执行
MySQL8.0.46、8.4.10当前/运行连接、历史峰值、上限、余量、拒绝计数普通已认证会话;Performance Schema关闭时返回明确状态KILL、改上限、改连接池或扩容
PostgreSQL14.20—18.4最大/保留连接、客户端连接、活动/空闲、余量缺少pg_read_all_stats时返回insufficient_visibility取消/终止backend、改上限或扩容
02排查顺序

从连接失败到可复查结论的五步

先固定错误、时间窗和影响动作,再运行与版本匹配的只读卡。得到聚合后,必须补充连接池、事务、系统资源和最近变更,最后才决定是应用修复、固定范围巡检、集群管控评估还是单独授权的生产动作。

连接容量故障分流

  1. 01

    01

    固定现象

    记录错误码、时间窗、影响动作和未受影响范围。

  2. 02

    02

    只读快照

    运行对应版本脚本,只保留单行聚合。

  3. 03

    03

    核对应用

    检查连接池上限、获取超时、泄漏候选和发布记录。

  4. 04

    04

    核对资源

    检查事务、内存、线程/后台进程和集群角色。

  5. 05

    05

    授权分流

    区分B-HC、集群评估与需另行授权的修复。

任何终止连接、参数修改、写入、切换或扩缩容都不属于公开脚本范围。

03与付费服务连接

什么时候进入巡检、集群管控或应急修复

同一份容量快照可以支持不同层级的下一步,但必须由证据范围和所需授权决定服务路径,不能把公开只读卡包装成自动修复能力。

证据到服务的最小路由
现状下一步交付物授权边界
已有脱敏快照,仍无法分级B-HC固定范围健康体检风险Top 5、证据缺口、整改顺序不自动改生产
多节点角色、路由或容量联动DMP集群管控评估拓扑与能力边界、实施前置条件不自动部署或切换
连接已影响生产且需要动作应急远程评估授权范围、动作记录与回读逐项单独授权

参考依据

以下来源用于确认市场趋势、政策背景和术语边界;具体落地方案仍以客户的数据范围、权限和交付目标为准。

常见问题

利用率达到多少就必须扩容?

没有适用于所有系统的固定阈值。要结合峰值持续时间、连接池、内存、事务、后台进程、业务增长与故障容忍度判断;公开卡不提供自动扩容结论。

为什么脚本不输出每个账号和连接?

公开入口只需要先判断实例级容量是否值得继续排查。账号、应用、地址和SQL可能涉及客户敏感信息,应在受控范围按最小权限处理。

可以根据脚本直接KILL空闲连接吗?

不可以。空闲连接可能属于连接池或业务会话;终止前还需确认所有者、事务、回滚成本、影响范围和授权。