国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PostgreSQL 連接數(shù)過多報錯(too many clients already)

這篇具有很好參考價值的文章主要介紹了PostgreSQL 連接數(shù)過多報錯(too many clients already)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

解決 PostgreSQL 連接數(shù)過多報錯的情景

一、問題描述

在使用 Navicat 連接 PostgreSQL 數(shù)據(jù)庫時,突然遭遇到了一個報錯:“FATAL: sorry, too many clients already”。這一錯誤提示表明數(shù)據(jù)庫連接數(shù)已經(jīng)達到上限,無法再創(chuàng)建新連接。為了解決這一問題,我采取了一系列查詢和配置調(diào)整的步驟,從數(shù)據(jù)庫和程序連接池兩個方面入手。

數(shù)據(jù)庫版本和程序信息:

  • 數(shù)據(jù)庫版本:PostgreSQL 11.5
查看PostgreSQL 版本
SELECT version();
  • 程序語言和框架:Java 和 Spring Boot

二、分析問題

1. 數(shù)據(jù)庫層面

1.1 查看連接數(shù)和連接狀態(tài)

通過查詢數(shù)據(jù)庫連接數(shù)量和連接狀態(tài),了解數(shù)據(jù)庫中活躍連接的數(shù)量以及每個連接的詳細信息,包括數(shù)據(jù)庫名稱、進程 ID(PID)、應(yīng)用程序名稱和連接狀態(tài)。

1.2 查看連接超時時間配置

查看數(shù)據(jù)庫中空閑連接的超時時間配置,確保連接池設(shè)置合理。

2. 程序方面

通過查看程序中的數(shù)據(jù)庫連接池配置,特別是對于使用 Hikari 連接池的情況,確認連接池的設(shè)置是否合理,以及是否需要調(diào)整連接池的參數(shù)。

三、解決問題的步驟

  1. 查詢數(shù)據(jù)庫連接數(shù)量和連接狀態(tài): 通過執(zhí)行相關(guān) SQL 查詢,了解數(shù)據(jù)庫的連接狀況。

  2. 查詢連接超時時間配置: 通過 SQL 查詢,查看數(shù)據(jù)庫中空閑連接的超時時間配置。

  3. 確認程序連接池配置: 檢查程序中使用的連接池配置,特別是 Hikari 連接池的參數(shù),調(diào)整配置以確保連接池有效管理連接。

  4. 修改空閑連接超時時間(如有需要): 如果需要,通過 SQL 命令修改數(shù)據(jù)庫中空閑連接的超時時間。

四、查詢數(shù)據(jù)庫連接數(shù)量

1. 查詢數(shù)據(jù)庫可用連接

首先,我使用以下 SQL 查詢語句查看當前數(shù)據(jù)庫的可用連接數(shù)與實際連接數(shù)的差異:

SELECT max_conn - now_conn AS resi_conn
FROM (
    SELECT setting::int8 AS max_conn, (SELECT count(*) FROM pg_stat_activity) AS now_conn
    FROM pg_settings WHERE name = 'max_connections'
) t;

這有助于了解數(shù)據(jù)庫的連接狀況,以及是否需要調(diào)整連接數(shù)上限。

2. 查詢數(shù)據(jù)庫連接狀態(tài)

為了更詳細地了解當前連接狀態(tài),我執(zhí)行了以下查詢,顯示了每個連接的數(shù)據(jù)庫名稱、進程 ID(PID)、應(yīng)用程序名稱和連接狀態(tài):

SELECT datname, pid, application_name, state
FROM pg_stat_activity;

這提供了連接池中活躍連接的詳細信息,有助于定位可能導(dǎo)致連接數(shù)過多的問題。

3. 分組查詢連接數(shù)量

通過以下查詢,我統(tǒng)計了每個數(shù)據(jù)庫的連接數(shù),這有助于發(fā)現(xiàn)是否有特定數(shù)據(jù)庫占用了過多的連接:

SELECT datname, count(0)
FROM pg_stat_activity
GROUP BY datname;

4. 根據(jù)PID關(guān)閉連接

--根據(jù)PID關(guān)閉連接
select pg_terminate_backend(pid) from pg_stat_activity;

