配置文件

登录授权ud_hba.conf

cat /data/udb/ud_hba.conf
local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust
host    all             all             0.0.0.0/0               md5
host    replication     all             0.0.0.0/0               md5

配置文件unvdbsvr.conf参数详解

注 unvdbsvr.conf 配置文件只列出部分参数,并不是所有参数都允许修改

name restart setting description
allow_system_table_mods off 允许修改系统表的结构。
application_name Navicat 将连接的应用程序的名称在统计和日志中报告。
archive_cleanup_command 设置将在每个重启点执行的shell命令。
archive_command DATE=date +%Y%m%d; DIR="/data/backup/ud_rman_backup/walbackup/"; (test -d $DIR || mkdir -p $DIR) && cp %p $DIR/%f 设置调用归档WAL文件的shell命令,如使用gz压缩,会占用较多CPU。
archive_mode on 允许使用archive_command归档WAL文件。可选值有always,on,off 当设置为always时做人从实例也归档主实例发送来的WAL日志
archive_timeout 0 如果新的文件在N秒内未开始,则强制生成并切换到下一个WAL文件。仅当有更新操作时此值才会触发。如没有任何写操作,此值不会触发。如不设置archive_timeout,则执行 select pg_switch_wal 或 单个wal写满16M时 会自动归档。
array_nulls on 允许在数组中输入NULL元素。
authentication_timeout 1min 设置完成客户端身份验证的最大允许时间。
autovacuum on 启动自动真空子进程。
autovacuum_analyze_scale_factor 0.1 在分析之前,作为reltuples的一部分插入、更新或删除的元组数量。
autovacuum_analyze_threshold 50 分析之前插入、更新或删除的元组的最小数量。
autovacuum_freeze_max_age 200000000 自动清理表以防止事务ID回绕的年龄。(单位毫秒)
autovacuum_max_workers 3 设置同时运行的自动清理工作进程的最大数量。
autovacuum_multixact_freeze_max_age 400000000 多事务自动清理表以防止多事务回绕的年龄。(单位毫秒)
autovacuum_naptime 1min 自动真空运行之间的睡眠时间。
autovacuum_vacuum_cost_delay 2ms 真空成本延迟(毫秒),用于自动真空。
autovacuum_vacuum_cost_limit -1 休眠前自动清理表时的成本控制-1为没有限制
autovacuum_vacuum_insert_scale_factor 0.2 在执行vacuum操作之前插入元组的数量与reltuples的比值。
autovacuum_vacuum_insert_threshold 1000 执行自动清理之前,需要插入的元组数量。如果设置为 -1,则禁用插入清理。
autovacuum_vacuum_scale_factor 0.2 参数用于设置在执行自动清理之前,需要更新或删除的元组数量占 reltuples 的比例。当这个值达到指定的阈值时,unvdb将开始执行清理操作。
autovacuum_vacuum_threshold 50 参数用于设置在执行自动清理之前,需要更新或删除的元组数量的最小值。当这个值达到指定的阈值时,unvdb 将开始执行清理操作。
autovacuum_work_mem -1 参数用于设置每个 autovacuum worker 进程使用的最大内存。当设置为-1时,表示使用系统默认值。
backend_flush_after 0 参数用于设置在执行写入操作后,需要将之前执行的写入操作刷新到磁盘上的页面数量。当设置为0时,表示每次写入操作都会立即刷新到磁盘上。
backslash_quote safe_encoding 是否允许在字符串字面值中使用“ \ ”
backtrace_functions 用于记录这些函数中的错误回溯。
bgwriter_delay 200ms 参数用于设置后台写入器在两次写操作之间休眠的时间。这个参数的默认值是10毫秒(100ms)。
bgwriter_flush_after 512kB 参数,用于控制后台写进程(Background Writer)在缓冲区达到512kB时,后台写进程会将缓存中的数据刷新到磁盘上。
bgwriter_lru_maxpages 100 参数用于控制后台写进程在每次刷新缓存时最多处理多少个最近最少使用(LRU)页面。这里的100表示后台写进程在每次刷新缓存时最多处理100个LRU页面。
bgwriter_lru_multiplier 2 参数,用于控制后台写进程在每次刷新缓存时释放多少个LRU页面。这里的2表示后台写进程在每次刷新缓存时释放平均缓冲使用量的2倍的LRU页面。
block_size 8192 参数用于显示磁盘块的大小。这里的8192表示磁盘块的大小为8KB。
bonjour off 参数用于控制是否通过Bonjour协议来广播服务器信息。这里的"Enables advertising the server via Bonjour"表示启用该选项后,服务器会通过Bonjour协议来广播自己的信息。
bonjour_name 参数用于设置Bonjour服务的名称。这里的"Sets the Bonjour service name"表示该选项可以设置服务器的Bonjour服务名称。
bytea_output hex 参数用于设置bytea类型的输出格式。这里的"Sets the output format for bytea"表示该选项可以设置bytea类型的输出格式。
check_function_bodies on 在创建函数(CREATE FUNCTION)和存储过程(CREATE PROCEDURE)时,是否启用pg_check_function_bodies检查函数体。
checkpoint_completion_target 0.9 参数用于设置在检查点过程中刷新脏缓冲区所花费的时间占检查点间隔的比例。这个参数的默认值为 0.9,表示在检查点过程中,有 90% 的时间用于刷新脏缓冲区。
checkpoint_flush_after 256kB 执行写操作后,将之前的操作刷新到磁盘的页面数为 256 KB。系统会将之前的操作缓存在内存中,直到达到 256 KB大小后一次性将它们写入磁盘。
checkpoint_timeout 5min 参数用于设置自动 WAL(Write-Ahead Logging)检查点之间的最大时间。
checkpoint_warning 30s 参数用于设置检查点段填充频率超过此值时发出警告。
client_connection_check_interval 0 参数用于设置在运行查询时检查断开连接的时间间隔。
client_encoding UNICODE 参数用于设置客户端的字符集编码。
client_min_messages notice 参数用于设置发送给客户端的消息级别。
cluster_name 参数用于设置集群的名称,该名称将包含在进程标题中。
commit_delay 0 参数用于设置事务提交和将 WAL(Write-Ahead Logging)刷新到磁盘之间的延迟时间,单位为微秒。
commit_siblings 5 参数用于设置在执行 commit_delay 之前,允许并发打开的最小事务数。
compute_query_id auto 自动计算查询标识符的函数。
config_file /data/udb/unvdbsvr.conf 服务器的主要配置文件存储位置。
constraint_exclusion partition 使用查询计划时考虑使用约束来优化查询。
cpu_index_tuple_cost 0.005 参数是设置查询计划器在索引扫描过程中处理每个索引条目的成本估计值。默认值为0.005,表示每处理一个索引条目需要花费0.005个CPU周期。
cpu_operator_cost 0.0025 参数是设置查询计划器在处理每个操作符或函数调用时的成本估计值。默认值为0.0025,表示每处理一个操作符或函数调用需要花费0.0025个CPU周期。
cpu_tuple_cost 0.01 参数是设置查询计划器在处理每个元组(行)时的成本估计值。默认值为0.01,表示每处理一个元组需要花费0.01个CPU周期。
cron 否.database_name unvdb ud_cron元数据存储在unvdb数据库中。
cron 否.enable_superuser_jobs on 允许以超级用户的身份调度作业
cron 否.host localhost 连接到unvdb的主机名。
cron 否.log_min_messages warning log_min_messages 用于设置 launcher bgworker 的日志最小消息级别。
cron 否.log_run on 表示将所有作业运行记录到 job_run_details 表中
cron 否.log_statement on 表示在执行之前记录所有 cron 语句。
cron 否.max_running_jobs 32 表示可以同时运行的最大作业数
cron 否.timezone GMT 指定用于 cron 计划的时间区域
cron 否.use_background_workers off 表示使用后台工作进程而不是客户端会话
cursor_tuple_fraction 0.1 表示设置了 cursor 的行数据估计,即该行数据的占比为0.1。
data_checksums off 表示此集群是否关闭了数据校验和功能。
data_directory /data/udb 表示设置服务器数据目录
data_directory_mode 0700 表示显示数据目录的模式。
data_sync_retry off 表示在同步数据文件失败后是否继续运行
DateStyle ISO, YMD 设置日期和时间值的显示格式。
db_user_namespace off 启用每个数据库用户名称。
deadlock_timeout 1s 设置在检查死锁之前等待锁定的时间。
debug_assertions off 显示正在运行的服务器是否启用了断言检查。
debug_discard_caches 0 为调试目的积极地刷新系统缓存
debug_pretty_print on 在解析和规划树显示时进行缩进。
debug_print_parse off 记录每个查询的解析树。
debug_print_plan off 记录每个查询的执行计划。
debug_print_rewritten off 记录每个查询的重写解析树。
default_statistics_target 100 设置默认的统计目标。
default_table_access_method heap 设置新表的默认表访问方法。
default_tablespace 设置创建表和索引的默认表空间
default_text_search_config pg_catalog.simple 设置默认的文本搜索配置。如设置为'pg_catalog.english',表示使用英文文本搜索配置
default_toast_compression pglz 设置可压缩值的默认压缩方法。
default_transaction_deferrable off 设置新事务的默认可延迟状态。
default_transaction_isolation read committed 设置每个新事务的事务隔离级别。
default_transaction_read_only off 设置新事务的默认只读状态。
dynamic_library_path $libdir 设置动态加载模块的路径。
dynamic_shared_memory_type posix 选择使用的动态共享内存实现。
effective_cache_size 4GB 设置规划器对数据缓存总大小的假设。
effective_io_concurrency 1 表示磁盘子系统可以高效处理的并发请求数量。
enable_async_append on 启用规划器的异步追加计划使用。
enable_bitmapscan on 启用规划器的位图扫描计划使用
enable_gathermerge on 启用规划器的收集合并计划使用。
enable_hashagg on 启用规划器的哈希聚合计划使用。
enable_hashjoin on 启用规划器的哈希连接计划使用。
enable_incremental_sort on 启用规划器的增量排序步骤使用。
enable_indexonlyscan on 启用规划器的索引仅扫描计划使用。
enable_indexscan on 启用规划器的索引扫描计划使用。
enable_material on 启用规划器的物化使用。
enable_memoize on 启用规划器的备忘录使用
enable_mergejoin on 启用规划器的合并连接计划使用。
enable_nestloop on 启用规划器的嵌套循环连接计划使用
enable_parallel_append on 启用规划器的并行追加计划使用。
enable_parallel_hash on 启用规划器的并行哈希计划使用。
enable_partition_pruning on 启用计划时间和执行时间分区剪枝。
enable_partitionwise_aggregate off 启用分区式聚合和分组。
enable_partitionwise_join off 启用分区式连接。
enable_seqscan on 启用规划器的序列扫描计划使用
enable_sort on 启用规划器的显式排序步骤使用。
enable_tidscan on 启用规划器的的 TID 扫描计划使用。
escape_string_warning on 在普通字符串字面值中发出有关反斜杠转义的警告。
event_source Unvdb 事件源Unvdb设置应用程序名称,用于标识在事件日志中unvdb消息.
exit_on_error off 当错误发生时,终止会话。
external_pid_file 将外部进程的 PID 写入指定的文件。.
extra_float_digits 1 将浮点值的显示位数设置为 1。
force_parallel_mode off 禁用强制并行模式。
from_collapse_limit 8 将FROM-list的大小限制设置为 8
fsync on 强制同步更新到磁盘。
full_page_writes on 将完整页面写入到 WAL 当第一次修改后,从写缓存中获取。表示是否对每个数据页进行完整的写入。此处设置为on,表示进行全页写入。
geqo on 启用遗传查询优化。
geqo_effort 5 GEQO是一种用于解决组合优化问题的算法。在GEQO中,effort参数用于设置其他GEQO参数的默认值。
geqo_generations 0 在GEQO中,generations参数表示算法的迭代次数
geqo_pool_size 0 在GEQO中,pool_size参数表示种群中的个体数量。
geqo_seed 0 在GEQO中,seed参数用于随机路径选择的种子
geqo_selection_bias 2 在GEQO中,selection_bias参数表示种群内部的选择压力。
geqo_threshold 12 在GEQO中,threshold参数设置使用GEQO的阈值。
gin_fuzzy_search_limit 0 gin_fuzzy_search_limit参数设置GIN进行精确搜索时允许的最大结果数。
gin_pending_list_limit 4MB gin_pending_list_limit参数设置GIN索引的待处理列表的最大大小为4MB。
hash_mem_multiplier 1 参数用于设置哈希表的工作内存的倍数。
hba_file /data/udb/ud_hba.conf 参数用于设置服务器的"hba"配置文件。
hot_standby on 参数用于在恢复期间允许连接和查询,做为从节点时允许执行查询请求
hot_standby_feedback off 参数用于允许热备从主服务器获取反馈,以避免查询冲突。
huge_page_size 0 参数用于设置请求的页大小时。
huge_pages try 参数用于在Linux或Windows上使用大页。默认是off,可选值有 on,off,try。try尝试使用大页失败后使用普通内存页面。
ident_file /data/udb/ud_ident.conf 参数用于设置服务器的"ident"配置文件
idle_in_transaction_session_timeout 0 参数用于设置在事务中查询之间的最大允许空闲时间
idle_session_timeout 0 参数用于设置在非事务中查询之间的最大允许空闲时间。
ignore_checksum_failure off 参数用于在校验和失败后继续处理。
ignore_invalid_pages off 参数用于在无效页面失败后继续恢复。
ignore_system_indexes off 参数用于禁用从系统索引中读取。
in_hot_standby off 参数用于显示热备当前是否处于活动状态
integer_datetimes on 参数用于显示日期时间是否基于整数。
IntervalStyle postgres 设置间隔值的显示格式。
jit on 允许JIT编译。
jit_above_cost 100000 如果查询成本超过100000,则执行JIT编译。
jit_debugging_support off 关闭JIT调试支持,以便在调试器中注册JIT编译的函数。
jit_dump_bitcode off 关闭JIT转储位码,以便将LLVM位码写入以便于进行JIT调试。
jit_expressions on 允许对表达式进行JIT编译。
jit_inline_above_cost 500000 如果查询开销较大,则执行JIT内联。
jit_optimize_above_cost 500000 如果查询比较昂贵,则优化JIT编译的函数。
jit_profiling_support off 关闭JIT性能分析支持,以便在性能分析器中注册JIT编译的函数。
jit_provider llvmjit JIT提供程序。
jit_tuple_deforming on 允许JIT编译元组变形。
join_collapse_limit 8 参数用于设置在执行JOIN操作时,FROM列表中的元素数量超过该join_collapse_limit参数用于设置在执行JOIN操作时,FROM列表中的元素数量超过该值时,不再进行扁平化处理
krb_caseins_users off 设置Kerberos和GSSAPI用户名是否应该被视为不区分大小写。
krb_server_keyfile 设置Kerberos服务器密钥文件的位置。
lc_collate zh_CN.UTF-8 显示排序顺序的区域设置。
lc_ctype zh_CN.UTF-8 显示字符分类和大小写转换区域设置。
lc_messages zh_CN.UTF-8 设置显示消息的语言。不设置则使用操作系统变量
lc_monetary zh_CN.UTF-8 设置格式化货币金额的区域设置。
lc_numeric zh_CN.UTF-8 设置格式化数字的区域设置。
lc_time zh_CN.UTF-8 设置格式化日期和时间值的区域设置。
listen_addresses * 设置要监听的主机名或IP地址。'*'代表接受所有地址的连接
lo_compat_privileges off 启用大型对象权限检查的向后兼容模式。
local_preload_libraries 列出每个后端要预加载的非特权共享库。
lock_timeout 0 设置锁等待的最大允许持续时间。
log_autovacuum_min_duration -1 设置自动清理操作执行时间超过该值时,将记录日志。
log_checkpoints off 记录每个检查点。
log_connections off 记录每个成功连接。
log_destination stderr 设置服务器日志输出的目标。
log_directory log 将日志文件的目的地设置为指定的目录。
log_disconnections off 记录每个断开连接,包括持续时间。
log_duration off 记录每个已完成 SQL语句花费时间
log_error_verbosity default 设置日志消息的详细度。
log_executor_stats off 记录每个执行器的性能统计
log_file_mode 0600 设置日志文件的文件权限
log_filename unvdb-%a.log 设置日志文件的文件名模式。设置为'unvdb-%a.log',表示以'unvdb-'开头,并包含星期几的日志文件名
log_hostname off 在连接日志中记录主机名
log_line_prefix %m [%p] %q%u@%d 设置日志行前缀为%m [%p] %q%u@%d。
log_lock_waits off 记录锁等待日志
log_min_duration_sample -1 设置日志最小执行时间采样率。
log_min_duration_statement -1 设置记录所有语句的最小执行时间。表示超过该时间的SQL语句将被记录到日志中,如此处设置为10000则超过10秒的sql会被记录
log_min_error_statement error 设置日志最小错误语句错误原因,所有生成错误语句在或高于该级别时将被记录。
log_min_messages warning 设置记录的消息级别。
log_parameter_max_length -1 当记录语句时,将记录的参数值限制为前N个字节
log_parameter_max_length_on_error 0 报告错误时,将记录的参数值限制为前N个字节
log_parser_stats off 将解析器性能统计写入服务器日志。
log_planner_stats off 将规划器性能统计写入服务器日志
log_recovery_conflict_waits off 记录备用恢复冲突等待。
log_replication_commands off 记录每个复制命令。
log_rotation_age 1d 日志轮转时间,表示日志文件自动轮转的时间间隔。此处设置为1d,表示每天轮转一次
log_rotation_size 0 日志轮转大小,表示日志文件自动轮转的大小阈值。此处设置为0,表示不按大小轮转
log_statement none 设置记录的语句类型。ddl 等
log_statement_sample_rate 1 将超过log_min_duration_sample的语句百分比记录。
log_statement_stats off 将累积性能统计信息写入服务器日志。
log_temp_files -1 记录使用临时文件的占用超过该数量的千字节
log_timezone Asia/Shanghai 设置时区以使用日志消息。
log_transaction_sample_rate 0 设置从中记录所有语句的事务的百分比
log_truncate_on_rotation on 在日志轮换期间,删除相同名称的现有日志文件。表示是否在日志轮转时截断当前日志文件。此处设置为on,表示截断日志文件
logging_collector on 启动一个子进程以捕获标准错误输出或/csvlogs日志文件。表示是否启用日志收集器。此处设置为on,表示启用日志收集器。
logical_decoding_work_mem 64MB 设置最大内存以用于逻辑解码
maintenance_io_concurrency 10 一个有效_io_concurrency变体,用于维护工作。
maintenance_work_mem 64MB 设置最大内存以用于维护操作。
max_connections 100 设置最大并发连接数。
max_files_per_process 1000 设置每个服务器进程同时打开文件的最大数量
max_function_args 100 显示每个函数的最大参数数量
max_identifier_length 63 显示每个标识符的最大长度
max_index_keys 32 显示每个索引键的最大数量
max_locks_per_transaction 64 设置每个事务的最大锁数。
max_logical_replication_workers 4 逻辑复制工作进程的最大数量
max_parallel_maintenance_workers 2 设置维护命令(例如 CREATE INDEX) 命令允许的最大并行进程数,默认值为2。并行创建索引仅支持 B-tree 索引
max_parallel_workers 8 #设置系统支持的最大并行进程数,默认值为8。这个值小于或等于 max_worker_processes。
max_parallel_workers_per_gather 2 设置单个Gather或Gather Merge节点能够启用的最大并行进程数,默认值为2,并行查询(Parallel Query)的并行度受此参数的影响,CREATE INDEX 命令的并行度不受此参数影响。
max_pred_locks_per_page 2 设置每页的predicate-locked元组的最大数量.
max_pred_locks_per_relation -2 设置每个关系的predicate-locked页面和元组的最大数量
max_pred_locks_per_transaction 64 设置每个事务的predicate-locked最大数量.
max_prepared_transactions 0 设置每个事务的 simultaneously准备事务的最大数量
max_replication_slots 10 设置复制插槽的最大数量.表示同时允许的最大复制槽数。此处设置为10。
max_slot_wal_keep_size -1 设置每个事务的WAL最大大小,以便可以由复制插槽预留
max_stack_depth 2MB 设置每个线程的堆栈深度,以千字节为单位。.
max_standby_archive_delay 30s 设置每个线程的最长延迟,以便在取消查询时,当一个热存服务器正在处理归档的WAL数据时,可以继续取消查询
max_standby_streaming_delay 30s 设置每个线程的最长延迟,以便在取消查询时,当一个热存服务器正在处理流式WAL数据时,可以继续取消查询
max_sync_workers_per_subscription 2 设置每个订阅的表同步工作线程的最大数量.
max_wal_senders 10 设置最大WAL发送者数,表示同时允许的最大WAL发送者数。此处设置为10。
max_wal_size 1GB 设置触发检查点的WAL大小. 表示每个WAL日志段的最大大小。此处设置为1GB。
max_worker_processes 8 设置数据库的最大后台进程数,默认值为8。数据库允许的最大后台进程数,并行进程属于后台进程的一种;
min_dynamic_shared_memory 0 设置启动时动态共享内存的保留数量.
min_parallel_index_scan_size 512kB 设置每个并行扫描的最小索引数据数量.
min_parallel_table_scan_size 8MB 设置每个并行扫描的最小表数据数量
min_wal_size 80MB 设置最小尺寸以缩小WAL. 表示每个WAL日志段的最小大小。此处设置为80MB。
old_snapshot_threshold -1 在快照被读取后,页面更改的旧快照的时间.
parallel_leader_participation on 控制是否进行Gather和Gather合并的子计划运行.
parallel_setup_cost 1000 设置规划器的的估计,以便在并行查询中启动 up worker进程
parallel_tuple_cost 0.1 设置规划器的的估计,以便在从worker到leader backend中传递每个元组(row)的成本.
password_encryption md5 选择加密算法以加密密码
plan_cache_mode auto 控制规划器选择自定义计划或通用计划
port 5678 设置TCP端口以服务器监听。
post_auth_delay 0 等待N秒后在连接启动后进行身份验证.
pre_auth_delay 0 等待N秒后在连接启动前进行身份验证.
primary_conninfo 设置连接字符串以连接到主服务器.
primary_slot_name 设置复制槽的名称以使用连接到发送服务器
promote_trigger_file 指定一个文件名,该文件在standby中以恢复结束的冗余.
quote_all_identifiers off 当生成SQL片段时,引用所有标识符.
random_page_cost 4 设置规划器对非顺序获取磁盘页的成本的估计
recovery_end_command 设置shell命令,以便在恢复结束时执行
recovery_init_sync_method fsync 设置方法以同步数据目录,以便在崩溃恢复之前进行数据目录的同步
recovery_min_apply_delay 0 设置最小延迟以应用更改,以便在恢复期间进行变化的应用程序
recovery_target 设置"immediaent"以结束恢复,以便在一致状态达到时立即进行变化
recovery_target_action pause 设置操作以到达恢复目标。
recovery_target_inclusive on 设置是否包含或排除事务与恢复目标。
recovery_target_lsn 设置恢复过程将进行到的预写日志(write-ahead log)的位置
recovery_target_name 设置命名恢复点以进行恢复.
recovery_target_time 设置时间戳以进行恢复.
recovery_target_timeline latest 指定时间线以进行恢复. 此处设置为'latest',表示使用最新的时间线。
recovery_target_xid 设置事务ID以进行恢复。.
remove_temp_files_after_crash on 在后端崩溃后删除临时文件
restart_after_crash on 在后端崩溃后重新初始化服务器
restore_command 设置用于检索归档WAL文件的shell命令
row_security on 启用行安全性。
search_path "$user", public 设置未限定模式的名称的架构搜索顺序
segment_size 1GB 显示每个磁盘文件的页数。
seq_page_cost 1 设置规划器对顺序获取磁盘页面的成本的估计
server_encoding UTF8 显示服务器(数据库)字符集编码。
server_version 2.4 显示服务器版本。
server_version_num 220004 显示服务器版本作为整数。
session_preload_libraries 列出要预加载到每个后端的共享库。
session_replication_role origin 设置会话的行为以触发器和重写规则。
shared_buffers 128MB 设置服务器使用的共享内存缓冲区数量。建议是物理内存地30%以上
shared_memory_type mmap 选择用于主共享内存区域的共享内存实现。
shared_preload_libraries ud_cron,pg_stat_statements,等等 列出要预加载到服务器的共享库。
ssl off 启用SSL连接。
ssl_ca_file SSL证书颁发机构文件的位置
ssl_cert_file server.crt SSL服务器证书文件的位置。
ssl_ciphers HIGH:MEDIUM:+3DES:!aNULL 设置允许的SSL密码列表
ssl_crl_dir SSL证书吊销列表目录的位置
ssl_crl_file SSL证书吊销列表文件的位置。
ssl_dh_params_file SSL DH参数文件的位置。
ssl_ecdh_curve prime256v1 设置用于ECDH的曲线。
ssl_key_file server.key SSL服务器私钥文件的位置
ssl_library OpenSSL 显示SSL库的名称
ssl_max_protocol_version 设置要使用的SSL/TLS协议版本的最大值
ssl_min_protocol_version TLSv1.2 设置要使用的SSL/TLS协议版本的最小值
ssl_passphrase_command 获取SSL密码的命令。
ssl_passphrase_command_supports_reload off 在服务器重新加载期间也使用ssl_passphrase_command.
ssl_prefer_server_ciphers on 优先使用服务器密码套件顺序
standard_conforming_strings on 使'...'字符串将反斜杠视为字面值.
statement_timeout 0 设置任何语句允许的最大持续时间.
stats_temp_directory ud_stat_tmp 将临时统计文件写入指定的目录
superuser_reserved_connections 3 设置为超级用户保留的连接插槽数量
synchronize_seqscans on 启用同步顺序扫描.
synchronous_commit on 设置当前事务的同步提交方式,表示提交事务时是否等待数据写入到远程存储。此处设置为remote_write,表示在事务提交时等待数据被写入到远程存储。
synchronous_standby_names 同步备用服务器的数量以及潜在同步服务器的名称列表
syslog_facility local0 设置启用syslog时使用的syslog "facility"
syslog_ident postgres 设置用于在syslog中识别PostgreSQL消息的程序名称.
syslog_sequence_numbers on 为syslog消息添加序列号以避免重复抑制.
syslog_split_messages on 将发送到syslog的消息按行拆分,使其适应1024字节.
tcp_keepalives_count 9 TCP保活重传的最大次数
tcp_keepalives_idle 7200 发送TCP保活之间的时间
tcp_keepalives_interval 75 TCP保活重传之间的时间
tcp_user_timeout 0 TCP用户超时
temp_buffers 8MB 设置每个会话使用的最大临时缓冲区数量.
temp_file_limit -1 限制每个进程使用的所有临时文件的总大小.
temp_tablespaces 设置用于临时表和排序文件的表空间
TimeZone Asia/Shanghai 设置用于显示和解释时间戳的时区.
timezone_abbreviations Default 选择一个包含时区缩写的文件。
trace_notify off 为LISTEN和NOTIFY生成调试输出.
trace_recovery_messages log 启用与恢复相关的调试信息记录.
trace_sort off 在排序过程中输出资源使用信息.
track_activities on 收集执行命令的信息
track_activity_query_size 1kB 设置pg_stat_activity.query预留的大小,以字节为单位
track_commit_timestamp off 收集事务提交时间。
track_counts on 收集数据库活动统计信息。
track_functions none 收集数据库活动的功能级别统计信息。
track_io_timing off 收集数据库I/O活动的计时统计信息。
track_wal_io_timing off 收集WAL I/O活动的计时统计信息。
transaction_deferrable off 是否推迟一个只读可序列化事务,直到它可以被执行且不可能发生序列化失败
transaction_isolation read committed 设置当前事务的隔离级别
transaction_read_only off 设置当前事务的只读状态
transform_null_equals off 将 "expr=NULL" 视为 "expr IS NULL"
unix_socket_directories /tmp 设置Unix域套接字创建的目录。
unix_socket_group 设置Unix域套接字的所属组
unix_socket_permissions 0777 设置Unix域套接字的访问权限。
update_process_title on 更新进程标题以显示活动SQL命令
vacuum_cost_delay 0 以毫秒为单位的真空开销延迟
vacuum_cost_limit 200 对表进行清理(vacuum)操作之前,该表上可用的空闲空间量
vacuum_cost_page_dirty 20 执行数据库的 VACUUM 操作时,需要清理的脏页的成本
vacuum_cost_page_hit 1 从缓冲缓存中找到的页面的成本.
vacuum_cost_page_miss 2 从缓冲缓存中未找到的页面的成本
vacuum_defer_cleanup_age 0 VACUUM和HOT清理应该推迟的事务数量,如果有的话
vacuum_failsafe_age 1600000000 VACUUM应该触发故障保护以避免回绕中断的年龄
vacuum_freeze_min_age 50000000 VACUUM应该冻结表行的最小年龄
vacuum_freeze_table_age 150000000 VACUUM应该扫描整个表以冻结元组的年龄
vacuum_multixact_failsafe_age 1600000000 VACUUM应该触发故障保护以避免回绕中断的多事务年龄
vacuum_multixact_freeze_min_age 5000000 VACUUM应该冻结表行中的MultiXactId的最小年龄
vacuum_multixact_freeze_table_age 150000000 VACUUM应该扫描整个表以冻结元组的多事务年龄
wal_block_size 8192 显示预写式日志中的块大小。
wal_buffers 4MB 设置WAL的共享内存中的磁盘页缓冲区数量。
wal_compression off 压缩写入WAL文件的完整页面。
wal_consistency_checking 设置进行WAL一致性检查的WAL资源管理器
wal_init_zero on 在第一次使用时,向新的WAL文件写入零。
wal_keep_size 0 设置为从库保留的最大wal日志大小,超出此大不的日志将不能被从库重新使用,只能重新建立从库。
wal_level replica 设置写入WAL的信息级别
wal_log_hints off 在检查点后第一次修改时,即使是非关键修改,也会将完整页面写入WAL。开启后支持ud_rewind方式修复数据
wal_receiver_create_temp_slot off 设置WAL接收器在没有配置永久插槽时是否应创建临时复制插槽。
wal_receiver_status_interval 10s 设置WAL接收器向发送服务器报告状态的最大间隔.
wal_receiver_timeout 1min 设置从发送服务器接收数据的最大等待时间
wal_recycle on 通过重命名来回收WAL文件。
wal_retrieve_retry_interval 5s 在失败后,设置重试检索WAL之前等待的时间。
wal_segment_size 16MB 显示预写式日志段的大小。
wal_sender_timeout 1min 设置等待WAL复制的最大时间。
wal_skip_threshold 2MB 最小文件大小,在写入WAL之前进行fsync操作
wal_sync_method fdatasync 选择用于强制将WAL更新写入磁盘的方法。
wal_writer_delay 200ms WAL写入器执行WAL刷新之间的时间。
wal_writer_flush_after 1MB 触发刷新的WAL写入器写出的WAL数量
work_mem 4MB 设置查询工作空间使用的内存最大值
xmlbinary base64 设置二进制值在XML中如何编码
xmloption content 设置在隐式解析和序列化操作中,XML数据是否应被视为文档或内容片段。
zero_damaged_pages off 继续处理损坏的页面标题。

