测试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的值调大来解决该问题:
- 打开postgresql.conf文件。
1
vim /data/pgsql/postgresql.conf
- 按“i”进入编辑模式,将文件中的第64行改为如下信息:
max_connections = 4096
将第574行改为如下信息:
idle_in_transaction_session_timeout = 20000
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 重启数据库使修改后的配置生效。
1
/usr/local/pgsql/bin/pg_ctl -D /data/pgsql -l logfile restart
以下路径请根据实际情况修改:
- “/usr/local/pgsql/bin/pg_ctl”表示PostgreSQL程序的安装路径。
- “/data/pgsql”表示PostgreSQL数据库的数据目录。
父主题: 故障排除