你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

配置 Azure Database for PostgreSQL 灵活服务器中的服务器参数

适用于: Azure Database for PostgreSQL 灵活服务器

你可以列出、显示和更新 Azure Database for PostgreSQL 灵活服务器实例的配置参数。

参数自定义

可以使用各种方法和级别根据特定需求来自定义参数。

全局级别

若要查看服务器参数的当前配置值或在实例或服务器级别全局更改它们,可以使用 Azure 门户中的“服务器参数”页。 还可以使用 CLIREST APIAzure 资源管理器模板或第三方 IaC 工具与服务器参数全局交互。

注意

Azure Database for PostgreSQL 是托管数据库服务,因此用户没有主机或操作系统访问权限,无法查看或修改配置文件(例如 postgresql.conf)。 这些文件的内容会根据所做的参数更改自动更新。

在同一篇文章中,可以找到与服务器参数全局交互的各个部分,以便:

精细级别

可以在更精细的级别调整参数。 这些调整将覆盖全局设置的值。 它们的范围和持续时间取决于你创建它们的级别:

  • 数据库级别:使用 ALTER DATABASE 命令进行特定于数据库的配置。

  • 角色或用户级别:使用 ALTER USER 命令进行以用户为中心的设置。

  • 函数、过程级别:定义函数或过程时,可以指定或更改在调用函数时使用的配置参数。

  • 表级别:例如,可在此级别修改与自动清理相关的参数。

  • 会话级别:在单个数据库会话的生命周期内,可以调整特定参数。 PostgreSQL 通过以下 SQL 命令促进这种调整:

    • 使用 SET 命令进行特定于会话的调整。 这些更改将作为当前会话期间的默认设置。 要访问这些更改,可能需要特定的 SET 权限,并且上述可修改参数和只读参数的限制不适用。 相应的 SQL 函数为 set_config(setting_name, new_value, is_local)
    • 使用 SHOW 命令检查现有参数设置。 其 SQL 函数等效项为 current_setting(setting_name text)

列出所有服务器参数

使用 Azure 门户

  1. 选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在资源菜单的“设置”部分下,选择“服务器参数”。 该页显示参数列表、其配置值、可选单位、它们是否为只读/动态/静态及其说明。

    “服务器参数”页的屏幕截图。

  3. 选择或将鼠标悬停在“i”(信息)图标上,以查看每个参数可以设置的允许值。 取决于参数的数据类型(可以是字符串、枚举、整数、布尔值、数值、集),允许的值会有所不同。 它分别可以是正则表达式、值列表、整数范围、on/off、小数范围、值列表。

    显示悬停在信息图标上时弹出的气球的屏幕截图。

  4. 实例支持的服务器参数列表由数百个项组成,以每页 20 个项的页面形式呈现。 在页面底部,有一个控件通知你你所处的位置。 还有一个分页控件,可用于浏览整个页面集。

    服务器参数页中的分页控件的屏幕截图。

  5. 如果需要,请使用“搜索以筛选项...”文本框将列表缩小到名称或说明中包含搜索词的那些参数。

    服务器参数中的搜索的屏幕截图。

“参数类型”列可以显示每个参数的以下任何值:

参数类型 说明
静态 要求服务器重启以使更改生效。
动态 无需重启服务器实例即可更改。 但是,更改仅适用于修改后建立的新连接。
只读 用户无法配置它们,因为它们在维护服务的可靠性、安全性或其他操作方面起着关键作用。

列出具有修改后的默认值的服务器参数

使用 Azure 门户

  1. 选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在资源菜单中的“设置”部分下,选择“服务器参数”,然后选择“修改后”选项卡。该页显示当前设置的值偏离默认值的参数的列表。

    修改后的服务器参数的屏幕截图。

列出读写静态服务器参数

使用 Azure 门户

  1. 选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在资源菜单中的“设置”部分下,选择“服务器参数”,然后选择“静态”选项卡。该页显示读写参数的列表,对于这些参数,如果更改了其值,则需要重启服务器以使新值生效。

    静态服务器参数的屏幕截图。

列出读写动态服务器参数

使用 Azure 门户

  1. 选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在资源菜单中的“设置”部分下,选择“服务器参数”,然后选择“动态”选项卡。该页显示读写参数的列表,对于这些参数,如果更改了其值,则需要重启服务器以使新值生效。

    动态服务器参数的屏幕截图。

列出只读服务器参数

使用 Azure 门户

  1. 选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在资源菜单中的“设置”部分下,选择“服务器参数”,然后选择“只读”选项卡。该页显示只读参数的列表。

    只读服务器参数的屏幕截图。

设置一个或多个服务器参数的值

