pg_settings

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 48. 系统表 | 下一页

# 48.67. `pg_settings`

`pg_settings`提供了对服务器运行时参数的访问。 它实际上是SHOW和SET命令的另外一个接口。 它还提供一些用`SHOW`不能直接获取的参数的访问，比如最大和最小值。

表 48-68. `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`命令覆盖。

上一页 | 起始页 | 下一页
`pg_seclabels` | 上一级 | `pg_shadow`