PG修改参数

0    519    1

Tags:

👉 本文共约5102个字,系统预计阅读时间或需20分钟。

SHOW

SHOW — 显示一个运行时参数的值

大纲

描述

SHOW将显示运行时参数的当前设置。 这些变量可以使用SET语句、编辑 postgresql.conf配置参数、通过 PGOPTIONS环境变量(使用 libpq或者基于libpq的应用时) 或者启动postgres服务器时通过命令行 标志设置。详见第 19 章

参数

  • name

    一个运行时参数的名称。可用的参数记录在 第 19 章SET参考页。此外,有一些可以显示但不能设置的参数:SERVER_VERSION显示服务器的版本号。SERVER_ENCODING显示服务器端的字符集编码。当前,这个参数可以被显示 但不能被设置,因为该设置是在数据库创建时决定的。LC_COLLATE显示数据库的排序规则(文本序)的区域设置。当前, 这个参数可以被显示但不能被设置,因为该设置是在 数据库创建时决定的。LC_CTYPE显示数据库的字符分类的区域设置。当前, 这个参数可以被显示但不能被设置,因为该设置 是在数据库创建时决定的。IS_SUPERUSER如果当前角色具有超级用户特权则为真。

  • ALL

    显示所有配置参数的值,并带有描述。

注解

函数current_setting产生等效的输出,见 第 9.27 节。还有, pg_settings 系统事务产生同样的信息。

示例

显示参数DateStyle的当前设置:

显示参数geqo的当前设置:

显示所有设置:

兼容性

SHOW命令是一种 PostgreSQL扩展。

SET

SET — 更改一个运行时参数,set命令只影响当前会话使用的值。

大纲

描述

SET命令更改运行时配置参数。很多 第 19 章中列出的参数可以用 SET即时更改(但是有些需要超级用户 特权才能更改,并且还有一些在服务器或者会话启动之后不能被更改)。 SET只影响当前会话所使用的值。

如果在一个事务内发出SET (或者等效的SET SESSION)而该事务后来 中止,在该事务被回滚时SET命令的效果会 消失。一旦所在的事务被提交,这些效果将会持续到会话结束(除非被另 一个SET所覆盖)。

SET LOCAL的效果只持续到当前事务结束, 不管事务是否被提交。一种特殊情况是在一个事务内 SET后面跟着 SET LOCALSET LOCAL值将会在该事务结束前一直可见, 但是之后(如果该事务被提交)SET值将会生效。

SETSET LOCAL 的效果也会因为回滚到早于它们的保存点而消失。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

如果在一个函数内使用SET LOCAL并且该函数 还有对同一变量的SET选项(见 CREATE FUNCTION),在函数退出时 SET LOCAL命令的效果会消失。也就是说,该 函数被调用时的值会被恢复。这允许用 SET LOCAL在函数内动态地或者重复地更改 一个参数,同时仍然能便利地使用SET选项来保存以及恢复调用 者的值。不过,一个常规的SET命令会覆盖它所在的任何函 数的SET选项,除非回滚,它的效果将一直保持。

注意

在PostgreSQL 版本 8.0 到 8.2 中, 一个SET LOCAL的效果会因为释放较早的 保存点或者成功地从一个PL/pgSQL异常块 中退出而被取消。这种行为已经被更改,因为它被认为不直观。

参数

  • SESSION

    指定该命令对当前会话有效(这是默认值)。

  • LOCAL

    指定该命令只对当前事务有效。在COMMIT或者 ROLLBACK之后,会话级别的设置会再次生效。 在事务块外部发出这个参数会发出一个警告并且不会有效果。

  • configuration_parameter

    一个可设置运行时参数的名称。可用的参数被记录在 第 19 章和下文中。

  • value

    参数的新值。根据特定的参数,值可以被指定为字符串常量、标识符、 数字或者以上构成的逗号分隔列表。写DEFAULT 可以指定把该参数重置成它的默认值(也就是说在当前会话中还没有 执行SET命令时它具有的值)。

