Home > Database > Mysql Tutorial > postgresql server configuration

postgresql server configuration

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 14:58:42
Original
1195 people have browsed it

postgresql server configuration 1.postgres=# select distinct(context) from pg_settings; context ------------ backend --类似于sighup,更改后不会影响正在连接的会话,修改之后的新会话才会采用修改的值,这类参数很少,如log_connections user --修

postgresql server configuration

 

1.postgres=# select distinct(context) from pg_settings;

  context   

------------

 backend  --类似于sighup,更改后不会影响正在连接的会话,修改之后的新会话才会采用修改的值,这类参数很少,如log_connections

 user       --修改当前会话的参数,只在该会话生效

 internal             --数据库内部的参数,不重新编译安装不能更改,比如block_size,server_version等等。

 postmaster      --修改后,需要重启完成配置,比如shared memory

 superuser        --要修改此类参数,需要superuser,postgres用户操作

 sighup             --reload postgresql.conf就可以,修改的参数立即就会激活

三种方法重载配置文件:

1.postgres=# SELECT pg_reload_conf();

pg_reload_conf

----------------

t

2.$ ps -eaf | grep "postgres -D"

postgres 11185 1 0 22:21 pts/0 00:00:00 /home/postgres/inst/bin/postgres -D /home/postgres/data/

$ kill -HUP 11185

3.修改后,pg_ctl reload

介绍一下数据库日常设置的一些参数:

数据库连接参数:

listen_addresses = '*':数据库监听地址,设置为*表示可以监听所有IP的用户请求,比如修改为localhost,那么就只监听本地的连接请求,一般这个参数不去修改,因为有hba_conf可以做限制

max_connections:数据库的最大连接数,默认是100

superuser_reserved_connections:保留连接数,max_connections-superuser_reserved_connections,结果及时最大并发连接数。

共享内存参数:

shared_buffers:这个参数修改的话,那么需要重启数据库,共享内存,至于设置多大,这里不做研究。

log_line_prefix:日志格式参数,例如:log_line_prefix='%t:%r:%u@%d:[%p]: ',默认是空值

%t: Timestamp

%u: Database user name

%r: Remote host connection is from

%d: Database connection is to

%p: Process ID of connection

log_statement:空值记录语句的执行信息,可以设置4个值,none不记录任何语句的信息,ddl记录create,drop,alter,mod模式记录包括所有的ddl,还有数据变化的一些语句,比如更新,删除之类的,all记录所有语句。

log_min_duration_statement:记录超过这个时间值的SQL到log,默认是1000ms,-1是关闭,0是记录所有的SQL到log。

Vacuuming and statistics 的相关参数:

autovacuum:控制是否打开vacuum功能,默认on。

autovacuum_max_workers:最大autovacuum进程数

#autovacuum_naptime = 1min              # time between autovacuum runs   ---时间间隔

#autovacuum_vacuum_threshold = 50       --autovacuum操作的阀值,比如表的更改和删除超过这个值,那么进行vacuum。

#autovacuum_analyze_threshold = 50      # 同上。这里是触发analyze的值

#autovacuum_vacuum_scale_factor = 0.2  默认0.2,DML涉及的数据量超过20%也就是0.2,那么vacuum

#autovacuum_analyze_scale_factor = 0.1  # 同上,只不过是analyze操作

#autovacuum_freeze_max_age = 200000000  # 为防止事务ID的重置,在启用vacuum操作之前,表的pg_class .relfrozenxid字段的最大值,默认为200万

#autovacuum_vacuum_cost_delay = 20ms     # autovauum进程时间延迟参数

#autovacuum_vacuum_cost_limit = -1      # autovauum进程开销延迟参数,-1表示不进行开销限制

default_statistics_target:加大这个值,会加长analyze的时间,而且会增加数据库后台维护的开销,但是如果这个值太小,那么可能会得到一个差的执行计划。8.4之前默认是10,之后是100,现在可以支持1-10000,这个值直接影响柱状图信息的详细程度,当然是越详细越好,但是由此也会带来性能的开销,所以注意权衡该值。

检查点相关参数:

checkpoint_segments:这个参数影响检查点操作时间,如果上一个检查点后,事务产生的事务日志超过这个值,那么系统就再一次做一次检查点。WAL log的最大值,logfile segments 每个16M。

checkpoint_timeout:检查点执行的时间间隔

checkpoint_completion_target:检查点的完成目标,取值是0~1,默认是0.5,这个值一般不要修改,0.5表示要在checkpoint_timeout*0.5的时间内完成。

checkpoint_warning = 30s:默认30s,如果检查点实际发生的时间间隔小于改参数,则会在数据库日志中写入一条信息,如果是0,禁止写入。

wal segments至少是一个,最大不超过(2 + checkpoint_completion_target) * checkpoint_segments + 1这个数量

wal设置相关参数:

wal_buffers:默认64KB,最小32KB,事务日志缓存区,现在根据当前的服务器内存,一般都设置16MB,除非你的内存很小。

wal_sync_method:WAL写入磁盘的控制方式,参数有几个值fsync_writethrough,fdatasync,open_datasync,open_sync。linux默认是fdatasync。fsync如果是off的,那么这个设置无效。

wal_writer_delay:写日志进程的睡眠时间,进程每次写完就会睡眠改值,完了醒来继续从WAL BUFFER写入到日志文件。

#commit_delay = 0                       # range 0-100000, in microseconds   发出commit命令后,睡眠指定的该值才真正写入wal文件,算事务提交结束。默认值0

#commit_siblings = 5                    # range 1-1000  这个参数决定commit_delay 是否生效,这里默认是5,如果我们发出一个提交事务请求,而改数据库中有正在执行的事务大于或者等于5个,那么该事务睡眠commit_delay 参数指定的值,否则直接提交。

archive_mode:是否开启归档模式

archive_timeout:单位是秒,默认是0,这个是强制切换日志的时间,正常情况是写满一个,再写下一个,如果这里不为0,当前时间减去上次数据库事务日志切换的时间,大于这个值,那么就进行一次日志切换。也就是日志切换的时间间隔。

wal_level:minimal, archive, or hot_standby,有三个值,这里除了minimal,其他两个值都需要打开归档。

今天服务端配置的一些参数就介绍到这里,当然还有很多没有介绍,其实遇到相关参数可以官方文档查阅一下便知

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template