当前位置:Gxlcms > 数据库问题 > Postgresql 配置文件详解

Postgresql 配置文件详解

时间:2021-07-01 10:21:17 帮助过:3人阅读

八、事务日志预写  

full_page_writes (boolean)

这个参数只能在postgresql.conf文件中被设置。默认值是on。打开这个参数,可以提高数据库的可靠性,减少数据丢失的概率,但是会产生过多的事务日志,降低数据库的性能。 即 服务器在checkpoint之后在对页面的第一次写时将整个页面写到wal里面。


wal_buffers (integer) 这个参数只有在启动数据库时,才能被设置。默认值是8。它指定事务日志缓冲区中包含的数据块的个数,每个数据块的大小是8KB,所以默认的事务日志缓冲区的大小是8*8=64KB。事务日志缓冲区位于数据库的共享内存中。即 放在共享内存里用于wal 数据的磁盘页面缓冲区的数目,最小32kb,-1表示基于share buffer的设置。
wal_writer_delay (integer) 这个参数只能在postgresql.conf文件中被设置。它决定写事务日志进程的睡眠时间。WAL进程每次在完成写事务日志的任务后,就会睡眠wal_writer_delay指定的时间,然后醒来,继续将新产生的事务日志从缓冲区写到WAL文件中。单位是毫秒(millisecond),默认值是200。 即 每隔多长时间进行一次写操作。


commit_delay (integer)

这个参数可以在任何时候被设置。它设定事务在发出提交命令以后的睡眠时间,只有在睡眠了commit_delay指定的时间以后,事务产生的事务日志才会被写到事务日志文件中,事务才能真正地提交。增大这个参数会增加用户的等待时间,但是可以让多个事务被同时提交,提高系统的性能。如果数据库中的负载比较高,而且大部分事务都是更新类型的事务,可以考虑增大这个参数的值。下面的参数commit_siblings会影响commit_delay是否生效。默认值是0,单位是微秒(microsecond)。0表示无延迟。即 向WAL缓冲区写入记录和将缓冲区刷新到磁盘上之间的时间延迟。


commit_siblings (integer)

这个参数可以在任何时候被设置。这个参数的值决定参数commit_delay是否生效。假设commit_siblings的值是5,如果一个事务发出一个提交请求,此时,如果数据库中正在执行的事务的个数大于或等于5,那么该事务将睡眠commit_delay指定的时间。如果数据库中正在执行的事务的个数小于5,这个事务将直接提交。默认值是5。即 在commit_delay时间内,最少打开的并发事务数(1-1000);        #wal_level = minimal        预写日志模式                                                    # minimal, archive, hot_standby, or logical                                         # (change requires restart) #fsync = on                          设置同步方式                                            # turns forced synchronization on or off #synchronous_commit = on          如果磁盘的IOPS一般,建议使用异步提交来提高性能,但是数据库crash或操作系统crash时,最多可能丢失2*wal_writer_delay时间段产生的事务日志(在wal buffer中)                                               # synchronization level;                                         # off, local, remote_write, or on #wal_sync_method = fsync        用来向磁盘强制更新wal数据的方法。如果fsync 是关闭的,那这个设置就是无关无效的。                                                # the default is the first option                                         # supported by the operating system:                                         #   open_datasync(用O_DSYNC选项的open()打开WAL文件)                                         #   fdatasync (default on Linux) 每次提交的时候都调用fdatasync()                                         #   fsync 每次提交的时候都调用fsync                                         #   fsync_writethrough每次提交的时候都调用fsync(),强制写出任何磁盘写缓冲区                                         #   open_sync 用O_DSYNC选项的open()打开WAL文件 #wal_log_hints = off                                                            # also do full page writes of non-critical updates  (change requires restart)   九、   十、检查点Checkpoints checkpoint_segments (integer) in logfile segments, min 1, 16MB each 这个参数只能在postgresql.conf文件中被设置。默认值是3。它影响系统何时启动一个检查点操作。如果上次检查点操作结束以后,系统产生的事务日志文件的个数超过checkpoint_segments的值,系统就会自动启动一个检查点操作。增大这个参数会增加数据库崩溃以后恢复操作需要的时间。即 最大多少大小的段发生一次checkpoint,等于shared_buffers除以单个wal segment的大小。
checkpoint_timeout (integer) range 30s-1h

