本文介绍 RDS for PostgreSQL 的插件及不同插件的创建、删除或使用方法。
PostgreSQL插件简介是开源数据库中的关系型数据库,它的 PostgreSQL 确实具有基本关系型数据库的功能,而且在不断发展。 PostgreSQL 的应用,比如 PostGIS(GIS 领域中的组件)。从技术角度讲,PostGIS 是 PostgreSQL 的一个扩展(扩展),即插件。PostGIS 这类插件在计算机相关领域中已经有不同程度的应用,它成为 PostgreSQL 功能延展性的主要特点。
PostgreSQL 的插件可以完成包括各种类型、各种数据访问的各种类型等功能。这家大型PostgreSQL应用数据数据库和传统的关系关系可以满足今天互联网的全面扩展需求。
RDS for PostgreSQL 插件列表RDS for PostgreSQL 和社区版PostgreSQL 一样,也支持通过插件,实现更多的扩展功能。目前RDS for PostgreSQL 支持的插件如下表所示:
名称插件
| PostgreSQL 9.5
| PostgreSQL 9.6
| PostgreSQL 10
| PostgreSQL 11
| PostgreSQL增强版
| PostgreSQL 12
| PostgreSQL 13
|
地址标准化器
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 3.0.0
| 3.1.0
|
address_standardizer_data_us
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 3.0.0
| 3.1.0
|
安检
| 无
| 无
| 无
| 1.1
| 1.1
| 1.2
| 1.2
|
自动解释
| 2
| 2
| 2
| 2
| 2
| 2
| 2
|
盛开
| 无
| 无
| 无
| 1.0
| 1.0
| 1.0
| 1.0
|
btree_gin
| 1.0
| 1.0
| 1.2
| 1.3
| 1.3
| 1.3
| 1.3
|
btree_gist
| 1.1
| 1.2
| 1.5
| 1.5
| 1.5
| 1.5
| 1.5
|
西文
| 1.1
| 1.3
| 1.4
| 1.5
| 1.5
| 1.6
| 1.6
|
立方体
| 1.0
| 1.2
| 1.2
| 1.4
| 1.4
| 1.4
| 1.4
|
数据库链接
| 1.1
| 1.2
| 1.2
| 1.2
| 1.2
| 1.2
| 1.2
|
dict_int
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
dict_xsyn
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
地球距离
| 1.0
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
|
模糊字符串匹配
| 1.0
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
|
hll
| 2.12
| 2.12
| 2.12
| 2.12
| 2.12
| 2.14
| 2.15.1
|
hstore
| 1.3
| 1.4
| 1.4
| 1.5
| 1.5
| 1.6
| 1.7
|
重症监护病房
| 无
| 无
| 无
| 1.0
| 1.0
| 1.0
| 1.0
|
整合
| 1.0
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
|
数组内
| 1.0
| 1.2
| 1.2
| 1.2
| 1.2
| 1.2
| 1.3
|
是
| 1.0
| 1.1
| 1.1
| 1.2
| 1.2
| 1.2
| 1.2
|
ltree
| 1.0
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
| 1.2
|
mysql_fdw
| 无
| 无
| 无
| 2.5.5
| 2.5.5
| 2.5.5
| 2.5.5
|
oracle_fdw
| 无
| 无
| 2.1.0
| 2.1.0
| 2.1.0
| 2.2.0
| 2.3.0
|
口述
| 3.8.0
| 3.8.0
| 3.8.0
| 3.8.0
| 0
| 3.8.0
| 3.14.0
|
页面检查
| 1.3
| 1.5
| 1.6
| 1.7
| 1.7
| 1.7
| 1.8
|
密码检查
| 2
| 2
| 2
| 2
| 2
| 2
| 2
|
pg_bigm
| 无
| 无
| 无
| 1.2_20200228
| 1.2_20200228
| 1.2_20200228
| 1.2_20200228
|
pg_buffercache
| 1.1
| 1.2
| 1.3
| 1.3
| 1.3
| 1.3
| 1.3
|
pg_cron
| 无
| 无
| 无
| 无
| 无
| 1.2.0
| 1.3.0
|
pg_freespacemap
| 1.0
| 1.1
| 1.2
| 1.2
| 1.2
| 1.2
| 1.2
|
pg_hint_plan
| 1.1.5
| 1.2.0
| 1.3.0
| 1.3.5
| 1.3.5
| 1.3.7
| 1.3.7
|
pg_jieba
| 1.1.0
| 1.1.0
| 1.1.0
| 1.1.0
| 1.1.0
| 1.1.0
| 2.0.1
|
pg_pathman
| 1.5.8
| 1.5.8
| 1.5.8
| 1.5.8
| 1.5.8
| 1.5.12
| 1.5.12
|
pg_prewarm
| 1.0
| 1.1
| 1.1
| 1.2
| 1.2
| 1.2
| 1.2
|
pg_repack
| 1.4.6
| 1.4.6
| 1.4.6
| 1.4.6
| 1.4.6
| 1.4.6
| 1.4.6
|
pg_roaringbitmap
| 无
| 无
| 无
| 0.5.2
| 0.5.2
| 0.5.2
| 0.5.2
|
pg_stat_statements
| 1.3
| 1.4
| 1.6
| 1.6
| 1.6
| 1.7
| 1.8
|
pg_trgm
| 1.1
| 1.3
| 1.3
| 1.4
| 1.4
| 1.4
| 1.5
|
pg_visibility
| 无
| 无
| 无
| 1.2
| 1.2
| 1.2
| 1.2
|
pgcrypto
| 1.2
| 1.3
| 1.3
| 1.3
| 1.3
| 1.3
| 1.3
|
逻辑的
| 无
| 无
| 无
| 2.3.3
| 2.3.3
| 2.3.3
| 2.3.3
|
pg_profile_pro
| 无
| 无
| 无
| 无
| 无
| 1.0
| 无
|
灌浆
| 无
| 无
| 无
| 3.1.0
| 3.1.0
| 3.1.0
| 3.1.3
|
密码锁
| 1.1
| 1.2
| 1.2
| 1.2
| 1.2
| 1.2
| 1.2
|
pg_sql_history
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
pgsql-ogr-fdw
| 无
| 无
| 无
| 1.0.12
| 1.0.12
| 1.0.12
| 1.0.12
|
pgstattuple
| 1.3
| 1.4
| 1.5
| 1.5
| 1.5
| 1.5
| 1.5
|
plpgsql
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
plperl
| 无
| 无
| 无
| 1.0
| 1.0
| 1.0
| 1.0
|
plproxy
| 无
| 无
| 无
| 2.10.0
| 2.10.0
| 2.10.0
| 2.10.0
|
plv8
| 无
| 无
| 无
| 2.3.15
| 2.3.15
| 2.3.15
| 2.3.15
|
地理信息系统
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 3.0.0
| 3.1.0
|
postgis_raster
| 集成到postgis
| 集成到postgis
| 集成到postgis
| 集成到postgis
| 集成到postgis
| 3.0.0
| 3.1.0
|
postgis_sfcgal
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 3.0.0
| 3.1.0
|
postgis_tiger_geocoder
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 3.0.0
| 3.1.0
|
postgis_topology
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 2.5.1
| 3.0.0
| 3.1.0
|
postgres_fdw
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
postgres-decoderbufs
| 无
| 无
| 无
| 1.3.1
| 1.3.1
| 1.3.1
| 1.3.1
|
postgresql_anonymizer
| 无
| 无
| 无
| 0.7.1
| 0.7.1
| 0.7.1
| 0.7.1
|
q3c
| 无
| 无
| 无
| 2.0.0
| 2.0.0
| 2.0.0
| 2.0.0
|
朗姆酒
| 无
| 无
| 无
| 1.3.7
| 0
| 1.3.7
| 1.3.7
|
sslinfo
| 无
| 无
| 无
| 1.2
| 1.2
| 1.2
| 1.2
|
表函数
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
tds_fdw
| 无
| 无
| 2.0.1
| 2.0.1
| 2.0.1
| 2.0.1
| 2.0.2
|
测试解码
| 2
| 2
| 2
| 2
| 2
| 2
| 2
|
时间尺度数据库
| 0
| 1.3.2
| 1.3.2
| 1.3.2
| 1.3.2
| 1.7.0
| 2.1.0
|
tsm_system_rows
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
tsm_system_time
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
不重音
| 1.0
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
|
uuid-ossp
| 1.0
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
| 1.1
|
wal2json
| 无
| 无
| 无
| 2.3
| 2.3
| 2.3
| 2.3
|
xml2
| 无
| 无
| 无
| 1.1
| 1.1
| 1.1
| 1.1
|
解析器
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
| 1.0
|
- PostgreSQL 的最新版本支持列表中的最新版本。
- 您可以通过name FROM pg_avail_extensions;当前实例支持的插件选择当前的版本不支持当前实例版本的插件。如果可以查看当前版本的实例迁移方法,请您可以将参考迁移到新的方案,迁移到新的方案概览。
- 使用mysql_fdw、oracle_fdw、pgsql-ogr-fdw、postgres_fdw和tds_fdw等需要跨数据库实例访问的插件时,需要确保两个数据库实例的服务端IP必须在同一个VPC和子网内。
- 拥有公测权限的用户才可以使用RDS for PostgreSQL 13,您可以提交工单申请。
创建 RDS for PostgreSQL 插件
- 用于数据库级的 RDS,需要对数据库进行插件替换。因此,创建时业务是在上手动创建的。
- RDS for PostgreSQL 的以下插件不需要通过手动创建或删除:
- 自动解释
- 密码检查
- pg_profile_pro
- pg_sql_history
- plpgsql
- wal2json
- 测试解码
- RDS for PostgreSQL 11、RDS for PostgreSQL 增强版、RDS for PostgreSQL 12和RDS for PostgreSQL 13的最新小版本,支持以root用户通过社区的方式来创建(创建扩展)、删除(删除扩展)插件。
1.执行如下命令,以
root用户连接数据库,以
数据库为例,并使用模板库
模板1创建需要支持插件的数据库。
# psql --host= RDS_ADDRESS --port= DB_PORT --dbname=database1 --username=root -c "
创建数据库 DB_NAME 模板 template1 ;"
- RDS_ADDRESS为RDS实例的IP地址。
- DB_PORT为RDS数据库实例的端口。
- DB_NAME为需要创建插件的数据库名称。
回显如下信息,请输入
root用户的密码。
用户root密码:

