1、修改配置文件
1.1、修改pg_hba.conf
使用initdb初始化一个数据库集簇后,如果需要进行远程连接,修改在数据目录下的pg_hba.conf(访问控制文件)中添加如下行,添加后允许任何用户远程连接本数据库
host all all 0/0 md5
1.2、修改监听端口及ip
除了修改pg_hba.conf外,一般来说,还需要修改数据目录下postgresql.conf中的"listen_addresses"与"port"参数。listen_addresses表示监听的ip地址,默认值为localhost,表示不能远程登录该数据库,为了方便,一般将它修改为:
listen_addresses="*" #what IP address(es) to listen on;
"port"表示监听的数据库端口,当我们需要自定义数据库端口时,需要修改该值,或者当服务器上存在多个实例时,需要配置多个实例的端口,防止端口冲突,数据库无法启动。
1.3、配置数据库日志参数
默认情况下,pg的日志收集参数是关闭的,即:"logging_collector = off",如果需要使用日志收集的功能,需要手动将这个参数设置为on,然后启动数据。之后数据库的日志可以在数据目录下的log目录下查看到(由"log_directory"参数控制,默认值为"log",表示日志存放在数据目录的log目录下,日志文件名由"log_filename"参数控制)。
pg12.2的默认日志方案是:
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_file_mode = 0600
log_truncate_on_rotation = off
log_rotation_age = 1d #每天生成一个新的日志
log_rotation_size = 10MB #日志写满10MB,切换一个日志
2、启动停止数据库
pg启动停止及查看数据库状态的命令:
pg_ctl -D $PGDATA status #查看数据库状态
pg_ctl -D $PGDATA start #启动数据库
pg_ctl -D $PGDATA stop #停止数据库
其中,停止数据库的命令可以使用-m指定数据库的停止方式,一般有如下三种模式:
- smart:等所有连接终止后,关闭数据库,如果客户端连接不终止,则无法关闭数据库。
命令:pg_ctl -D $PGDATA stop -m smart
- fast:快速关闭数据库,断开所有客户端连接,让已有事务回滚,然后正常关闭数据库。
命令:pg_ctl -D $PGDATA stop -m fast
- immediate:立即关闭数据库,相当于数据库进程立即停止,直接退出,下次启动数据库需要进行恢复。
命令:pg_ctl -D $PGDATA stop -m immediate
pg12.2默认的停库模式为fast。这避免了有用户连接到数据库时,系统一直等待的问题。pg9.5之前,默认是smart模式。
参考《PostgreSQL修炼之道 从小工到专家 第2版》