云服务环境下,如何让客户更方便地在各个PostgreSQL的版本下安装插件和扩展功能,成为云服务厂商的一个挑战。华为云RDS for PostgreSQL通过插件管理功能,很好地解决了PostgreSQL版本与插件耦合的问题,帮助用户更直观、更快速地安装管理数据库插件。
关于PostgreSQL插件
众所周知,PostgreSQL支持很多插件,其中包括第三方插件。
- PostgreSQL发展至今,华为云已经从 PostgreSQL 9.5 版本演进到 PostgreSQL版本,目前共支持7个大版本,每个大版本可以支持的插件并不完全相同,因此,判断每个版本支持哪些插件变得繁琐。
- 如我们所知,部分插件在安装时,必须要修改这个参数,手动修改费时费力。
- 安装插件时只有超级用户才能进行安装,而超级用户权限太大,可以执行很多高危操作,容易造成云数据库异常不可用等非常严重的影响。
以上种种可以看出PostgreSQL插件安装及管理相对复杂。为了让客户更方便地安装插件,华为云开发了插件管理功能,客户只需在交互界面上点击需要安装的插件,之后的安装就交由华为云后台完成即可,简单方便,省时省力。
RDS插件管理功能
PostgreSQL支持的插件很多,而且当前数据库支持安装哪些插件,用户并不能清楚直观地看出来,华为云插件管理功能将当前数据库支持安装的插件以列表形式全部显示出来,方便用户查看安装。
前面提到,PostgreSQL的部分插件安装时,需要修改参数 shared_preload_libraries,华为云插件管理功能同时支持修改该参数。修改方法有两种,可以灵活取用:
方法一:通过管理参数值功能批量修改 shared_preload_libraries参数。
方法二:在安装插件前,单独修改参数值实现对应插件库的加载。
注意事项
shared_preload_libraries参数修改后需要重启实例才能生效。对于包含只读实例的PostgreSQL服务,修改主实例参数后,只读实例的参数将自动同步修改,在重启实例时,需要同时重启只读实例。
部分插件在使用时,需要同时添加对应的GUC参数才能正常使用,比如 pg_cron插件,需要先修改参数“cron.database_name”为需要使用的数据库。
部分插件安装或卸载时,会同步安装或卸载其依赖插件,以及相关依赖表。例如:postgis_sfcgal插件依赖于postgis插件,创建插件postgis_sfcgal时,postgis插件会被优先自动同步创建;同时,卸载postgis插件时,会同步卸载postgis_sfcgal插件。
结束语
华为云RDS for PostgreSQL插件管理功能,很好地帮助用户解决了到处网罗当前版本支持哪些插件的繁琐;以及不知道如何安装插件和知道方法后安装操作复杂的问题,提升了插件安装的用户体验。
技术无止境,在云数据库使用领域,还有很多需要我们优化解决的地方,例如如何帮助用户识别当前数据库中可能存在的风险,查看当前数据库中的TOP,如何帮助客户更好的管理数据库和账号等等。我们后续会针对这些点进行优化,给客户带来更多的惊喜。