这个参数只能在postgresql.conf文件中被设置。单位是秒,默认值是300。它影响系统何时启动一个检查点操作。如果现在的时间减去上次检查点操作结束的时间超过了checkpoint_timeout的值,系统就会自动启动一个检查点操作。增大这个参数会增加数据库崩溃以后恢复操作需要的时间。即 最大多长时间发生一次checkpoint


checkpoint_completion_target (floating point)

这个参数控制检查点操作的执行时间。合法的取值在0到1之间,默认值是0.5。不要轻易地改变这个参数的值,使用默认值即可。 这个参数只能在postgresql.conf文件中被设置。 #checkpoint_warning = 30s   十一、磁盘 Disk #temp_file_limit = -1                   # limits per-session temp file space                                                        # in kB, or -1 for no limit 每个会话的临时文件空间(kb),-1 表示无限制   十二、归档模式Archiving

archive_mode (boolean)

这个参数只有在启动数据库时,才能被设置。默认值是off。它决定数据库是否打开归档模式。


archive_dir (string)
这个参数只有在启动数据库时,才能被设置。默认值是空串。它设定存放归档事务日志文件的目录。

archive_timeout (integer)

这个参数只能在postgresql.conf文件中被设置。默认值是0。单位是秒。如果archive_timeout的值不是0,而且当前时间减去数据库上次进行事务日志文件切换的时间大于archive_timeout的值,数据库将进行一次事务日志文件切换。一般情况下,数据库只有在一个事务日志文件写满以后,才会切换到下一个事务日志文件,设定这个参数可以让数据库在一个事务日志文件尚未写满的情况下切换到下一个事务日志文件。 十三、优化器参数QUERY TUNING 1、存取方法参数 Planner Method Configuration 下列参数控制查询优化器是否使用特定的存取方法。除非对优化器特别了解,一般情况下,使用它们默认值即可。 enable_bitmapscan (boolean) 打开或者关闭规划器对位图扫描规划类型的使用 。默认值是 on。 enable_hashagg (boolean) 打开或者关闭查询规划器对散列聚集规划类型的使用。默认值是 on。 enable_hashjoin (boolean) 打开或者关闭查询规划器对散列连接规划类型的使用。默认值是 on。 enable_indexscan (boolean) 打开或者关闭查询规划器对索引扫描规划类型的使用。默认值是 on。 enable_mergejoin (boolean) 打开或者关闭查询规划器对合并连接规划类型的使用。默认值是 on。 enable_nestloop (boolean) 打开或者关闭查询规划器对嵌套循环连接规划类型的使用。默认值是 on。 enable_seqscan (boolean) 打开或者关闭查询规划器对顺序扫描规划类型的使用。默认值是 on。 enable_sort (boolean) 打开或者关闭查询规划器使用明确的排序步骤。默认值是 on。 enable_tidscan (boolean) 打开或者关闭查询规划器对TID扫描规划类型的使用。默认值是 on。   2、 优化器成本常量 Planner Cost Constants

优化器用一个正的浮点数来表示不同的查询计划的执行成本,每个基本的数据库操作都会被赋给一个确定的成本常量,优化器根据每个基本操作的执行成本来计算每个查询计划的执行成本。不要轻易地改变下面的参数的值,使用它们的默认值即可。


seq_page_cost (floating point)

设置从数据文件上顺序读取一个数据块的执行成本。默认值是1.0。


random_page_cost (floating point)

设置从数据文件上随机读取一个数据块的执行成本。默认值是4.0。

cpu_tuple_cost (floating point)

设置处理每一个数据行的执行成本。默认值是0.01。


cpu_index_tuple_cost (floating point)

设置在扫描索引的过程中处理每一个索引项的执行成本。默认值是0.005。


cpu_operator_cost (floating point)

设置处理每一个运算符或函数的执行成本。默认值是0.0025。


effective_cache_size (integer)

设置单个查询可以使用的数据缓冲区的大小。默认值是128MB。 3、查询优化 Genetic Query Optimizer

下列参数控制优化器使用的遗传算法。除非对遗传算法特别了解,一般情况下,使用它们默认值即可。

geqo (boolean)

打开或者关闭遗传优化器。默认值是on。


geqo_threshold (integer)

确定使用遗传优化器的查询类型。默认值是12。如果FROM子句中引用的的表的数目超过geqo_threshold的值,就会使用遗传优化器。对于简单的查询使用穷举优化器。


