购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 PostgreSQL的简单配置

本节简单介绍PostgreSQL的配置方法,更具体的配置会在后面的章节中介绍。PostgreSQL数据库的配置主要是通过修改数据目录下的postgresql.conf和pg_hba.conf文件来实现的。

2.3.1 pg_hba.conf的配置

默认创建的数据库无法接受远程连接,因为默认情况下pg_hba.conf中没有相应的配置项。我们可以在pg_hba.conf文件中加入以下命令行:


host    all             all             0/0                     md5

该命令允许任何用户远程连接本数据库,连接时需要提供密码。

pg_hba.conf文件是一个黑白名单的访问控制文件,可以控制允许哪些IP地址的机器访问数据库。

2.3.2 修改监听的IP和端口

在数据目录下编辑postgresql.conf文件,找到如下内容:


#listen_addresses = 'localhost'         # what IP address(es) to listen on;
#port = 5432                            # (change requires restart)

其中,参数“listen_addresses”表示监听的IP地址,默认是在“localhost”处监听,也就是在IP地址“127.0.0.1”上监听,这会造成远程主机无法登录该数据库,如果想从其他机器上登录该数据库,需要把监听地址改成实际网络的地址,一种简单的方法是把地址改成“*”,表示在本地的所有地址上监听,命令如下:


listen_addresses = '*'                  # what IP address(es) to listen on;
#port = 5432                            # (change requires restart)

参数“port”表示监听的数据库端口,默认为“5432”,可以使用默认设置。如果一台机器上安装了多个数据库实例(如安装了多个不同版本的PostgreSQL),可以设置为不同的端口。

对于这两个参数的修改,需要重启数据库才能生效。

2.3.3 数据库日志相关参数

下面来看看与日志相关的几个参数:

日志的收集一般是需要打开的,所以需要进行如下设置:


logging_collector = on

注意,在新版本的数据库中,以上参数默认已打开,如PostgreSQL10版本。

日志的目录一般使用默认值即可:


log_directory = 'pg_log'

在PostgreSQL10版本中,程序日志目录是在log目录下,即上述配置如下:


log_directory = 'log'                    # directory where log files are written,

日志切换和是否覆盖一般可以使用如下几种不同的方案。

方案一: 每天生成一个新的日志文件。

配置方法如下:


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

PostgreSQL10以上版本默认的日志方案是方案三,不需要再进行修改。

2.3.4 内存参数的设置

PostgreSQL安装完毕后,可以修改以下主要内存参数。

·shared_buffers:共享内存的大小,主要用于共享数据块。

·work_mem:单个SQL执行时,以及排序、Hash Join时使用的内存,SQL运行完毕后,该内存就会被释放。

shared_buffers的默认值为32MB,如果你的机器上有足够的内存,可以把这个参数设置得大一些,如可以设置为物理内存大小的四分之一,这样数据库就可以缓存更多数据块,当读取数据时,就可以从共享内存中进行读取,而不需要再从文件上去读。而work_mem设置大一些,会使排序操作效率更高。 hrgkZtqsuHrtG/RaIbIeAo41goDq9PnOhUVQaUSmn3ZoiGcMxk7dAjjSkb+L5rqq

点击中间区域
呼出菜单
上一章
目录
下一章
×