对PostGreSql进行运维操作时,必须切换到postgres用户(也可以切换到其他管理员用户)
进入postgresql的bin目录下
启动命令
./pg_ctl start -D pg的data文件夹所在目录
一、启停方法 两种方法 1、直接运行postgres进程启动; 2、使用pg_ctl命令启动 postgres -D /home/osdba/pgdata & 二、停止数据库的三种模式 smart shutdown:智能关机模式。不接受新的连接,且等已有连接全部结束后,关闭数据库。 fast shutdown:快速关闭模式,不允许有新的连接,向所有活跃的服务进程发送sigterm信号,让 他们立刻退出,然后等所有子进程结束并关闭数据库。如果数据库正处于备 份状态,立刻终止备份。 immediate shutdown: 立即关闭模式,所有进程立即退出,并不会妥善关闭数据库系统,下次启动时数据库会重放WAL日志进行恢复。紧急时使用。 sigterm : 此信号smart shutdown关机模式 sigint : fast shutdown关机模式 sigquit : immediate shutdown关机模式 pg_ctl stop -D datadir -m smart pg_ctl stop -D datadir -m fast pg_ctl stop -D datadir -m immediate 二、pg_ctl功能 1、初始化postgresSQL数据库实例。 2、启动、终止或重启 3、查看服务状态 4、让数据库实例重新读取配置文件 初始化postgresql数据库实例命令: pg_ctl init[db] [-s] [-D datadir] [-o options] -s 只打印错误和警告信息 -D datadir:指定数据库实例的数据目录 -o options:为直接传递给initdb命令的参数,具体可见initdb 命令的帮助。 -c 提高服务器的软限制(ulimit -c),尝试允许数据库实例在异常时产生一个coredump文件,以便于问题定位和故障分析。 pg_ctl start -w -D /home/osdba/pgdata 三、启动postgresSQL 数据库的命令如下: pg_ctl start [-w] [-t seconds ] [-s] [-D datadir] [-l filename] [-o options] [-p path] [-c] -w 等待启动完成。 -t 等待启动完成的秒数 默认60s -s 只打印错误和警告信息,不打印提示性信息。 -D datadir:指定数据库实例的数据目录。 -l 把服务器日志输出附加在 filename 文件上,不存在则创建。 -o options: 声明要直接传递给postgres的选项 -p path:指定postgres可执行文件的位置。默认执行文件和pg_ctl相同目录。 四、停止postgresql数据库命令如下: pg_ctl stop [-w] [-t seconds] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] -W 不等数据库停下来,命令就返回 -m 指定停止模式 五、让数据库实例重新读取配置文件的命令如下: pg_ctl reload [-s] [-D datadir] 六、查询数据库实例状态的命令: pg_ctl status [-D datadir]
问题原因,超过PG库设置的最大连接数(默认是100) 解决方案,在在postgresql.conf(pg对应的data目录下)中设置: 修改max_connections = 1000 想要此配置文件生效需要重启PG库。 在安装目录的bin目录下,能看到pg_ctl 以数据库管理员身份运行 ./pg_ctl restart -D pg的data目录 然后就可以生效啦 查看当前最大连接数以及相关信息 show max_connections; SELECT COUNT(*) from pg_stat_activity; select min_val, max_val from pg_settings where name='max_connections';