geqo_effort (integer)

控制遗传优化器在生成查询计划需要的时间和查询计划的有效性之间做一个折中。有效的取值范围是1到 10。默认值是5。值越大,优化器花在选择查询计划的上的时间越长,同时找到一个最优的查询计划的可能性就越大。系统通常不直接使用geqo_effort的值,而是使用它的值来计算参数geqo_pool_size和geqo_generations的默认。


geqo_pool_size (integer)

控制遗传优化器的池(pool)大小。默认值是0。池大小是遗传群体中的个体数目。至少是2,典型的取值在10和1000之间。如果参数的值是0,系统会自动根据geqo_effort的值和查询中引用的表的个数选择一个默认值。


geqo_generations (integer)

控制遗传优化器的代(generation)的大小。默认值是0。代是遗传算法的迭代次数。至少是1,典型的取值范围与池的取值范围相同。如果参数的值是0,系统会自动根据geqo_pool_size的值和选择一个默认值。


geqo_selection_bias (floating point)

控制遗传优化器的代选择偏差(selection bias)的大小。默认值是2。取值范围在1.50到2.00之间。   4、其它优化器参数 Other Planner Options

default_statistics_target (integer)

设置默认的收集优化器统计数据的目标值。它的值越大,ANALYZE操作的执行的时间越长,扫描的数据行的个数也就越多,得到的优化器统计数据就越准确。也可以使用命令ALTER TABLE ... ALTER COLUMN ... SET STATISTICS来为表的每个列设置一个单独的统计数据目标值,这个值的作用与参数default_statistics_target是一样,它只影响相关的列的统计数据收集过程。默认值是10。


constraint_exclusion (boolean)

如果该参数的值是on,查询优化器将使用表上的约束条件来优化查询。如果它的值是off,查询优化器不会使用表上的约束条件来优化查询。默认值是off。 #cursor_tuple_fraction = 0.1            # range 0.0-1.0 #from_collapse_limit = 8 #join_collapse_limit = 8                   # 1 disables collapsing of explicit                                                             # JOIN clauses 十四、数据库运行日志配置参数 1、Where to Log   log_destination = ‘stderr‘              # Valid values are combinations of                                         # stderr, csvlog, syslog, and eventlog,                                         # depending on platform.  csvlog                                         # requires logging_collector to be on.   # This is used when logging to stderr: logging_collector = on                  # Enable capturing of stderr and csvlog                                         # into log files. Required to be on for                                         # csvlogs.                                         # (change requires restart) # These are only used if logging_collector is on: log_directory (string)

这个参数只能在postgresql.conf文件中被设置。它决定存放数据库运行日志文件的目录。默认值是pg_log。可以是绝对路径,也可是相对路径(相对于数据库文件所在的路径)。


log_filename (string)

它决定数据库运行日志文件的名称。默认值是postgresql-%Y-%m-%d_%H%M%S.log。它的值可以包含%Y、%m、%d、%H、%M和%S这样的字符串,分别表示年、月、日、小时、分和秒。 如果参数的值中没有指定时间信息(没有出现%Y、%m、%d、%H、%M和%S中的任何一个),系统会自动在log_filename值的末尾加上文件创建的时间作为文件名,例如,如果log_filename的值是 server_log,那么在Sun Aug 29 19:02:33 2004 MST被创建的日志文件的名称将是server_log.1093827753,1093827753是Sun Aug 29 19:02:33 2004 MST在数据库内部的表示形式。这个参数只能在postgresql.conf文件中被设置。


log_rotation_age (integer)

它决定何时创建一个新的数据库日志文件。单位是分钟。默认值是0。如果现在的时间减去上次创建一个数据库运行日志的时间超过了log_rotation_age的值,数据库将自动创建一个新的运行日志文件。如果它的值是0,该参数将不起任何作用。这个参数只能在postgresql.conf文件中被设置。


log_rotation_size (integer)

这个参数只能在postgresql.conf文件中被设置。它决定何时创建一个新的数据库日志文件。单位是KB。默认值是10240。如果一个日志文件写入的数据量超过log_rotation_size的值,数据库将创建一个新的日志文件。如果它的值被设为0,该参数将不起任何作用。


log_truncate_on_rotation (boolean)

