今天遇到一个问题,就是
pg
一直报错,说有太多的客户端
连接
到
数据库
上面。但现在不知道是什么程序
连接
。
pg
默认的max_connection是100,我并没有修改过,以为平时公司内部用,应该够了,但现在貌似这100个
连接
都被消耗掉。在网上google了一下,发现用下面的SQL,居然可以查看所有
连接
的状况:
select * from
pg
_stat_activity;
结果集会显示出当前
连接
的数据...
在阿里云安装了
postgresql
以后,上班时间
连接
公司网络,本地
连接
pg
数据库
,隔几分钟就会自动
断开
连接
,很浪费开发效率,
比较郁闷的是,下班时间
连接
家里的网络就没有问题,
研究了一段时间后,最终通过设置TCP的keepalive让问题得到解决
[root@localhost ~]# sysctl -A | grep net.ipv4.tcp_keepalive
sysctl: read...
SELECT
pg
_terminate_backend(
pg
_stat_activity.pid)
FROM
pg
_stat_activity
WHERE datname = 'datbase_name'
AND pid <>
pg
_backend_pid();
SELECT
pg
_terminate_backend(
pg
_stat_activity.pid)
FROM
pg
_st...
工作中每当遇到要删库(得到允许的前提下)的操作时,总会报错,提示
连接
的人数过多而无法删除,这个时候就需要清除
连接
数来实现删除操作。
以下就是清除
连接
数的方法
SELECT
pg
_terminate_backend(
pg
_stat_activity.pid)
FROM
pg
_stat_activity
WHERE datname='要清除的的
数据库
名' AND pid<>
pg
_backend_pid();
pg
_termina
PostgreSQL
连接
数据库
的两种方式
PostgreSQL
在安装时自带了
pg
Admin和psql,
pg
Admin是可视化工具,psql是命令行工具。虽然
pg
Admin操作起来会更加直观简单,但是在restore和backup db的时候,效率和性能会比较低下,如果db过于庞大,还会导致
pg
Admin内存溢出。
推荐使用psql来
连接
数据库
进行备份和恢复db,同样大小的db,使用psql来r...