暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

MogDB插件之跨库访问

原创 多米爸比 2022-03-01
1178

MogDB数据库从2.1版本开始将插件和工具包进行了封装,我们可以随时方便的进行集成。从官网https://www.mogdb.io/downloads/mogdb/的这个页面可以进行下载:
image.png

本文将在Centos平台首先演示dblink插件的使用方法:

dblink插件准备

将官网下载的plugins-CentOS-x86-2.1.0.tar.gz上传到服务器后,解压

$ tar zxvf plugins-CentOS-x86-2.1.0.tar.gz

将插件相关文件安装到MogDB数据库:

  • 方式一:使用脚本进行安装
$ ./gs_install_plugin_local -X clusterconfig.xml --dblink
  • 方式二:手工拷贝安装
$ cd plugins/dblink
$ cp dblink.so /opt/mogdb210/lib/postgresql/
$ cp dblink--1.0.sql dblink.control dblink--unpackaged--1.0.sql \
/opt/mogdb210/share/postgresql/extension/

本文使用第二种方式。

创建dblink扩展

创建扩展的用户需要具有sysadmin权限,本文使用moguser用户

MogDB=# \du moguser
           List of roles
 Role name | Attributes | Member of 
-----------+------------+-----------
 moguser   | Sysadmin   | {}

下面使用moguser创建dblink扩展,并进行后续测试

$ gsql -U moguser postgres -r
gsql ((MogDB 2.1.0 build 56189e20) compiled at 2022-01-07 18:47:53 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

MogDB=> create extension dblink with schema public;
CREATE EXTENSION

查看dblink扩展

MogDB=> \dx dblink
                               List of installed extensions
  Name  | Version | Schema |                         Description                          
--------+---------+--------+--------------------------------------------------------------
 dblink | 1.0     | public | connect to other PostgreSQL databases from within a database
(1 row)

dblink测试

连接实例
MogDB=> select dblink_connect('mydblink', 'host=192.168.137.250 
port=2100 
dbname=mydb 
user=dk 
password=yourPassword');
 dblink_connect 
----------------
 OK
(1 row)

上面使用远程用户dk连接到远程实例192.168.137.250的mydb。

执行查询
MogDB=> select * from dblink('mydblink','select * from dk.t1;') as t(id int , info text);
 id | info 
----+------
  1 | one
  2 | two
(2 rows)
执行修改

insert、update、delete、truncate操作使用dblink_exec函数

insert测试

MogDB=> select  dblink_exec('mydblink', 'insert into t1 select generate_series(10,20), ''hello''');
 dblink_exec 
-------------
 INSERT 0 11
(1 row)

update测试

MogDB=> select  dblink_exec('mydblink', 'update t1 set info=''ten'' where id=10');
 dblink_exec 
-------------
 UPDATE 1
(1 row)

delete测试

MogDB=> select  dblink_exec('mydblink', 'delete from t1  where id=20');
 dblink_exec 
-------------
 DELETE 1
(1 row)

truncate测试

MogDB=> select  dblink_exec('mydblink', 'truncate t1');
  dblink_exec   
----------------
 TRUNCATE TABLE
(1 row)
断开实例
MogDB=> select dblink_disconnect('mydblink');
 dblink_disconnect 
-------------------
 OK
(1 row)
最后修改时间:2022-04-02 10:29:59
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论