pg_stat_statements 模块配置

更多模块配置参考 标准插件 pg_stat_statements 模块用于跟踪sql执行信息

shared_preload_libraries = ‘pg_stat_statements’ #共享预加载库,表示要加载的共享库。此处设置为’pg_stat_statements’,表示加载pg_stat_statements模块。

pg_stat_statements.max = 1000 #跟踪的语句的最大数目,表示pg_stat_statements模块跟踪的最大语句数。此处设置为1000。

pg_stat_statements.track = all #哪些语句会被该模块计数,默认是top跟踪顶层语句(那些直接由客户端发出的语句);all跟踪嵌套的语句(例如在函数中调用的语句)

pg_stat_statements.track_utility = on #是否会跟踪工具命令,工具命令是除了SELECT、INSERT、 UPDATE和DELETE之外所有的其他命令。默认值是on。

pg_stat_statements.save = on #是否在服务器关闭之后还保存语句统计信息。如果被设置为off,那么关闭后不保存统计信息并且在服务器启动时也不会重新载入统计信息。默认值为on 表示保存统计信息。

#该模块要求与pg_stat_statements.max成比例的额外共享内存。注意只要该模块被载入就会消耗这么多的内存,即便pg_stat_statements.track被设置为none。

#添加上述配置后重启服务,然后执行 CREATE EXTENSION pg_stat_statements; 启动模块

