好用的数据库插件管理, 长这样

摘要:插件管理是门技术活,尤其是对 PostgreSQL。

作为一种典型的开源关系型数据库, PostgreSQL 以保证数据可靠性和完整性的出色表现而闻名。尤其是地理位置应用系统、复杂数据对象处理等应用场景下。了解 PostgreSQL 的你,想必也知道它提供了丰富的内核编程接口,允许我们以插件的方式将功能集成到数据库内核中。

随着 PostgreSQL 的使用者越来越多,围绕它开发的第三方插件也越来越丰富。不仅开源社区提供了大量常用插件,第三方开源插件也如雨后春笋般增长着。或许现在的你,也正在开发着自己的 PostgreSQL 插件……

那么,如何管理我们的数据库插件呢?

当然,社区版本也已给我提供了一个插件管理模块,帮助我们管理数据库的插件。但是,社区插件管理模块通常要求我们有超级用户(即常说的 Superuser)权限,才能管理这些插件。

社区版插件管理

PostgreSQL 内核插件一般包含如下3个部分:

  1. 功能实现为 SO 动态共享库文件;
  2. 插件的描述信息文件 .control 文件;
  3. 用于创建、更新和删除插件的带版本号的 SQL 文件。

一般使用 create extension、alter extension、drop extension 来管理插件。使用语法详细参考官方参考手册。

另外,社区版插件的更新也是一个比较麻烦的过程,你需要:
1、 获取到所要升级插件的目标版本。在描述信息文件 .control 文件中修改对应版本号,如当前版本号为1.2,则修改为1.3;
2、 增加目标版本DDL SQL文件,命名为*–1.3.sql;
3、 增加老版本升级到目标版本的DDL SQL文件,命名为*–1.2–1.3.sql;
4、 修改源码添加目标版本新功能,并编译生成对应的SO动态库到指定目录,如默认的lib目录;
5、 执行alter extension update升级。

需要注意的是,社区版安装插件需要有插件所创建对象的权限,这就导致大多数插件需要超级用户或者数据库拥有者的权限。但对于现如今,公有云上开放超级用户给使用者,必然带来诸多安全隐患。

不管是 ALI、还是 AWS 等公有云 PostgreSQL 服务提供商给大家开发的 root 用户都并非超级用户,所以无法直接使用社区插件管理模块。 如何解决这一矛盾呢?

这里有一套安全、方便、快捷的解决方案,了解一下。

华为云数据库 PostgreSQL 插件管理

华为云数据库 PostgreSQL 插件管理,你只需要简单决定什么时候使用插件,什么时候放弃使用某插件。简单两步,轻松实现插件管理。

步骤1:以 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为插件名称,如postgis。

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

步骤2:以 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为插件名称,如postgis。

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

华为云数据库 PostgreSQL 提供了丰富的插件集,且将持续丰富我们的插件库。如果正在使用或将要使用的你有新的插件需求,也可以随时告诉我们。当前支持的插件集如下:

− postgis
− btree_gin
− btree_gist
− hstore
− pg_trgm
− tablefunc
− unaccent
− uuid-ossp
− cube
− dict_int
− dict_xsyn
− earthdistance
− intagg
− intarray
− ltree
− auto_explain、
− pg_stat_statements
− pg_pathman
− pg_hint_plan
− oracle_fdw

相比社区版本的插件管理方式,华为云数据库 PostgreSQL 提供的插件管理方案,旨在让用户更专注于业务需求,无需关注费时费力的维护工作。安全是前提、方便快捷是基础。扫描二维码,了解更多华为云数据库 PostgreSQL。
二维码链接:
点击阅读原文,了解华为云数据库最新活动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值