系统在创建一个新的数据库运行日志文件时,如果发现存在一个同名的文件,当log_truncate_on_rotation的值是on时,系统覆盖这个同名文件。当log_truncate_on_rotation的值是off时,系统将重用这个同名文件,在它的末尾添加新的日志信息。另外要注意的是,只有在因为参数log_rotation_age起作用系统才创建新的日志文件的情况下,才会覆盖同名的日志文件。因为数据库重新启动或者因为参数log_rotation_size起作用而创建新的日志文件,不会覆盖同名的日志文件,而是在同名的日志文件末尾添加新的日志信息。这个参数只能在postgresql.conf文件中被设置。默认值是off。


例如,将这个参数设为on,将log_rotation_age设为60,将同时将log_filename设为postgresql-%H.log,系统中一共将只有24个日志文件,它们会被不断地重用,任何时刻,系统中最多只有最近24小时的日志信息。   # These are relevant when logging to syslog: #syslog_facility = ‘LOCAL0‘ #syslog_ident = ‘postgres‘   # This is only relevant when logging to eventlog (win32): #event_source = ‘PostgreSQL 2、When to Log   client_min_messages (string)

控制发送给客户端的消息级别。合法的取值是DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、LOG、NOTICE、WARNING、ERROR、FATAL和PANIC,每个级别都包含排在它后面的所有级别中的信息。级别越低,发送给客户端的消息就越少。 默认值是NOTICE。这个参数可以在任何时候被设置。


log_min_messages (string)

控制写到数据库日志文件中的消息的级别。合法的取值是DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、INFO、NOTICE、WARNING、ERROR、 LOG、FATAL和PANIC,每个级别都包含排在它后面的所有级别中的信息。级别越低,数据库运行日志中记录的消息就越少。默认值是NOTICE。只有超级用户才能修改这个参数。只有超级用户才能设置这个参数。


log_error_verbosity (string)

控制每条日志信息的详细程度。合法的取值是TERSE、DEFAULT和VERBOSE(每个取值都比它前面的取值提供更详细的信息)。只有超级用户才能修改这个参数。默认值是DEFAULT。


log_min_error_statement (string)

控制日志中是否记录导致数据库出现错误的SQL语句。合法的取值是DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、INFO、NOTICE、WARNING、ERROR、 LOG、FATAL和PANIC,每个级别都包含排在它后面的所有级别。默认值是ERROR。只有超级用户才能修改这个参数。  

消息严重级别

严重级别
用法

DEBUG1..DEBUG5
报告详细的调试信息。

INFO
报告用户可能需要的信息。

NOTICE
报告对用户有用的信息。

WARNING
报告警告信息。

ERROR
报告错误信息。

LOG
报告对数据库管理员有用的信息, 例如,检查点操作统计信息。

FATAL
报告导致当前会话被终止的错误信息。

PANIC 报告导致整个数据库被关闭的错误信息。 3、What to Log

debug_print_parse (boolean)
debug_print_rewritten (boolean)
debug_print_plan (boolean)
debug_pretty_print (boolean)

这些参数控制数据库是否输出运行时的调试信息。这些参数的默认值是off。这些参数可以被任何用户设置。


log_checkpoints (boolean)

控制是否及记录检查点操作信息。默认值是off。这个参数只能在postgresql.conf文件中被设置。必须重启数据库才能生效。


log_connections (boolean)

控制是否及记录客户端连接请求信息。默认值是off。这个参数只能在postgresql.conf文件中被设置。必须重启数据库才能生效。


log_disconnections (boolean)

控制是否记录客户端结束连接信息。默认值是off。这个参数只能在postgresql.conf文件中被设置。


log_duration (boolean)

控制是否记录每个完成的SQL语句的执行时间。只有超级用户才能修改这个参数。默认值是off。对于使用扩展协议与数据库通信的客户端,会记载Parse、Bind和Execute的执行时间。


log_hostname (boolean)

控制是否及记录客户端的主机名。默认值是off。如果设为on,可能会影响数据库的性能,因为解析主机名可能需要一定的时间。这个参数只能在postgresql.conf文件中被设置。这个参数只能在postgresql.conf文件中被设置。


log_line_prefix (string)