5. 空閑連接超時時間

修改空閑連接超時時間(如有需要): 如果需要,通過 SQL 命令修改數(shù)據(jù)庫中空閑連接的超時時間。

-- 設(shè)置控制在事務(wù)中處于空閑狀態(tài)的會話的超時時間
ALTER SYSTEM SET idle_in_transaction_session_timeout = 30000;

-- 查詢控制在事務(wù)中處于空閑狀態(tài)的會話的超時時間
SHOW idle_in_transaction_session_timeout;

-- 設(shè)置控制空閑會話的超時時間
ALTER SYSTEM SET idle_session_timeout = '300s';

-- 查詢空閑會話超時時間
SHOW idle_session_timeout;

五、優(yōu)化程序連接池配置

檢查程序中使用的連接池配置,特別是對于使用 Hikari 連接池的情況。以下是一些建議的配置項:

hikari.maximum-pool-size=10
hikari.connection-timeout=30000
hikari.minimum-idle=5
hikari.max-lifetime=1800000
hikari.idle-timeout=600000

參數(shù)配置詳解:

  • hikari.maximum-pool-size: 設(shè)置連接池允許的最大連接數(shù)。建議根據(jù)實際需求適度增加或減少,確保足夠但不過多。
  • hikari.connection-timeout: 連接超時時間,定義連接在空閑狀態(tài)多久后被釋放,以確保連接資源的有效利用。
  • hikari.minimum-idle: 最小空閑連接數(shù),確保連接池始終維持一定數(shù)量的活躍連接,降低連接的創(chuàng)建和銷毀開銷。
  • hikari.max-lifetime: 連接生命周期,定義連接在被釋放前可以存在的最長時間,防止連接長時間積累導(dǎo)致資源浪費。
  • hikari.idle-timeout: 空閑連接超時時間,連接在池中空閑的最長時間,超過這個時間將被釋放。

這些參數(shù)可以根據(jù)實際需求進行調(diào)整,確保連接池能夠更好地管理和釋放連接。

通過以上步驟,我成功解決了連接數(shù)過多的報錯問題,并優(yōu)化了數(shù)據(jù)庫連接管理。希望這些詳細的思路和步驟對您在類似問題的解決中有所幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-833345.html

