Potgresql常用配置参数解析
postgresql.conf
1.max_connections = 200 //允许的最大并发连接数
2.unix_socket_directories = ‘.’//数据库服务器监听的 Unix 套接字文件的目录列表
3.tcp_keepalives_idle = 60//设置连接空闲的时间长度,超过这个时间之后,服务器会发送 TCP keepalive 消息来检测连接的存活状态
4.tcp_keepalives_interval = 10//设置发送 TCP keepalive 消息的时间间隔(以秒为单位)
5.tcp_keepalives_count = 10//设置在空闲连接状态下重试 TCP keepalive 消息发送的次数
6.shared_buffers = 512MB //设置共享缓存区的大小 包括索引和表数据缓存
7.dynamic_shared_memory_type = posix//设置共享内存的类型。默认情况下,PostgreSQL 会使用 System V 共享内存来存储共享缓存区和其他共享内存结构,使用 ipcs -m 查看当前系统内存共享类型, mount | grep shm 查看是否启用 posix 类型
8.vacuum_cost_delay = 0// VACUUM 操作每次休眠的时间,单位是毫秒 参数的值为 0,表示 VACUUM 操作不会进行休眠
9.bgwriter_delay = 10ms//调整后台写入进程(bgwriter)的延迟的参数,它指定了多长时间后台写入进程会检查是否需要将脏数据写入磁盘。它的单位是毫秒,即 ms。该参数的默认值为 200ms。
10.bgwriter_lru_maxpages = 1000//用于调整后台写入进程(bgwriter)的行为的参数之一,它用于控制后台写入进程根据最近未访问(LRU)算法来清理共享缓存中的脏数据页。该参数指定了在一个检查点期间最多可以清理的脏数据页的数量,它的单位是页面(page),默认值为 100
11.bgwriter_lru_multiplier = 10.0
12.bgwriter_flush_after = 0
13.old_snapshot_threshold = -1
14.ackend_flush_after = 0
15.wal_level = replica//PostgreSQL 中一个用于控制 WAL(Write-Ahead Logging)记录的详细程度的参数。它的值可以是 minimal、replica 或 logical 中的一个,分别表示最小程度、要求基于副本的场景或要求基于逻辑复制的场景。其中,当 wal_level 的值设置为 replica 时,表示 WAL 日志将记录针对备库的修改,并包括在备库上执行恢复所需的所有信息
16.synchronous_commit = off//用于设置提交事务时是否等待与之关联的所有 WAL 写入完成。当该参数的值设置为 off 时,表示提交事务后不需要等待 WAL 写入完成,使得提交事务的速度变快,但对数据的可靠性和持久性会有一定的影响。
17.full_page_writes = on
18.wal_buffers = 16MB//PostgreSQL 中用于控制 WAL(Write-Ahead Logging)缓冲区大小的参数,它指定了系统用于缓存 WAL 的内存大小,以提高系统的性能。当该参数的值设置为 16MB 时,表示为 WAL 缓冲区分配了 16MB 的内存空间
19.wal_writer_delay = 10ms//控制 WAL(Write-Ahead Logging)写入程序从缓存中写入 WAL 日志文件的时间间隔。当该参数的值设置为 10ms 时,表示 WAL 写入程序每隔 10ms 将 WAL 缓存写入磁盘
20.wal_writer_flush_after = 0
21.checkpoint_timeout = 30min//控制自动执行检查点的时间间隔。当该参数的值设置为 30min 时,表示每隔约 30 分钟将自动执行一次检查点
max_wal_size = 2GB
min_wal_size = 128MB
checkpoint_completion_target = 0.05
checkpoint_flush_after = 0
random_page_cost = 1.3
log_destination = ‘csvlog’
logging_collector = on
log_truncate_on_rotation = on
log_checkpoints = on
log_connections = on
log_disconnections = on
log_error_verbosity = verbose
autovacuum = on
log_autovacuum_min_duration = 0
autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.05
autovacuum_freeze_max_age = 1500000000
autovacuum_multixact_freeze_max_age = 1600000000
autovacuum_vacuum_cost_delay = 0
vacuum_freeze_table_age = 1400000000
vacuum_multixact_freeze_table_age = 1500000000
datestyle = ‘iso, mdy’
timezone = ‘PRC’// PostgreSQL 将使用中国标准时间
lc_messages = ‘C’
lc_monetary = ‘C’
lc_numeric = ‘C’
lc_time = ‘C’
default_text_search_config = ‘pg_catalog.english’
shared_preload_libraries=‘pg_stat_statements’