PostgreSQL教程

PostGreSql运维操作

本文主要是介绍PostGreSql运维操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

对PostGreSql进行运维操作时,必须切换到postgres用户(也可以切换到其他管理员用户)

1.PostGresql启停等运维

进入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]

2.PostGreSQL 连接数过多解决

问题原因,超过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';
这篇关于PostGreSql运维操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!