首页 > 代码库 > PostgreSQL数据库postgresql.conf部分相关参数
PostgreSQL数据库postgresql.conf部分相关参数
listen_addresses:#指定数据库用来监听客户端连接的TCP/IP地址,默认是值是* ,表示数据库在启动以后将在运行数据的机器上的所有的IP地址上监听用户请求,可以写成机器的名字,也可以写成IP地址,不同的值用逗号分开,如果被设成localhost,表示数据库只能接受本地的客户端连接请求,不能接受远程的客户端连接请求
listen_addresses = ‘0.0.0.0‘ #监听IPv4的所有IP.
port:#指定数据库监听户端连接的TCP端口。默认值是5432
max_connections :#数据库可以同时建立的最大的客户端连接的数目
max_connections = 1000#最大允许1000个连接.
superuser_reserved_connections :#为超级用户保留的可用连接数.
superuser_reserved_connections = 3#为超级用户保留3个可用连接数.
unix_socket_directory: #默认的unix socket文件放在/tmp,
unix_socket_directory = ‘/pgdata/socket_dir‘修改为$PGDATA, 以确保安全.
unix_socket_permissions:#默认的访问权限是0777,
unix_socket_permissions = 0700 #修改为0700更安全.
tcp_keepalives_idle = 60
tcp_keepalives_interval = 10
tcp_keepalives_count = 6 #空闲多少秒后,给idle的连接的客户端发送tcp的keepalives包, Linux下面默认是2小时.
shared_buffers :#共享缓存大小
shared_buffers = 32MB#默认的值为32MB,当share_buffers的值大到一定程度,瓶颈就不是内存的,而是CPU。
temp_buffers:#决定存放临时表的数据缓冲区中的数据块的个数,每个数据块的大小是8KB。临时表缓冲区存放在每个数据库进程的私有内存中,而不是存放在数据库的共享内存中
work_mem :#数据库的排序操作和哈希表使用的内存缓冲区的大小
maintenance_work_mem:#决定数据库的维护操作使用的内存空间的大小
vacuum*:#清空(垃圾回收相关参数设置)
bgwriter_delay:#bgwriter 进程唤醒周期,默认为200ms,bgwriter进程执行一次后会停顿200ms再被唤醒执行下一次操作, 当数据库的写操作很频繁的时候, 200ms可能太长, 导致其他进程需要花费过多的时间来进行bgwriter的操作.
wal_level:#数据库预写日志级别,如果需要做数据库WAL日志备份,至少需要设置成archive级别, 如果需要做hot_standby,需要设置成hot_standby当然hot_standby意味着WAL记录得更详细, 如果没有打算做hot_standby设置得越低性能越好.
wal_level = hot_standby:#设置为 hot_standby
日志输出的配置.
log_destination = ‘csvlog‘
logging_collector = on
log_directory = ‘pg_log‘
log_filename =‘postgresql-%Y-%m-%d_%H%M%S.log‘
log_file_mode = 0600
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_duration_statement:#这个参数调整的是记录执行时间超过1秒的SQL到日志中, 一般用于跟踪哪些SQL执行时间长.
log_checkpoints:#记录每一次checkpoint到日志中.
log_lock_waits = on:#锁等待打开
deadlock_timeout = 1s:#锁超时时间,记录锁等待超过1秒的操作, 一般用于排查业务逻辑上的问题.
log_statement = ‘ddl‘:#记录DDL语句, 一般用于跟踪数据库中的危险操作.
autovacuum = on:#默认autovacuum就是打开的
log_autovacuum_min_duration = 0:#记录所有的autovacuum操作.