暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

MogDB 5.0 远程访问MogDB/Oracle数据库的简便方法

原创 罗海雄 2024-03-26
395

早期的MogDB就提供了Postgres_fdw,Oracle_fdw/MySQL 3个插件,用于远程访问 MogDB/Oracle/MySQL数据库。
旧的版本中,访问远程数据库的表,需要显式的创建外部表,而在MogDB 5.0当中,这种用法得到了简化,对于MogDB和Oracle可以直接使用"@"符号直接访问远程数据库的表。

总的步骤大体分为3步:

1,安装和创建对应插件(create extension)
2,创建远程数据库链接(create server),指定对端数据库的物理信息
3,创建用户映射关系(create user mapping),指定对端数据库的认证信息

当然,前面还有一些诸如在远程数据库创建用户,创建表等的准备工作。

下面分别对远端为MogDB和Oracle的数据库,写一下具体的操作方法。

MogDB(或者其他opengauss系数据库)

0,准备工作

在远端数据库创建用于数据库远程连接的用户,并创建数据库和表

=== 远端数据库 == create database testdb; \c testdb create user testdblink password 'Enmotech@123'; grant all on database testdb to testdblink ; create table testdblink.testdata as select generate_series(1,100) as id ;

同时,假定已配置合适的pg_hba.conf, 允许下面步骤的数据库进行远程连接。

1,安装和创建对应插件(create extension)

postgres_fdw插件默认包含在安装包中,因此,无需专门安装,只需要创建出来即可。

===本地数据库=== create extension postgres_fdw;

2,创建远程数据库链接(create server),指定对端数据库的物理信息

===本地数据库=== create server testDBLink_mogdb1 foreign data wrapper postgres_fdw options(host '172.16.3.153', port '31000',dbname 'testdb');

其中的ip,port,dbname可以根据实际情况修改。

3,创建用户映射关系(create user mapping),指定对端数据库的认证信息

注意,在做这一步之前,如果之前没有创建过针对usermapping的密码保护,则需要执行以下语句

===本地数据库的操作系统用户下===
gs_ssh -c "gs_guc generate -o usermapping -S default -D $GAUSSHOME/bin"

如果之前已经执行过同样操作,则可以略过

创建用户映射关系

create user mapping for public server testDBLink_mogdb1 options(user 'testdblink',password 'Enmotech@123');

这里的user ‘testdblink’,password 'Enmotech@123’对应远端数据库用户名密码。同时,为了简化,直接用了public,其实也可以改为特定的本地用户(for username),改了之后,只有指定用户才能用这个用户密码连接到远程数据库

4,开始使用

select * from testdata@testDBLink_mogdb1;

Oracle

0,准备工作

在远端数据库创建用于数据库远程连接的用户,并创建数据库和表

=== 远端数据库 == create user testdblink identified by 'Enmotech123'; grant connect,resource to testdblink; conn testdblink/Enmotech123 create table testdata (id int);

1,安装和创建对应插件(create extension)

Oracle_fdw插件默认不包含在安装包中,因此,需要单独安装。

首先要安装Oracle客户端,从 Oracle官网下载 Oracle client 19
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

上传到MogDB所在服务器,解压,并将instantclient的lib*.so.*拷到$GAUSSHOME/lib下

cp instantclient_*/lib*so* $GAUSSHOME/lib

然后安装插件,如果是能联网,且使用ptk ,则直接安装

ptk cluster -n 集群名 install-plugin -P oracle_fdw

否则,需要到mogdb.io 里下载对应版本的Oracle_fdw插件,解压,make install, 会把文件拷到合适的目录。

最后,登录到数据库,创建插件

===本地数据库=== create extension oracle_fdw;

2,创建远程数据库链接(create server),指定对端数据库的物理信息

===本地数据库=== create server testDBLink_ora1 foreign data wrapper oracle_fdw options(dbserver '192.168.56.101:1521/serol');

dbserver中的ip,port,sid可以根据实际情况修改。

3,创建用户映射关系(create user mapping),指定对端数据库的认证信息

注意,在做这一步之前,如果之前没有创建过针对usermapping的密码保护,则需要执行以下语句

===本地数据库的操作系统用户下===
gs_ssh -c "gs_guc generate -o usermapping -S default -D $GAUSSHOME/bin"

如果之前已经执行过同样操作,则可以略过

创建用户映射关系

create user mapping for public server testDBLink_ora1 options(user 'testdblink',password 'Enmotech@123');

这里的user ‘testdblink’,password 'Enmotech@123’对应远端数据库用户名密码。

4,开始使用

select * from testdata@testDBLink_mogdb1; insert into testdata@testDBLink_mogdb1 values(1);
最后修改时间:2024-03-27 10:36:42
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论