一、概述
dolphin 是MogDB针对MySQL的兼容插件包,其中新增了MySQL数据类型,函数等功能的相关支持。
对于插件的安装,MogDB提供了两个工具gs_install_plugin和gs_install_plugin_local,前者适用于MogDB集群,后者适用于单节点安装插件;当然对于单节点,也可以使用gs_install_plugin来安装插件,但是对于一主多备的MogDB集群,却只能使用gs_install_plugin来完成,因为我们通过可以通过-X选项来指定xml配置文件的位置,然后根据配置文件在集群中的所有节点上完成插件的安装。
在安装dolphin插件的时候并不是一帆风顺,路途也是坎坎坷坷,但最后还是安装成功,理论性的知识就不多说,本文主要就是通过手动实践的方式来演示在MogDB中如何正确安装dolphin插件。
二、实践操作
1.创建插件存放目录
默认情况下,在安装插件时,不指定-p选项(该选项用于指定插件的存放位置),会自动到$GPHOME/script/static目录下寻找($GPHOME就是数据库的工具目录),static目录一开始并没有,需要我们自己创建;当然我们也可以将插件安装包放到任何目录下,只需在安装插件时指定插件包的路径。为了方便管理与维护,选择创建$GPHOME/script/static目录是明智的选择:
su - omm
cd $GPHOME/script/
mkdir static
2.下载插件包
进入MogDB下载界面,选择介质下载,然后根据自己的操作系统版本和CPU类型下载相应版本的插件包,这里下载的是MogDB3.0.0对应的插件包,该插件包是一个后缀为.tar.gz的压缩包,大小在70M左右,该包中包含了目前MogDB目前支持的所有的插件:pg_repack、pg_trgm、dblink、wal2json、orafce、pg_bulkload、pg_prewarm。(后续的所有操作都是建立在之前的操作之上,是有序的操作)
//进入到刚刚创建的static目录中
cd static
//如果你可以上网的话,执行如下命令下载插件包,并赋予其执行的权限
wget https://cdn-mogdb.enmotech.com/mogdb-media/3.0.0/Plugins-3.0.0-CentOS-x86_64.tar.gz
chmod +x Plugins-3.0.0-CentOS-x86_64.tar.gz
3.安装dolphin插件
这里使用gs_install_plugin_local进行插件的安装,成功执行这个命令主要干了两件事:
1.将插件包解压
2.将指定安装的插件的库文件拷贝到$GAUSSHOME/lib/postgreql目录下
gs_install_plugin_local --dolphin
4.创建dolphin插件
dolphin插件需要在兼容类型为B(该类型兼容MySQL)的数据库中才能创建,所以,不妨我们先连接,然后创建兼容类型为B的测试数据库:
gsql -d postgres -p 26000 -r
create database cmysql compatibility 'B';
//切换到数据库cmysql下
\c cmysql
//创建插件:
cmysql=# create extension dolphin ;
ERROR: Can't create dolphin extension lib is not in shared_preload_libraries
很不如意,并没有创建成功,报错说dolphin插件的库文件并不在shared_preload_libraries中,shared_preload_libraries是一个postmaster类型的参数,其作用为:用于声明一个或者多个在服务器启动的时候预先装载的共享库,意思我们还要配置一下该参数,让其预先加载dolphin的库文件dolphin.so。
以root用户的身份查看库文件dolphin.so的路径,并配置shared_preload_libraries参数:
//查看库文件的路径
[root@zbm ~]# find / -name dolphin.so
/opt/mogdb3.0/tool/script/static/plugins/plugins/dolphin/dolphin.so
/opt/mogdb3.0/app/lib/postgresql/dolphin.so
//修改参数
su - omm
vim /opt/mogdb3.0/data/postgresql.conf
hared_preload_libraries = '/opt/mogdb3.0/app/lib/postgresql/dolphin.so'
//注:参数值写为/opt/mogdb3.0/app/lib/postgresql/dolphin也可以
//重启数据库使配置生效
gs_ctl restart -D /opt/mogdb3.0/data -M primary
再次连接数据库cmysql,并创建插件:
[omm@zbm ~]$ gsql cmysql -p 26000 -r
gsql ((MogDB 3.0.0 build 62408a0f) compiled at 2022-06-30 14:21:11 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
cmysql=# create extension dolphin;
CREATE EXTENSION
从输出可知dolphin插件创建成功,其他的插件不需要配置shared_preload_libraries参数,在已安装的前提下,能直接创建成功,例如:orafce插件。
===== end =======