除了在第 19 章中记录的配置参数, 还有一些参数只能用SET命令设置 或者具有特殊的语法:

  • SCHEMA

    SET SCHEMA '*value*'SET search_path TO *value*的一个别名。 使用这种语法只能指定一个模式。

  • NAMES

    SET NAMES *value*SET client_encoding TO *value*的一个别名。

  • SEED

    为随机数生成器(函数random)设置 一个内部种子。允许的值是 -1 和 1 之间的浮点数,它会被乘上 231-1。也可以通过调用函数setseed来设置种子:SELECT setseed(*value*);

  • TIME ZONE

    SET TIME ZONE *value*SET timezone TO *value*的一个别 名。语法SET TIME ZONE允许用于时区指定的特 殊语法。这里是合法值的例子:'PST8PDT'加州伯克利的时区。'Europe/Rome'意大利的时区。-7UTC 以西 7 小时的时区(等效于 PDT)。正值则是 UTC 以东。INTERVAL '-08:00' HOUR TO MINUTEUTC 以西 8 小时的时区(等效于 PST)。LOCAL DEFAULT把时区设置为你的本地时区(也就是说服务器的timezone默认值)。以数字或区间给出的时区设置在内部被翻译成 POSIX 时区语法。 例如,在SET TIME ZONE -7之后, SHOW TIME ZONE将会报告 <-07>+07。有关时区的更多信息可见第 8.5.3 节

注解

函数set_config提供了等效的功能,见 第 9.27 节。此外,可以更新 pg_settings 系统视图来执行与SET等效的工作。

示例

设置模式搜索路径:

把日期风格设置为传统 POSTGRES的 “日在月之前”的输入习惯:

设置时区为加州伯克利:

设置时区为意大利:

兼容性

SET TIME ZONE扩展了 SQL 标准定义的语法。标准 只允许数字的时区偏移量而 PostgreSQL允许更灵活的时区说明。 所有其他SET特性都是 PostgreSQL扩展。

RESET

RESET — 把一个运行时参数的值恢复到默认值

大纲

描述

RESET把运行时参数恢复到它们的默认值。 RESET

的另一种写法。 详见SET

默认值被定义为如果在当前会话中没有发出过SET, 参数必须具有的值。这个值的实际来源可能是一个编译在内部的默认值、 配置文件、命令行选项、或者针对每个数据库或者每个用户的默认设置。 这和把它定义成“在会话开始时该参数得到的值”有细微的差 别,因为如果该值来自于配置文件,它将被重置为现在配置文件所指定 的任何东西。详见第 19 章

RESET的事务行为和SET相同: 它的效果会被事务回滚撤销。

参数

  • configuration_parameter

    一个可设置的运行时参数名称。可用的参数记录在 第 19 章以及 SET参考页中。

  • ALL

    把所有可设置的运行时参数重置为默认值。

示例

timezone配置变量设置为默认值:

兼容性

RESET是一种 PostgreSQL扩展。

ALTER SYSTEM

ALTER SYSTEM — 更改一个服务器配置参数

大纲

描述

ALTER SYSTEM被用来在整个数据库集簇范围内更改 服务器配置参数。它比传统的手动编辑postgresql.conf 文件的方法更方便。ALTER SYSTEM会把给出的参数 设置写入到postgresql.auto.conf文件中,该文件会随着 postgresql.conf一起被读入。把一个参数设置为 DEFAULT或者使用RESET变体可以 把该配置项从postgresql.auto.conf文件中移除。使用 RESET ALL可以移除所有这类配置项。

ALTER SYSTEM设置的值将在下一次重载服务器 配置后生效,那些只能在服务器启动时更改的参数则会在下一次服务器重启后生效。 重载服务器配置可以通过以下做法实现:调用 SQL 函数pg_reload_conf(), 运行pg_ctl reload或者向主服务器进程发送一个SIGHUP信号。

只有超级用户能够使用ALTER SYSTEM。还有,由于 这个命令直接作用于文件系统并且不能被回滚,不允许在一个事务块或者函数中使用它。

参数

  • configuration_parameter

    一个可设置配置参数的名称。可用的参数可见第 19 章

  • value

    该参数的新值。值可以被指定为字符串常量、标识符、数字或者以上这些构成的 逗号分隔的列表,值的具体形式取决于特定的参数。写上 DEFAULT可以用来把该参数及其值从 postgresql.auto.conf中移除。

注解

不能用这个命令来设置data_directory以及 postgresql.conf中不被允许的参数(例如 preset options)。

其他设置参数的方法见第 19.1 节

示例

设置wal_level

撤销以上的设置,恢复postgresql.conf中有效的设置:

兼容性

ALTER SYSTEM语句是一种 PostgreSQL扩展。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部