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

网友投稿 606 2022-05-30

作为一种典型的开源关系型数据库, 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= --port= --dbname= --username=root -c "select control_extension ('create','');"

l  RDS_ADDRESS为RDS实例的IP地址。

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

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

l  EXTENSION_NAME为插件名称,如postgis。

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

步骤2:以 root 用户连接已创建插件的数据库,并删除插件。

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

l  RDS_ADDRESS为RDS实例的IP地址。

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

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

l  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:点击这里

了解华为云数据库最新活动:点击这里

数据库 PostgreSQL 华为云

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:吃了没上云的苦,不能再吃没灾备的亏
下一篇:贵阳金利沅与华为风雨同舟,成就“最佳拍档”
相关文章