Postgresql 中文操作指南
54.24. pg_settings #
Table 54.24. pg_settings Columns
Column Type Description |
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 当前值所在的配置文件(从配置文件以外的源设置的值,或由不是超级用户且没有 pg_read_all_settings 权限的用户检查时为 null);在配置文件中使用 include 指令时,此项极有帮助 |
sourceline int4 当前值所在的配置文件中的行号(从配置文件以外的源设置的值,或由不是超级用户且没有 pg_read_all_settings 权限的用户检查时为 null) |
pending_restart bool true 如果值已在配置文件中更改,但需要重新启动;否则为 false 。 |
context 有几种可能的值。按照更改设置的难度递减排列,它们是:
-
internal
-
这些设置不能直接更改;它们反映内部确定的值。其中一些可能会通过使用不同的配置选项或更改提供给 initdb 的选项来重建服务器来调整。
-
-
postmaster
-
这些设置只能在服务器启动时应用,因此任何更改都需要重新启动服务器。这些设置的值通常存储在 postgresql.conf 文件中,或在启动服务器时在命令行中传递。当然,任何较低 context 类型的设置也可以在服务器启动时设置。
-
-
sighup
-
可以在 postgresql.conf 中更改这些设置,无需重新启动服务器。向 postmaster 发送 SIGHUP 信号以使其重新读取 postgresql.conf 并应用更改。postmaster 还会将其子进程转发 SIGHUP 信号,以便它们全部获取新值。
-
-
superuser-backend
-
可以在 postgresql.conf 中更改这些设置而不重启服务器。也可以在连接请求数据包(例如,通过 libpq 的 PGOPTIONS 环境变量)中将这些设置设为特定会话,但前提是连接用户是超级用户或被授予了适当的 SET 权限。但是,在会话开始后,这些设置在会话中绝不会更改。如果在 postgresql.conf 中更改了它们,则向后端程序发送一个 SIGHUP 信号,使它重新读取 postgresql.conf 。新值仅会影响之后启动的会话。
-
-
backend
-
可以在 postgresql.conf 中更改这些设置而不重启服务器。也可以在连接请求数据包(例如,通过 libpq 的 PGOPTIONS 环境变量)中将这些设置设为特定会话;任何用户都可以对其会话进行此类更改。但是,在会话开始后,这些设置在会话中绝不会更改。如果在 postgresql.conf 中更改了它们,则向后端程序发送一个 SIGHUP 信号,使它重新读取 postgresql.conf 。新值仅会影响之后启动的会话。
-
-
superuser
-
这些设置可以从 postgresql.conf 设置,或者通过 SET 命令在会话中设置;但只有超级用户和有适当 SET 权限的用户可以通过 SET 更改它们。 postgresql.conf 中的更改仅当没有使用 SET 建立会话本地值时才会影响现有会话。
-
-
user
-
这些设置可以从 postgresql.conf 设置,或者通过 SET 命令在会话中设置。允许任何用户更改其会话本地值。 postgresql.conf 中的更改仅当没有使用 SET 建立会话本地值时才会影响现有会话。
-
有关更改这些参数的多种方式的详细信息,请参见 Section 20.1 。
无法插入或删除此视图,但是可以更新该视图。 对 pg_settings 行应用的 UPDATE SET 等效于对该命名参数执行该命令。更改只影响当前会话使用的值。如果在稍后中止的事务中发出了 UPDATE ,则当事务回滚时, UPDATE 命令的效果就会消失。一旦提交了周围的事务,除非被另一个 UPDATE 或 SET 覆盖,否则效果将持续到会话结束。
此视图不会显示 customized options ,除非定义它们的扩展模块已由执行查询的后端进程加载(例如,通过 shared_preload_libraries 中的说明、调用扩展中的 C 函数或 LOAD 命令)。例如,由于 archive modules 通常只由归档程序进程加载,而不是常规会话,除非采取特殊措施将它们加载到执行查询的后端进程中,否则此视图不会显示此类模块定义的任何自定义选项。