控制每条日志信息的前缀格式。默认值是空串。它的格式类似c语言中printf函数的format字符串。这个参数只能在postgresql.conf文件中被设置。 log_line_prefix = ‘< %m >‘                      # special values: 转义序列 #   %a = application name #   %u = user name  用户名 #   %d = database name  数据库名 #   %r = remote host and port  客户端机器名或IP地址,还有客户端端口 #   %h = remote host  客户端机器名或IP地址 #   %p = process ID  进程ID #   %t = timestamp without milliseconds  带微秒的时间 #   %m = timestamp with milliseconds  不带微秒的时间 #   %i = command tag  命令标签: 会话当前执行的命令类型 #   %e = SQL state #   %c = session ID 会话ID #   %l = session line number 每个会话的日志编号,从1开始 #   %s = session start timestamp 进程启动时间 #   %v = virtual transaction ID  虚拟事务ID (backendID/localXID) #   %x = transaction ID (0 if none) 事务ID (0表示没有分配事务ID) #   %q = stop here in non-session 不产生任何输出。如果当前进程是backend进程,忽略这个转义序列,继续处理后面的转义序列。如果当前进程不是backend进程,忽略这个转义序列和它后面的所有转义序列。 #    processes #   %%     ‘%‘ 字符%

log_lock_waits (boolean)

如果一个会话等待某个类型的锁的时间超过deadlock_timeout的值,该参数决定是否在数据库日志中记录这个信息。默认值是off。只有超级用户才能修改这个参数。


log_statement (string)

控制记录哪种SQL语句的执行信息。有效的取值是none、ddl、mod和all。默认值是none。ddl包括所有数据定义语句,如CREATE、ALTER和DROP语句。mod包括所有ddl语句和更新数据的语句,例如INSERT、UPDATE、DELETE、TRUNCATE、 COPY FROM、PREPARE和 EXECUTE。All包括所有的语句。只有超级用户才能修改这个参数。


log_temp_files (integer)

控制是否记录临时文件的删除信息。单位是KB。0表示记录所有临时文件的删除信息。正整数表示只记录大小比log_temp_files的值大的临时文件的删除信息。-1表示不记录任何临时文件删除信息。默认值是-1。这个参数可以在任何时候被设置。


log_timezone (string)

设置数据库日志文件在写日志文件时使用的时区。默认值是unknown,意识是使用操作系统的时区。这个参数只能在postgresql.conf文件中被设置   十五、数据库运行统计相关参数RUNTIME STATISTICS 下面的参数控制是否搜集特定的数据库运行统计数据: ---Query/Index Statistics Collector----   track_activities (boolean)

是否收集每个会话的当前正在执行的命令的统计数据,包括命令开始执行的时间。默认值是on。只有超级用户才能修改这个参数。


track_counts (boolean)

是否收集数据库活动的统计数据。默认值是on。只有超级用户才能修改这个参数。   #track_io_timing = off #track_functions = none                 # none, pl, all #track_activity_query_size = 1024       # (change requires restart) #update_process_title = on #stats_temp_directory = ‘pg_stat_tmp‘   ---统计监测Statistics Monitoring--   log_statement_stats (boolean)
log_parser_stats (boolean)
log_planner_stats (boolean)
log_executor_stats (boolean) 这些参数决定是否在数据库的运行日志里记载每个SQL语句执行的统计数据。如果log_statement_stats的值是on,其它的三个参数的值必须是off。所有的这些参数的默认值都是off。log_statement_stats报告整个语句的统计数据,log_parser_stats记载数据库解析器的统计数据,log_planner_stats报告数据库查询优化器的统计数据,log_executor_stats报告数据库执行器的统计数据。只有超级用户才能修改这些参数。 十六、自动垃圾收集相关参数AUTOVACUUM PARAMETERS 下面的参数控制自动垃圾收集的行为:  

autovacuum (boolean)

控制是够打开数据库的自动垃圾收集功能。默认值是on。如果autovacuum被设为on,参数track_counts(参考本章10.9)也要被设为on,自动垃圾收集才能正常工作。注意,即使这个参数被设为off,如果事务ID回绕即将发生,数据库会自动启动一个垃圾收集操作。这个参数只能在文件postgresql.conf中被设置。


log_autovacuum_min_duration (integer)

