pgsql pg_settings表 中的配置项列表
pg_settings
pg_settings提供了对服务器运行时参数的访问。 它实际上是SHOW和SET命令的另外一个接口。 它还提供一些用SHOW不能直接获取的参数的访问,比如最大和最小值。
表 47-67. pg_settings 字段
名字 | 类型 | 描述 |
---|---|---|
name | text | 运行时配置参数名 |
setting | text | 参数的当前值 |
unit | text | 参数的隐含单元 |
category | text | 参数的逻辑组 |
short_desc | text | 参数的一个简短的描述 |
extra_desc | text | 有关参数的额外的,更详细的描述 |
context | text | 设置这个参数的值要求的环境(见下文) |
vartype | text | 参数类型(bool, enum, integer, real, string) |
source | text | 当前参数值的来源 |
min_val | text | 该参数允许的最小值(非数字值为 null) |
max_val | text | 这个参数允许的最大的数值(非数字值为 null) |
enumvals | text[] | 枚举参数允许的值(非枚举值为null) |
boot_val | text | 如果参数没有设置则为服务器启动时假设的参数值 |
reset_val | text | RESET在当前会话中将重设的参数值 |
sourcefile | text | 设置当前值的配置文件(从源码而不是配置文件设置值或当通过非超级用户检查时为null); 当在配置文件中使用include指令时是有帮助的。 |
sourceline | integer | 设置当前值的配置文件中的行编码 (从源码而不是配置文件设置值或当通过非超级用户检查时为null) |
有几个context的可能值。以减少困难的改变设置的顺序,它们是:
- internal
-
不能直接更改这些设置;它们反映了内部确定的值。其中的一些可以通过用不同的配置选项重建服务器, 或通过改变提供给initdb的选项来更改。
- postmaster
-
这些选项只在服务器启动时使用,所以任何改变都需要重启服务器。这些设置的值通常存储在 postgresql.conf文件中,或当服务器启动时传递给命令行。 当然,带有任何低context类型的设置也可以在服务器启动时设置。
- sighup
-
这些设置可以在postgresql.conf中改变而不用重启服务器。 发送一个SIGHUP信号到主进程使其重读postgresql.conf 并应用改变。主进程也将SIGHUP信号传递给它的子进程, 这样它们所有都使用新值。
- backend
-
这些设置可以在postgresql.conf中改变而不用重启服务器; 它们也可以在连接需求包中为特定的会话设置(例如,通过libpq的 PGOPTIONS环境变量)。不过,这些设置在会话启动后永远不会改变。 如果你在postgresql.conf中改变了它们,那么发送一个SIGHUP 信号到主进程使其重读postgresql.conf。新值将只影响随后加载的会话。
- superuser
-
这些值可以在postgresql.conf中设置,或在一个会话中通过SET 命令设置;但是只有超级用户可以通过SET改变它们。在postgresql.conf 中改变它们将只在没有会话本地值是使用SET建立的时影响现有会话。
- user
-
这些值可以在postgresql.conf中设置,或在一个会话中通过SET 命令设置。允许任何用户改变他们的会话本地值。postgresql.conf 中的改变将只在没有会话本地值是使用SET建立的时影响现有会话。
参阅第 18.1 节获取更多关于改变这些参数的各种方式的信息。
不能对pg_settings视图进行插入或者删除,但是可以更新。 对pg_settings中的一行进行 UPDATE 等效于在该命名参数上执行SET命令。这个修改只影响当前会话使用的数值。 如果在一个最后退出的事务中发出了UPDATE 命令,那么UPDATE 命令的效果将在事务回滚之后消失。一旦包围它的事务提交,这个效果将固化,直到会话结束, 除非由其它的UPDATE或SET命令覆盖。