配置参数(Setting Parameters)
Parameter Names and Values
参数名大小写不敏感;
五种参数类型:
1)boolean:on, off, true, false, yes, no, 1, 0,或明确的前缀
2)string:单双引号进行引用;
3)Numeric:数值类型,整数、浮点数,十六进制;
4)Numeric with Unit:带有单位的数值类型;
5)enumerated (enum):枚举类型;
Parameter Interaction via the Configuration File
配置文件示例:
# This is a comment log_connections = yes log_destination = 'syslog' search_path = '"$user", public' shared_buffers = 128MB
配置保存在配置文件中:postgresql.conf,通过手动配置;postgresql.auto.conf,通过 ALTER SYSTEM 配置;
其中的等号是可选的,通过空格来分隔即可;
SIGHUP,pg_ctl reload,pg_reload_conf(),重新加载参数;部分参数需要重启;错误参数不会记录但不会被应用;
View pg_file_settings,用于:配置文件变化的预先测试,或如果 SIGHUP 不好用时诊断错误;
Parameter Interaction via SQL
通过 SQL 修改配置:
1)ALTER SYSTEM,修改 postgresql.auto.conf 配置文件;
2)ALTER DATABASE,覆盖全局配置,应用于数据库层面;
3)ALTER ROLE,覆盖全局或数据库配置,应用与用户层面;
当客户端连接成功后,能供通过如下命令与会话及变量进行交互:
1)SHOW
2)SET
视图 pg_settings 也能够用来修改参数:
1)类似 SHOW ALL 但是能够过滤;
2)通过 UPDATE 进行修改:UPDATE pg_settings SET setting = …
Parameter Interaction via the Shell
通过命令行,指定服务运行参数:postgres -c log_connections=yes -c log_destination=’syslog’
通过命令行,指定客户端参数:env PGOPTIONS=”-c geqo=off -c statement_timeout=5min” psql
Managing Configuration File Contents
PostgreSQL 配置文件支持拆分,通过如下指令引入配置文件:
1)include
2)include_if_exists
3)include_dir
配置文件(File Locations)
针对默认配置,其配置文件保存在数据目录中,但是能够进行修改:
1)data_directory,指定数据目录的位置;
2)config_file,指定 postgresql.conf 文件的位置,仅能通过命令指定;
3)hba_file,基于主机认证的配置文件的swithin,仅能通过命令指定;
4)ident_file,用户名映射的配置文件路径,仅能通过命令指定;
5)external_pid_file,指定 PID 文件的位置,仅能通过命令指定;
如果要将配置文件保存在数据目录之外,-D / PGDATA,必须指向配置文件目录,然后 postgresql.conf/data_directory 来修改数据目录位置;
能够通过 config_file, hba_file, ident_file 单独指定配置文件位置。config_file 必须通过命令行指定,其他选项可以在文件中指定。同时,如果还使用 data_directory 来指定数据目录位置,则没必要再使用 -D 选项(鉴于 -D 所隐含的目录位置已全被覆盖);
链接认证(Connections and Authentication)
Connection Settings
通过 listen_addresses port max_connections 参数(等等),能够控制服务的连接数;
superuser_reserved_connections,控制为 superuser 保留的连接数;
Authentication
通过 authentication_timeout password_encryption 参数(等等),能够控制认证方法;
db_user_namespace,针对数据库进行认证。
SSL
与 SSL 认证相关的内容;
资源消耗(Resource Consumption)
Memory
内存消耗相关配置;
Disk
磁盘及临时文件配置;
Kernel Resource Usage
内核资源配置;
Cost-based Vacuum Delay
限制 VACUUM and ANALYZE 的资源使用,在超过限制时,进行相关延迟(休息);
Background Writer
Background Writer 会周期发送将 Buffer 写操作,以释放部分 Buffer。否则,如果服务进程找不到赶紧的 Buffer,就需要自己写脏缓存。
当然 Background Writer 依旧会增加整体网络负担:相同周期内,buffer 被再次弄脏;
官方文档上描述用来控制 Background Writer 的选项;
Asynchronous Behavior
该部分的选项用于控制 PostgreSQL 的异步行为;
预写日志(Write Ahead Log)
该部分内容与 WAL 控制相关;
Settings
WIP
Checkpoints
WIP
Archiving
WIP
Archive Recovery
WIP
Recovery Target
WIP
主备复制(Replication)
该部分用户控制数据库的主从复制行为:Primary 负责发送数据;Standby 复制接收数据;在多级复制场景中,Standby 也能够发送数据;
Sending Servers
Primary 总是 Sending Server;
该部分的选项与 Sending Server 相关,不管是 Primary 还是 Standby,这些选项的含义都不会变化。
Primary Server
该部分选项与 Primary Server 相关,与 Standby Sever 无关。
Standby Servers
该部分选项与 Standby Server 相关,与 Primary Sever 无关。
Subscribers
这些设置控制逻辑复制 Subscriber 的行为。他们对 Publisher 是无关紧要的。
查询计划(Query Planning)
查询计划相关的配置;
Planner Method Configuration
WIP
Planner Cost Constants
WIP
Genetic Query Optimizer
WIP
Other Planner Options
WIP
错误日志(Error Reporting and Logging)
Where to Log
WIP
When to Log
WIP
What to Log
WIP
Using CSV-Format Log Output
将日志写入 CSV 文件,并且以供后续通过 COPY 导入数据库进行进一步的分析;
Process Title
对进程名进行控制;
运行统计(Run-time Statistics)
该部分参数控制统计特性,当开启特性后,通过 pg_stat 和 pg_statio 视图来查看相关数据;
Query and Index Statistics Collector
WIP
Statistics Monitoring
WIP
自动清理(Automatic Vacuuming)
控制 autovacuum 特性。
WIP
客户端连接配置(Client Connection Defaults)
Statement Behavior
WIP
Locale and Formatting
WIP
Shared Library Preloading
WIP
Other Defaults
WIP
锁管理(Lock Management)
WIP
版本及平台兼容(Version and Platform Compatibility)
Previous PostgreSQL Versions
Platform and Client Compatibility
错误处理(Error Handling)
WIP
预制选项(Preset Options)
WIP
自定义选项(Customized Options)
该特性允许将插件或模块添加的不属于 PostgreSQL 的选项按照标准方式进行配置。
WIP
开发者选项(Developer Options)
开发测试使用的一些选项。
Short Options
短选项,目的是方便使用。