单位是毫秒。如果它的值为0,所有的垃圾搜集操作都会被记录在数据库运行日志中,如果它的值是-1,所有的垃圾收集操作都不会被记录在数据库运行日志中。如果把它的值设为250毫秒,只要自动垃圾搜集发出的VACUUM和ANALYZE命令的执行时间超过250毫秒,VACUUM和ANALYZE命令的相关信息就会被记录在数据库运行日志中。默认值是-1。这个参数只能在 postgresql.conf中被设置。


autovacuum_max_workers (integer)

设置能同时运行的最大的自动垃圾收集工作进程的数目。默认值是3。这个参数只能在文件postgresql.conf中被设置。


autovacuum_naptime (integer)

设置自动垃圾收集控制进程的睡眠时间。单位是秒,默认值是60。这个参数只能在文件postgresql.conf中被设置。


autovacuum_vacuum_threshold (integer)

设置触发垃圾收集操作的阈值。默认值是50。这个参数只能在文件postgresql.conf中被设置。只有一个表上被删除或更新的记录的数目超过了autovacuum_vacuum_threshold的值,才会对这个表执行垃圾收集操作。


autovacuum_analyze_threshold (integer)

设置触发ANALYZE操作的阈值。默认值是50。这个参数只能在文件postgresql.conf中被设置。只有一个表上被删除、插入或更新的记录的数目超过了autovacuum_analyze_threshold的值,才会对这个表执行ANALYZE操作。


autovacuum_vacuum_scale_factor (floating point)

这个参数与何时对一个表进行垃圾收集操作相关。默认值是0.2。这个参数只能在文件postgresql.conf中被设置。


autovacuum_analyze_scale_factor (floating point)

这个参数与何时对一个表进行ANALYZE操作相关。默认值是0.1。这个参数只能在文件postgresql.conf中被设置。 autovacuum_freeze_max_age = 200000000  # maximum XID age before forced vacuum # (change requires restart) 指定表上事务的最大年龄,默认2亿,达到这个阀值将触发 autovacuum进程,从而避免 wraparound. 表上的事务年龄可通过 pg_class.relfrozenxid查询   autovacuum_multixact_freeze_max_age = 400000000        # maximum multixact age # before forced vacuum # (change requires restart)   autovacuum_vacuum_cost_delay = 20ms    # default vacuum cost delay for # autovacuum, in milliseconds; # -1 means use vacuum_cost_delay 当 autovacuum进程即将执行时,对vacuum执行cost进行评估,如果超过 autovacuum_vacuum_cost_limit的值时,则延迟,这个延迟的时间值即为改成的值.   autovacuum_vacuum_cost_limit = -1      # default vacuum cost limit for # autovacuum, -1 means use # vacuum_cost_limit 这个值 为 autovacuum进程的评估阀值,默认值为-1,表使用 vacuum_cost_limit值,如果在执行 autovacuum进程期间评估的 cost 超过 autovacuum_vacuum_cost_limit,则 autovacuum进程则会休眠   十七、锁管理LOCK MANAGEMENT

deadlock_timeout(integer)

设置死锁超时检测时间。单位是微秒,默认值是1000。死锁检测是一个消耗许多 CPU资源的操作。这个参数的值不能太小。在数据库负载比较大的情况下,应当增大这个参数的值。


max_locks_per_transaction(integer)