使用 Azure 门户

  1. 选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在资源菜单的“设置”部分下,选择“服务器参数”。

  3. 找到要更改其当前值的读写参数,将它们设置为新的所需值,请注意会有一条信息性消息指示尚未保存多少个服务器参数更改,然后选择“保存”。

    设置服务器参数值的屏幕截图。

  4. 如果更改的任何参数的列“参数类型”等于“静态”,则服务器需要重启才能使更改生效。 在这种情况下,会弹出一个对话框,你可以根据需要进行选择:

    • 保存并重启:如果要保留对值已修改的所有参数所做的所有更改,并在之后立即重启服务器以使对静态参数所做的任何更改生效。
    • 仅保存:如果要保留对设置的值已更改的所有参数所做的所有更改,但希望将服务器重启推迟到以后的时间。 在未完成服务器重启操作之前,对任何静态服务器参数所做的更改都不会生效。
    • 取消:尚不实现任何更改。

    修改静态参数后请求重启服务器的对话框的屏幕截图。

将服务器参数还原为其默认值

使用 Azure 门户

  1. 选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在资源菜单的“设置”部分下,选择“服务器参数”。

  3. 找到要将其当前值还原为其默认值的读写参数,选择屏幕最右侧的省略号,然后选择“重置为默认值”。

    将一个服务器参数的值重置为其默认值的屏幕截图。

重要

对于指定为只读的参数,选择省略号时不会弹出“重置为默认值“菜单选项。

  1. 如果尝试重置为默认值的参数的列“参数类型”等于“静态”,则服务器需要重新启动以使更改生效。 在这种情况下,会弹出一个对话框,你可以根据需要进行选择:

    • 保存并重启:如果要保留对值已修改的所有参数所做的所有更改,并在之后立即重启服务器以使对静态参数所做的任何更改生效。
    • 仅保存:如果要保留对设置的值已更改的所有参数所做的所有更改,但希望将服务器重启推迟到以后的时间。 在未完成服务器重启操作之前,对任何静态服务器参数所做的更改都不会生效。
    • 取消:尚不实现任何更改。

    修改静态参数的值后请求重启服务器的对话框的屏幕截图。

将所有服务器参数还原为其默认值

使用 Azure 门户

  1. 选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在资源菜单的“设置”部分下,选择“服务器参数”。

  3. 选择“全部重置为默认值”。

    将所有服务器参数的值重置为其默认值的屏幕截图。

  4. 如果对于当前值与其默认值不匹配的任何参数,列“参数类型”等于“静态”,则服务器需要重启以使更改生效。 在这种情况下,会弹出一个对话框,你可以根据需要进行选择:

    • 保存并重启:如果要保留对值已修改的所有参数所做的所有更改,并在之后立即重启服务器以使对静态参数所做的任何更改生效。
    • 仅保存:如果要保留对设置的值已更改的所有参数所做的所有更改,但希望将服务器重启推迟到以后的时间。 在未完成服务器重启操作之前,对任何静态服务器参数所做的更改都不会生效。
    • 取消:尚不实现任何更改。

    将全部重置为默认值后请求重启服务器的对话框的屏幕截图。

使用时区参数

如果你打算在 PostgreSQL 中使用日期和时间数据,请确保为你的位置设置正确的时区。 所有需要显示时区的日期和时间均以 UTC 形式存储在 PostgreSQL 内部。 它们会转换为 TimeZone 服务器参数指定的时区中的当地时间,然后再显示给客户端。 可以在“服务器参数”页上编辑此参数。 PostgreSQL 允许以三种不同的形式指定时区:

  • 完整的时区名称,例如 America/New_York。 pg_timezone_names 视图中列出了已识别的时区名称。
    在 psql 中查询此视图并获取时区名称列表的示例:

    select name FROM pg_timezone_names LIMIT 20;

    应看到如下所示的结果集:

              name
          -----------------------
          GMT0
          Iceland
          Factory
          NZ-CHAT
          America/Panama
          America/Fort_Nelson
          America/Pangnirtung
          America/Belem
          America/Coral_Harbour
          America/Guayaquil
          America/Marigot
          America/Barbados
          America/Porto_Velho
          America/Bogota
          America/Menominee
          America/Martinique
          America/Asuncion
          America/Toronto
          America/Tortola
          America/Managua
          (20 rows)
      
  • 时区的缩写,例如 PST。 此类规范仅定义相对于 UTC 的特定偏移量,而完全时区名称则意味着一组夏令时转换日期规则。 pg_timezone_abbrevs 视图中列出了已识别的缩写 在 psql 中查询此视图并获取时区缩写列表的示例:

     select abbrev from pg_timezone_abbrevs limit 20;

    应看到如下所示的结果集:

          abbrev|
          ------+
          ACDT  |
          ACSST |
          ACST  |
          ACT   |
          ACWST |
          ADT   |
          AEDT  |
          AESST |
          AEST  |
          AFT   |
          AKDT  |
          AKST  |
          ALMST |
          ALMT  |
          AMST  |
          AMT   |
          ANAST |
          ANAT  |
          ARST  |
          ART   |
      
  • 除了时区名称和缩写,PostgreSQL 还接受 STDoffset 或 STDoffsetDST 形式的 POSIX 样式的时区规范,其中 STD 是区域缩写,offset 是 UTC 以西以小时为单位的偏移数值,DST 是一个可选的夏令时区域缩写,假定它代表比给定偏移量提前一个小时。

与 Azure Database for PostgreSQL 产品团队分享你的建议和 bug