如果您执行操作为:由
user1创建的数据库db1,先使用用户
user1登录
db1(登录方式需要参考上述普通权限内容),然后执行将
db1的替换
root用户。
将数据库 db1 上的所有内容授予 root;
示例:创建需要支持插件的数据库
my_extension_db
# psql --host=192.168.6.141 --port=5432 --dbname=database1 --username=root -c "create database my_extension_db template template1;"
用户root密码:
创建数据库
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用户的密码。
用户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');"
用户root密码:
控制扩展
------------------------------
成功创建postgis。
(1 行)
删除 RDS for PostgreSQL 插件
- 用于数据库级的 RDS,需要对数据库进行插件替换。因此,创建时业务是在上手动创建的。
- RDS for PostgreSQL 的以下插件不需要通过手动创建或删除:
- 自动解释
- 密码检查
- pg_profile_pro
- pg_sql_history
- plpgsql
- wal2json
- 测试解码
- RDS for PostgreSQL 11、RDS for PostgreSQL 增强版、RDS for PostgreSQL 12和RDS for PostgreSQL 13的最新小版本,支持以root用户通过社区的方式来创建(创建扩展)、删除(删除扩展)插件。
执行以下命令,以
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用户的密码。
用户root密码:
译文:
# psql --host=192.168.6.141 --port=5432 --dbname=my_extension_db --username=root -c "select control_extension('drop','postgis');"
用户root密码:
控制扩展
----------------------------
成功删除 postgis。
(1 行)
RDS for PostgreSQL 插件说明名称插件
| 插件说明
|
地理信息系统
| - 创建postgis插件时,会同步创建以下插件:postgis、postgis_topology、fuzzystrmatch、postgis_tiger_geocoder、address_standardizer及address_standardizer_data_us。
- 创建postgis插件版本如果大于3.0.0,创建postgis插件时会同步创建postgis_raster插件。
- 创建postgis插件时,主备实例的主机创建插件后,请先更新备机已经的连接,备机需要重新建立连接建立搜索路径设置。
- 增强,创建postgis插件之前,需要在PostgreSQL版上设置将实例“empty_is_null”作为“OFF”参数。
|
plpgsql
| plpgsql 1.0 提供支持SQL过程语言的插件,默认组合安装,无需手动创建该插件。
|
地球距离
| 安装earthdistance插件前,请先安装cube插件。
|
立方体
| 如果已安装earthdistance插件,删除cube插件会提示earthdistance插件不可用。
|
时间尺度数据库
| RDS for PostgreSQL的timescaledb插件不支持tsl协议的特性,具体如下:
- add_compress_chunks_policy
- add_drop_chunks_policy
- add_reorder_policy
- alter_job_schedule
- compress_chunk
- 解压块
- drop_chunks
- 插
- 定位
- move_chunk
- remove_compress_chunks_policy
- remove_drop_chunks_policy
- remove_reorder_policy
- reorder_chunk
- set_integer_now_func
- time_bucket_gapfill
|
wal2json
| 该是逻辑复制插件,可以直接使用该插件,无需您通过 control_extension 安装插件。
|
pg_profile_pro
| 因为发现插件存在缺陷,现暂时关闭支持,我们会在缺陷修复后重新开放,给您造成不便。
|
pg_repack
| pg_repack 和 pg_repack 不需要在整个处理过程中进行处理,因此可以提供近似的在线服务。具体请参考使用pg_repack插件。
|