这个参数控制每个事务能够得到的平均的对象锁的个数。默认值是64。数据库在启动以后创建的共享锁表的最大可以保存max_locks_per_transaction * (max_connections + max_prepared_transactions)个对象锁。单个事务可以同时获得的对象锁的数目可以超过max_locks_per_transaction的值,只要共享锁表中还有剩余空间。每个锁占用270个字节的共享内存 # lock table slots. #max_pred_locks_per_transaction = 64    # min 10                                         # (change requires restart)   十八、客户端连接管理CLIENT CONNECTION DEFAULTS   # - Statement Behavior -   #search_path = ‘"$user",public‘         # schema names #default_tablespace = ‘‘                # a tablespace name, ‘‘ uses the default #temp_tablespaces = ‘‘                  # a list of tablespace names, ‘‘ uses                                         # only default tablespace #check_function_bodies = on #default_transaction_isolation = ‘read committed‘ #default_transaction_read_only = off #default_transaction_deferrable = off #session_replication_role = ‘origin‘ #statement_timeout = 0                  # in milliseconds, 0 is disabled #lock_timeout = 0                       # in milliseconds, 0 is disabled #vacuum_freeze_min_age = 50000000 #vacuum_freeze_table_age = 150000000 #vacuum_multixact_freeze_min_age = 5000000 #vacuum_multixact_freeze_table_age = 150000000 #bytea_output = ‘hex‘                   # hex, escape #xmlbinary = ‘base64‘ #xmloption = ‘content‘ #gin_fuzzy_search_limit = 0   # - Locale and Formatting -   datestyle = ‘iso, mdy‘ #intervalstyle = ‘postgres‘ timezone = ‘PRC‘ #timezone_abbreviations = ‘Default‘     # Select the set of available time zone                                         # abbreviations.  Currently, there are                                         #   Default                                         #   Australia (historical usage)                                         #   India                                         # You can create your own file in                                         # share/timezonesets/. #extra_float_digits = 0                 # min -15, max 3 #client_encoding = sql_ascii            # actually, defaults to database                                         # encoding   # These settings are initialized by initdb, but they can be changed. lc_messages = ‘en_US.UTF-8‘                     # locale for system error message                                         # strings lc_monetary = ‘en_US.UTF-8‘                     # locale for monetary formatting lc_numeric = ‘en_US.UTF-8‘                      # locale for number formatting lc_time = ‘en_US.UTF-8‘                         # locale for time formatting   # default configuration for text search default_text_search_config = ‘pg_catalog.english‘   # - Other Defaults -   #dynamic_library_path = ‘$libdir‘ #local_preload_libraries = ‘‘ #session_preload_libraries = ‘‘   十九、错误处理ERROR HANDLING #exit_on_error = off                    # terminate session on any error? #restart_after_crash = on               # reinitialize after backend crash?   二十、配置文件包括 CONFIG FILE INCLUDES 一个配置文件也可以包含其他配置文件,使用include 指令能够达到这个目的。 比如 在postgresql.conf文件中 有如下一行: include ‘my.confg‘ 这样的话 my.confg文件中的配置信息也会被数据库读入。 include 指令指定的配置文件也可以用include指令再包含其他配置文件。如果include指令中指定的文件名不是绝对路径,数据库会在postgresql.conf文件所在的目录下查找这个文件。 #include_dir = ‘conf.d‘                 # include files ending in ‘.conf‘ from                                         # directory ‘conf.d‘ #include_if_exists = ‘exists.conf‘      # include file only if it exists #include = ‘special.conf‘               # include file   二十一、版本\平台兼容VERSION/PLATFORM COMPATIBILITY # - Previous PostgreSQL Versions -   #array_nulls = on #backslash_quote = safe_encoding        # on, off, or safe_encoding #default_with_oids = off #escape_string_warning = on #lo_compat_privileges = off #quote_all_identifiers = off #sql_inheritance = on #standard_conforming_strings = on #synchronize_seqscans = on   # - Other Platforms and Clients -   #transform_null_equals = off   二十二、复制REPLICATION # - Sending Server(s) -   # Set these on the master and on any standby that will send replication data.   #max_wal_senders = 0            # max number of walsender processes                                 # (change requires restart) #wal_keep_segments = 0          # in logfile segments, 16MB each; 0 disables #wal_sender_timeout = 60s       # in milliseconds; 0 disables   #max_replication_slots = 0      # max number of replication slots                                 # (change requires restart)   # - Master Server -   # These settings are ignored on a standby server.   #synchronous_standby_names = ‘‘ # standby servers that provide sync rep                                 # comma-separated list of application_name                                 # from standby(s); ‘*‘ = all #vacuum_defer_cleanup_age = 0   # number of xacts by which cleanup is delayed   # - Standby Servers -   # These settings are ignored on a master server.   #hot_standby = off                      # "on" allows queries during recovery                                         # (change requires restart) #max_standby_archive_delay = 30s        # max delay before canceling queries                                         # when reading WAL from archive;                                         # -1 allows indefinite delay #max_standby_streaming_delay = 30s      # max delay before canceling queries                                         # when reading streaming WAL;                                         # -1 allows indefinite delay #wal_receiver_status_interval = 10s     # send replies at least this often                                         # 0 disables #hot_standby_feedback = off             # send info from standby to prevent                                         # query conflicts #wal_receiver_timeout = 60s             # time that receiver waits for                                         # communication from master                                         # in milliseconds; 0 disables                          

Postgresql 配置文件详解

标签:

人气教程排行