huge_pages 解释

huge_pages=on #开启大页。默认是off,可选值有 on,off,try。try尝试使用大页失败后使用普通内存页面。

比如物理内存是16GB,准备分配12GB给数据库,则至少要分配14GB大页空间:

cat /proc/meminfo |grep -i Hugepagesize 查看当前页大小,默认是 2048 kB

hugepages应该是14GB/2MB=7168

sysctl -w vm.nr_hugepages=7168

并行参数解释

max_worker_processes=8 #设置数据库的最大后台进程数,默认值为8。数据库允许的最大后台进程数,并行进程属于后台进程的一种;

max_parallel_workers=8 #设置系统支持的最大并行进程数,默认值为8。这个值小于或等于 max_worker_processes。

max_parallel_maintenance_workers=2 #参数设置维护命令(例如 CREATE INDEX) 命令允许的最大并行进程数,默认值为2。并行创建索引仅支持 B-tree 索引

max_parallel_workers_per_gather=2 #设置单个Gather或Gather Merge节点能够启用的最大并行进程数,默认值为2,并行查询(Parallel Query)的并行度受此参数的影响,CREATE INDEX 命令的并行度不受此参数影响。

设置会话级并行参数

ALTER TABLE tablename SET (parallel_workers=0);–禁止指定表并行度。 ALTER TABLE tablename RESET(parallel_workers); –恢复表并行度

max_parallel_workers_per_gather + max_parallel_maintenance_workers 值应小于或等于 max_parallel_workers

对于查询时间少的请求并不会使用并行 ,在负载重的oltp系统上,建议关闭并行