pg_settings #视图 pg_settings 提供对服务器运行时参数的访问。它本质上是 SHOW 和 SET 命令的替代接口。它还提供对 SHOW 无法直接获取的每个参数的一些事实的访问,例如最小值和最大值。
表 54.24. pg_settings 列
|
列类型 说明 |
|---|
|
运行时配置参数名称 |
|
参数的当前值 |
|
参数的隐式单位 |
|
参数的逻辑组 |
|
参数的简要说明 |
|
参数的附加、更详细的说明 |
|
设置参数值所需的上下文(见下文) |
|
参数类型( |
|
当前参数值的来源 |
|
参数允许的最小值(对于非数字值,为 null) |
|
参数允许的最大值(对于非数字值,为 null) |
|
枚举参数允许的值(对于非枚举值,为 null) |
|
如果参数未另行设置,则在服务器启动时假定的参数值 |
|
在当前会话中, |
|
设置当前值时使用的配置文件(对于从配置文件以外的来源设置的值,或由既不是超级用户也没有 |
|
设置当前值时所在的配置文件中的行号(对于从配置文件以外的来源设置的值,或由既不是超级用户也没有 |
|
如果值已在配置文件中更改但需要重新启动,则为 |
context 有几个可能的值。按更改设置的难度递减排序,它们是
内部这些设置不能直接更改;它们反映内部确定的值。其中一些可以通过使用不同的配置选项重新构建服务器或更改提供给 initdb 的选项来调整。
postmaster这些设置只能在服务器启动时应用,因此任何更改都需要重新启动服务器。这些设置的值通常存储在 postgresql.conf 文件中,或在启动服务器时通过命令行传递。当然,任何较低 context 类型的设置也可以在服务器启动时设置。
sighup可以在 postgresql.conf 中更改这些设置,而无需重新启动服务器。向 postmaster 发送 SIGHUP 信号以使其重新读取 postgresql.conf 并应用更改。postmaster 还将 SIGHUP 信号转发给其子进程,以便它们全部获取新值。
superuser-backend可以在 postgresql.conf 中更改这些设置,而无需重新启动服务器。它们也可以在连接请求数据包中针对特定会话进行设置(例如,通过 libpq 的 PGOPTIONS 环境变量),但前提是连接用户是超级用户或已授予适当的 SET 权限。但是,这些设置在会话启动后绝不会更改。如果你在 postgresql.conf 中更改它们,请向 postmaster 发送 SIGHUP 信号以使其重新读取 postgresql.conf。新值将只影响随后启动的会话。
backend可以在 postgresql.conf 中更改这些设置,而无需重新启动服务器。还可以通过连接请求数据包(例如,通过 libpq 的 PGOPTIONS 环境变量)为特定会话设置这些设置;任何用户都可以为其会话进行此类更改。但是,这些设置在会话启动后永远不会更改。如果在 postgresql.conf 中更改它们,请向 postmaster 发送 SIGHUP 信号,使其重新读取 postgresql.conf。新值只会影响随后启动的会话。
superuser这些设置可以从 postgresql.conf 设置,或通过 SET 命令在会话中设置;但是,只有超级用户和具有适当 SET 权限的用户才能通过 SET 更改它们。如果尚未使用 SET 建立会话本地值,则 postgresql.conf 中的更改只会影响现有会话。
user这些设置可以从 postgresql.conf 设置,或通过 SET 命令在会话中设置。任何用户都可以更改其会话本地值。如果尚未使用 SET 建立会话本地值,则 postgresql.conf 中的更改只会影响现有会话。
有关更改这些参数的各种方法的更多信息,请参见 第 20.1 节。
无法插入或删除此视图,但可以对其进行更新。对 pg_settings 的一行应用 UPDATE 等效于对该命名参数执行 SET 命令。更改仅影响当前会话使用的值。如果在稍后中止的事务中发出 UPDATE,则在回滚事务时 UPDATE 命令的效果将消失。一旦提交周围的事务,效果将持续到会话结束,除非被另一个 UPDATE 或 SET 覆盖。
此视图不会显示 自定义选项,除非定义它们的扩展模块已由执行查询的后端进程加载(例如,通过 shared_preload_libraries 中的提及、对扩展中 C 函数的调用或 LOAD 命令)。例如,由于 归档模块 通常仅由归档器进程加载,而不是常规会话,因此此视图不会显示由此类模块定义的任何自定义选项,除非采取特殊操作将它们加载到执行查询的后端进程中。
如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。