2.4 PostgreSQL的简单配置
本节将简单介绍PostgreSQL的配置方法,更具体的配置操作会在后面的章节中介绍。PostgreSQL数据库的配置主要是通过修改数据目录下的postgresql.conf文件来实现的。
2.4.1 修改监听的IP和端口
在数据目录下编辑postgresql.conf文件,找到如下内容:
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
其中,参数“listen_addresses”表示监听的IP地址,默认是在“localhost”处监听,也就是“127.0.0.1”的IP地址上监听,这会让远程的主机无法登录这台数据库,如果想从其他的机器上登录这台数据库,需要把监听地址改成实际网络的地址,一种简单的方法是,把这个地址改成“*”,表示在本地的所有地址上监听。
参数“port”表示监听的数据库端口,默认为“5432”,可以不更改。如果一台机器上安装了几个数据库实例(如安装了几个不同版本的PostgreSQL),可以设置为不同的端口。
修改了这两个参数后,需要重启数据库才能生效。
2.4.2 与数据库log相关的参数
来看看与log相关的几个参数:
日志的收集一般是要打开的,所以需要设置:
logging_collector = on
日志的目录一般使用默认值就可以了:
log_directory = 'pg_log'
日志的切换和是否选择覆盖则可以使用如下几种方案。
方案一:每天生成一个新的日志文件。
配置方法如下:
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 1d
log_rotation_size = 0
方案二:每当日志写满一定的大小(如10MB空间),则切换一个日志。
配置方法如下:
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 0
log_rotation_size = 10M
方案三:只保留7天的日志,进行循环覆盖。
配置方法如下:
log_filename = 'postgresql-%a.log' #
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 0
2.4.3 内存参数的设置
PostgreSQL安装完毕后,可以修改以下两个主要内存参数。
shared_buffers:共享内存的大小,主要用于共享数据块。
work_mem:单个SQL执行时,排序、hash join所使用的内存,SQL运行完后,内存就释放了。
shared_buffers默认值为32MB,work_mem为1MB,如果你的机器上有足够的内存,可以把这个参数改得大一些,这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读,而不需要再从文件上去读取。
work_mem设置大一些,会让排序操作快一些。