到了這里,關(guān)于PostgreSQL 連接數(shù)過多報錯(too many clients already)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • MySQL數(shù)據(jù)庫連接失敗,報錯:ERROR 1040 (HY000): Too many connections

    MySQL數(shù)據(jù)庫連接失敗,報錯:ERROR 1040 (HY000): Too many connections 連接MySQL突然出現(xiàn)“ERROR 1040 (HY000): Too many connections”。根據(jù)字面意思,應(yīng)該是數(shù)據(jù)庫的終端太多,下面修改mysql的配置文件解決。 MySQL默認連接數(shù)是151 臨時配置 如果在生產(chǎn)環(huán)境數(shù)據(jù)庫出現(xiàn)了最大連接數(shù)建議使用臨時

    2024年02月12日
    瀏覽(22)
  • ES執(zhí)行報錯:too_many_clause

    問題原因: bool 查詢拼接太多了,有一個拼接上限,es默認設(shè)置為1024 解決方法:

    2024年02月12日
    瀏覽(23)
  • Mysql報錯:too many connections原因及解決方法

    1、原因是mysql連接數(shù)過多 解決方案: 1、linux登錄mysql: 2、查看mysql允許的最大連接數(shù) 3、查看這次mysql服務(wù)啟動到現(xiàn)在,同一時刻最多mysql有多少連接 4、修改mysql最大連接數(shù) 5、以上步驟修改后雖然能登錄,但仍有隱患,我們應(yīng)該把那些sleep的連接殺掉 (1)查看所有連接狀態(tài)

    2024年02月10日
    瀏覽(21)
  • ssh 連接錯誤 Too many authentication failures 解決方法

    有時候使用 ssh 登錄 或者 git ssh 方式連接 時會遇到: Too many authentication failures 這個錯誤的原因是客戶端嘗試連接次數(shù)大于服務(wù)端限制的次數(shù)。 默認情況下: ssh 客戶端會按照認證順序: 1. 依次嘗試 ssh-agent 中的秘鑰和配對~/.ssh 的秘鑰對 2. 如果都失敗了會嘗試密碼登錄 如果

    2024年02月01日
    瀏覽(28)
  • 導(dǎo)入失敗,報錯:“too many filtered rows xxx, “ErrorURL“:“

    導(dǎo)入失敗,報錯:“too many filtered rows xxx, “ErrorURL“:“

    一、問題: 注:前面能正常寫入,突然就報錯,導(dǎo)入失敗,報錯:“too many filtered rows xxx, \\\"ErrorURL\\\":\\\" {\\\"TxnId\\\":769494,\\\"Label\\\":\\\"datax_doris_writer_bf176078-15d7-414f-8923-b0eb5f6d5da1\\\",\\\"TwoPhaseCommit\\\":\\\"false\\\",\\\"Status\\\":\\\"Fail\\\",\\\"Message\\\":\\\" [INTERNAL_ERROR]too many filtered rows\\\",\\\" NumberTotalRows\\\":325476,\\\"NumberLoadedRows\\\":325473,\\\"

    2024年01月18日
    瀏覽(35)
  • K8S如何部署ZooKeeper(續(xù))-- Too many connections報錯解決

    在上一篇文章中(K8S如何部署ZooKeeper以及如何進行ZooKeeper的平滑替換)我們已經(jīng)成功部署了ZooKeeper,但是真正切換時,報錯如下 在相關(guān)服務(wù)未遷移K8S時,各個服務(wù)都是散落在不同的服務(wù)器上的。而當遷移到K8S時,為了方便管理,對服務(wù)器進行了重新規(guī)劃,同一個項目組使用相

    2024年02月01日
    瀏覽(19)
  • dataset 報錯:raise keyerror (key) from err 、too many indexers

    【1】原始代碼: 在之后訓(xùn)練過程中,使用dataloader 在for batch 的時候出現(xiàn)報錯: raise keyerror (key) from err 【解釋】:該報錯的原因是存在超過范圍的索引 【原因】:

    2024年02月16日
    瀏覽(20)
  • 機器學(xué)習(xí)報錯解決2——ValueError: too many values to unpack (expected 3)

    機器學(xué)習(xí)報錯解決2——ValueError: too many values to unpack (expected 3)

    參考資料:蔚藍呆鳥 在我學(xué)習(xí)Pytorch的PIL模塊的過程中,運行了如下代碼: 大致意思是將一張RGB圖片分成R、G、B三個通道,并分別將每個通道的圖片保存下來。 但是出現(xiàn)了如下的報錯: ValueError: too many values to unpack (expected 3) 翻譯一下就是用來接收的變量數(shù)與函數(shù)需要接收的

    2024年02月02日
    瀏覽(31)
  • conda出現(xiàn)http429報錯:CondaHTTPError: HTTP 429 TOO MANY REQUESTS for url <xxx>

    我的報錯信息如下: 在報錯的第一行我們可以看到是url:https://mirrors. ustc .edu.cn/anaconda/pkgs/main/linux-64/current_repodata.json有問題,只要 把和ustc相關(guān)的源刪掉 就好了,步驟如下: 查看該環(huán)境下的所有channel (channel就是源,用來找你要安裝的包的) 執(zhí)行命令后,我的電腦上顯示:

    2024年04月27日
    瀏覽(19)
  • 【OpenCV實現(xiàn)圖像:用Python生成圖像特效,報錯ValueError: too many values to unpack (expected 3)】

    【OpenCV實現(xiàn)圖像:用Python生成圖像特效,報錯ValueError: too many values to unpack (expected 3)】

    Python是一種功能強大的編程語言,也是圖像處理領(lǐng)域中常用的工具之一。通過使用Python的圖像處理庫(例如Pillow、OpenCV等),開發(fā)者可以實現(xiàn)各種各樣的圖像特效。這些特效包括但不限于:濾鏡效果(如黑白、模糊、銳化等)、顏色轉(zhuǎn)換、邊緣檢測、形狀識別、圖像合成和增

    2024年02月06日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包