写点什么

云小课|教你如何使用 RDS for PostgreSQL 插件

  • 2022 年 4 月 24 日
  • 本文字数:2315 字

    阅读完需:约 8 分钟

本文分享自华为云社区《【云小课】【第42课】RDS for PostgreSQL插件介绍》,作者:数据库的小云妹。

本文介绍 RDS for PostgreSQL 支持的插件及不同插件的创建、删除或使用方法。

PostgreSQL 插件简介

PostgreSQL 是开源数据库中经典的大型关系型数据库之一,它不仅具备经典关系型数据库的功能,而且在不断发展。PostgreSQL 的发展不仅受到了很多基于 PostgreSQL 外部应用的影响,而且发展出了更多基于 PostgreSQL 的应用,例如 PostGIS(GIS 领域中重要组件)。从技术角度讲,PostGIS 是 PostgreSQL 的一个扩展(extension),即插件。像 PostGIS 这样的插件已经在计算机相关的领域中都得到不同程度的应用,它成为 PostgreSQL 功能延展性的主要特点。


PostgreSQL 插件的功能不仅体现在新增复杂的数据类型、索引等数据的基本功能上,这些基本功能也是 GIS 领域所特别需要的,并且 PostgreSQL 的插件可以完成包括分布式、异构数据访问等的各种高级功能。这使得 PostgreSQL 数据库不仅仅是一个传统的经典关系型数据库,并且通过插件的扩展功能,它完全可以满足今天互联网对于大数据应用的需求。

RDS for PostgreSQL 插件列表

RDS for PostgreSQL 和社区版 PostgreSQL 一样,也支持通过插件,实现更多的扩展功能。当前 RDS for PostgreSQL 支持的插件如下表所示:



说明:

  • 表中的数据均来源于 PostgreSQL 引擎各个版本,最新小版本支持的插件列表。

  • 您可以通过 SELECT name FROM pg_available_extensions;查看当前实例支持的插件列表。如果当前实例的版本不支持某个插件,您可以将当前实例迁移至新版本实例,迁移方法请参考迁移方案概览。

  • 使用 mysql_fdw、oracle_fdw、pgsql-ogr-fdw、postgres_fdw 和 tds_fdw 等需要跨数据库实例访问的插件时,需确保两个数据库实例的服务端 IP 必须在同一个 VPC 和子网内。

  • 具有公测权限的用户才可使用 RDS for PostgreSQL 13,您可以提交工单申请。

创建 RDS for PostgreSQL 插件

说明:

  • RDS for PostgreSQL 插件是数据库级生效,并不是全局生效。因此创建插件时需要在业务所在数据库上进行手动创建。

  • RDS for PostgreSQL 的以下插件不需要通过手动创建或删除:

  • auto_explain

  • passwordcheck

  • pg_profile_pro

  • pg_sql_history

  • plpgsql

  • wal2json

  • test_decoding

  • RDS for PostgreSQL 11、RDS for PostgreSQL 增强版、RDS for PostgreSQL 12 和 RDS for PostgreSQL 13 的最新小版本,支持以 root 用户通过社区的方式来创建(create extension)、删除(drop extension)插件。

1. 执行如下命令,以 root 用户连接数据库,以 database1 为例,并使用模板库 template1 创建需要支持插件的数据库。


# psql --host=RDS_ADDRESS --port=DB_PORT --dbname=database1 --username=root -c "create database DB_NAME template template1;"

说明:

  • RDS_ADDRESS 为 RDS 实例的 IP 地址。

  • DB_PORT 为 RDS 数据库实例的端口。

  • DB_NAME 为需要创建插件的数据库名称。

回显如下信息,请输入 root 用户的密码。

Password for user root:
复制代码

注意:

如果执行操作为:由普通用户 user1 创建的数据库 db1,您需要先使用普通用户 user1 登录数据库 db1(登录方式参考上述内容),然后执行如下命令将数据库 db1 的权限授予 root 用户。


GRANT ALL ON DATABASE db1 TO root;


示例:创建需要支持插件的数据库 my_extension_db

# psql --host=192.168.6.141 --port=5432 --dbname=database1 --username=root -c "create database my_extension_db template template1;"

Password for user root: CREATE DATABASE
复制代码

2. 以 root 用户连接需要支持插件的数据库,并创建插件。


# psql --host=RDS_ADDRESS --port=DB_PORT --dbname=DB_NAME --username=root -c "select control_extension('create','EXTENSION_NAME');"


说明:

  • RDS_ADDRESS 为 RDS 实例的 IP 地址。

  • DB_PORT 为 RDS 数据库实例的端口。

  • DB_NAME 为需要创建插件的数据库名称。

  • EXTENSION_NAME 为插件名称,请参见上表。

回显如下信息,请输入 root 用户的密码。

Password for user root:
复制代码

示例:在数据库 my_extension_db 中创建 postgis 插件

# psql --host=192.168.6.141 --port=5432 --dbname=my_extension_db --username=root -c "select control_extension('create','postgis');"

Password for user root:        control_extension        ------------------------------  create postgis successfully. (1 row)
复制代码

删除 RDS for PostgreSQL 插件

说明:

  • RDS for PostgreSQL 插件是数据库级生效,并不是全局生效。因此创建插件时需要在业务所在数据库上进行手动创建。

  • RDS for PostgreSQL 的以下插件不需要通过手动创建或删除:

  • auto_explain

  • passwordcheck

  • pg_profile_pro

  • pg_sql_history

  • plpgsql

  • wal2json

  • test_decoding

  • RDS for PostgreSQL 11、RDS for PostgreSQL 增强版、RDS for PostgreSQL 12 和 RDS for PostgreSQL 13 的最新小版本,支持以 root 用户通过社区的方式来创建(create extension)、删除(drop extension)插件。

执行如下命令,以 root 用户连接已创建插件的数据库,并删除插件。

# psql --host=RDS_ADDRESS --port=DB_PORT --username=root --dbname=DB_NAME -c "select control_extension ('drop','EXTENSION_NAME');"

说明:

  • RDS_ADDRESS 为 RDS 实例的 IP 地址。

  • DB_PORT 为 RDS 数据库实例的端口。

  • DB_NAME 为需要创建插件的数据库名称。

  • EXTENSION_NAME 为插件名称,请参见上表。

回显如下信息,请输入 root 用户的密码。

Password for user root:
复制代码

示例:

# psql --host=192.168.6.141 --port=5432 --dbname=my_extension_db --username=root -c "select control_extension('drop','postgis');"

Password for user root:      control_extension      ---------------------------- drop postgis successfully.(1 row)
复制代码

RDS for PostgreSQL 插件说明



点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
云小课|教你如何使用RDS for PostgreSQL插件_postgresql_华为云开发者社区_InfoQ写作社区