鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

测试PostgreSQL过程中,初始化加载数据时提示too many clients already的解决方法

问题现象描述

测试PostgreSQL过程中,在初始化过程中加载数据时,在加载数据量很大的情况下,例如加载500 warehouses的数据时,会提示“ERROR: FATAL: sorry, too many clients already”。

关键过程、根本原因分析

加载数据量比postgresql.conf配置文件的默认参数中max_connections的设置值大。

结论、解决方案及效果

可以通过将postgresql.conf配置文件中的最大连接数控制参数max_connection的值调大和将事务空闲超时时间配置项idle_in_transaction_session_timeout的值调大来解决该问题:

  1. 打开postgresql.conf文件。
    1
    vim /data/pgsql/postgresql.conf
    
  2. 按“i”进入编辑模式,将文件中的第64行改为如下信息:
    max_connections = 4096

    将第574行改为如下信息:

    idle_in_transaction_session_timeout = 20000
  3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  4. 重启数据库使修改后的配置生效。
    1
    /usr/local/pgsql/bin/pg_ctl -D /data/pgsql -l logfile restart
    

    以下路径请根据实际情况修改:

    • “/usr/local/pgsql/bin/pg_ctl”表示PostgreSQL程序的安装路径。
    • “/data/pgsql”表示PostgreSQL数据库的数据目录。