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

本文分享自华为云社区《【云小课】【第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插件说明

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

云小课|教你如何使用RDS for PostgreSQL插件的更多相关文章

  1. 云小课|云小课教您如何选择Redis实例类型

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:购买Redis实例 ...

  2. 云小课|DGC数据开发之基础入门篇

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:欢迎来到DGC数据 ...

  3. 云小课|MRS基础原理之MapReduce介绍

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:MapReduce ...

  4. 云小课|MRS数据分析-通过Spark Streaming作业消费Kafka数据

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:Spark Str ...

  5. 云小课 | 搬迁本地数据至OBS,多种方式任你选

    摘要:搬迁本地数据至OBS,包括OBS工具方式.CDM方式.DES磁盘方式.DES Teleport方式和云专线方式,每种方式特点不同,本节课我们就一起看看有什么区别. 已有的业务数据可能保存在本地的 ...

  6. 云小课|带你揭开IP地址的神秘身份

    摘要:本文带你了解网络云产品和相关的知识内容. 华为云网络服务大家族提供了丰富的云产品,可以满足用户的各种网络互联需求.相应地,华为云帮助中心也贴心的奉上了你想了解的所有网络云产品知识. 可是小课最近 ...

  7. 云小课 | IPv4枯了,IPv6来了

    摘要:本篇主要分享IPv4与IPv6的区别和IPv6的应用场景,助您快速理解华为云IPv6双栈及IPv6 EIP. IPv6的由来 上节课我们讲了公网IP与私网IP,了解了IP地址的一些知识. 我们一 ...

  8. 云小课 | 需求任务还未分解,该咋整!项目管理Scrum项目工作分解的心酸谁能知?

    温馨提醒:本文约3000字,需要阅读5分钟,共分为8个部分,建议分段阅读! 软件开发过程中,从产品概念形成到产品规划.往往要做详细的需求分析和项目规划等,因此,选对一款项目管理工具对开发者就显得尤为重 ...

  9. 云小课 | WAF反爬虫“三板斧”:轻松应对网站恶意爬虫

    描述:反爬虫是一个复杂的过程,针对爬虫常见的行为特征,WAF反爬虫三板斧——Robot检测(识别User-Agent).网站反爬虫(检查浏览器合法性)和CC攻击防护(限制访问频率)可以全方位帮您解决业 ...

  10. 云小课 | “VPC连接”知多少

    摘要:华为云提供了丰富的网络服务,可满足多种网络互连场景. 同Region的两个VPC怎么连通?” “跨Region的两个VPC又怎么连通?” “VPC内的ECS搭建了一个应用,需要访问Interne ...

随机推荐

  1. t分布及t分布表

    http://baike.baidu.com/view/1419652.htm   下表列出了自由度为1-30以及80.100.120等t-分布的单侧和双侧区间值.例如,当样本数量n=5时,则自由度v ...

  2. 三菱PLC 轻松数采

    目前市面上数采的软件有很多,但是用的最为省力最为简单的就是kepserver了,在kepserver的应用中,有对应的三菱驱动针对于三菱PLC,三菱驱动支持多个Mitsubishi 协议,包括 MEL ...

  3. 浏览器跨 Tab 窗口通信原理及应用实践

    最近,相信大家一定被这么个动效给刷屏了: 以至于,基于这个效果的二次创作层出不穷,眼花缭乱. 基于跨窗口通信的弹弹球: 基于跨窗口通信的 Flippy Bird: 我也尝试制作了一个跨 Tab 窗口的 ...

  4. Node02-包管理工具

    前言:代码共享 模块化的编程思想,支持将代码划分成一个个小的.独立的结构. 我们可以通过模块化的方式来封装自己的代码,将之封装成一个个工具: 我们可以让同事通过导入的方式来使用这些工具,甚至也可以将这 ...

  5. 【Android Studio】 SQLite 数据库 增删改查

    今日目标:参照标题 实现效果: 实现过程: 1.创建实现页面 页面设计思路: 最外层垂直线性布局.内部使用三个线性布局.后两个用的水平排版,用来显示数值. 实例化四个Button,两个EditText ...

  6. Vue源码学习(十七):实现computed计算属性

    好家伙,本章我们尝试实现computed属性 0.完整代码已开源 https://github.com/Fattiger4399/analytic-vue.git 1.分析 1.1computed的常 ...

  7. New Type Functions/Utilities for Dealing with Ranges in C++20

    Generic Types of Ranges   类型萃取从字面意思上来说其实就是帮助我们挑选某个对象的类型,筛选特定的对象来做特定的事.可以先来回顾一下以前的写法. #include <ve ...

  8. 使用Spring Cache高效处理缓存数据

    Spring Cache是Spring框架提供的一种缓存抽象,可以有效地处理缓存数据.使用Spring Cache可以简化开发过程,提高应用程序的性能和可扩展性. 本文将详细介绍如何使用Spring ...

  9. STM32外设:通用输入输出 GPIO、EXIT

    主要外设: GPIO:General Purpose I/O 一般用途IO EXIT:External Interrupt/Event Controller 外部中断/事件控制器(STM32) 辅助外 ...

  10. MVC控制器传值到JS

    1.传递整形数字 1 <script> 2 var data=@ViewBag.ID; 3 </script> 2.传递字符串 1 <script> 2 var d ...