Compartir a través de

如何使用 Azure Database for PostgreSQL 的 PostgreSQL 扩展

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

Azure Database for PostgreSQL 灵活服务器让你可以使用扩展来扩展数据库功能的能力。 扩展在单个包中捆绑多个相关 SQL 对象,可以使用命令在数据库中加载或删除该包。 将包加载到数据库中后,扩展会如同内置功能一样运行。

允许扩展

在 Azure Database for PostgreSQL 灵活服务器中安装扩展之前,必须允许列出这些扩展以供使用。

使用 Azure 门户

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

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

  3. azure.extensions 参数中可用的扩展中选择要加入允许列表的扩展,然后选择“保存”

    允许列表的屏幕截图。

加载库

shared_preload_libraries 是一个服务器配置参数,用于确定 Azure Database for PostgreSQL 灵活服务器启动时必须加载哪些库。 必须通过此参数加载使用共享内存的所有库。 如果需要将扩展添加到共享预加载库,请执行以下步骤:

使用 Azure 门户

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

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

  3. shared_preload_libraries 的值中包含要添加的库,然后选择“保存”

    设置 shared_preload_libraries 时的服务器参数页的屏幕截图。

  4. 由于 shared_preload_libraries 是静态服务器参数,因此需要重启服务器,使更改生效。

    “服务器参数”页的屏幕截图,其中显示了从中保存更改和重启的对话框。

创建扩展

将某个扩展加入允许列表后,如果该扩展需要它,则还可以将其加入 shared_load_libraries,在要使用它的每个数据库中创建或安装它。

  1. 若要创建扩展,用户必须是 azure_pg_admin 角色的成员。

  2. 运行 CREATE EXTENSION 命令以创建或安装特定扩展。 此命令将打包的对象加载到数据库中。

注意

Azure Database for PostgreSQL 灵活服务器中提供的第三方扩展是开源许可代码。 我们不提供任何具有高级或专有许可模型的第三方扩展或扩展版本。

Azure Database for PostgreSQL 灵活服务器实例支持关键 PostgreSQL 扩展的子集,如按名称列出的支持扩展按 PostgreSQL 的版本列出的支持扩展中所列。 还可以通过运行 SHOW azure.extensions; 获取此信息。 Azure Database for PostgreSQL 灵活服务器不支持未包含在这些列表中的扩展。 不能在 Azure Database for PostgreSQL 灵活服务器中创建或加载自己的扩展。

删除扩展

若要删除扩展,请先确保将其加入允许列表

  1. 若要删除扩展,用户必须是 azure_pg_admin 角色的成员。

  2. 运行 DROP EXTENSION 命令以删除或卸载特定扩展。 此命令将从数据库中删除在扩展中打包的对象。

更新扩展

若要将已安装的扩展更新到 Azure 支持的最新发布版本,请使用以下 SQL 命令:

ALTER EXTENSION <extension_name> UPDATE;

此命令允许用户手动升级到 Azure 批准的最新版本,简化了数据库扩展的管理,增强了兼容性和安全性。

限制

虽然更新扩展很简单,但也存在一定的限制:

  • 特定版本选择:此命令不支持更新到扩展的中间版本。

  • 降级:不支持将扩展降级到以前的版本。 如果需要降级,则可能需要支持部门的帮助,具体取决于以前的版本的可用性。

查看已安装的扩展

若要列出当前安装在数据库上的扩展,请使用以下 SQL 命令:

SELECT * FROM pg_extension;

可能的错误

Azure Database for PostgreSQL 中的“azure_pg_admin”用户不允许将扩展“%s”加入允许列表

运行引用未加入允许列表的扩展的 CREATE EXTENSIONDROP EXTENSION 命令时,或者运行命令所在的 Azure Database 灵活服务器尚不支持的扩展时,会出现此错误。

只有“azure_pg_admin”成员才允许使用 CREATE EXTENSION

当运行 CREATE EXTENSION 命令的用户不是 azure_pg_admin 角色的成员时,将发生此错误。

只有“azure_pg_admin”成员才允许使用 DROP EXTENSION

当运行 DROP EXTENSION 命令的用户不是 azure_pg_admin 角色的成员时,将发生此错误。