概述
早期的 MogDB 就提供了Postgres_fdw、Oracle_fdw、MySQL_fdw3个插件,用于远程访问 MogDB/Oracle/MySQL数据库。
旧的版本中,访问远程数据库的表,需要显式创建外部表,而在 MogDB 5.0当中,这种用法得到了简化,对于 MogDB 和 Oracle 可以直接使用"@"符号直接访问远程数据库的表,步骤如下:
安装和创建对应插件(create extension)
创建远程数据库链接(create server),指定对端数据库的物理信息
创建用户映射关系(create user mapping),指定对端数据库的认证信息
当然,前面还有一些诸如在远程数据库创建用户,创建表等准备工作。下面分别写一下 MogDB 5.0 远程访问 MogDB 和 Oracle 的操作方法。
MogDB (或其他openGauss系数据库)
00
准备工作
在远端数据库创建用于数据库远程连接的用户,并创建数据库和表:
=== 远端数据库 ==
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,允许下面步骤的数据库进行远程连接。
01
安装和创建对应插件(create extension)
postgres_fdw插件默认包含在安装包中,因此无需专门安装,只需要创建出来即可:
===本地数据库===
create extension postgres_fdw;
02
创建远程数据库链接(create server),指定对端数据库的物理信息
===本地数据库===
create server testDBLink_mogdb1 foreign data wrapper postgres_fdw options(host '172.16.3.153', port '31000',dbname 'testdb');
其中的ip、port、dbname可以根据实际情况修改。
03
创建用户映射关系(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),改了之后只有指定用户才能用这个用户密码连接到远程数据库。
04
开始使用
select * from testdata@testDBLink_mogdb1;
Oracle
00
准备工作
在远端数据库创建用于数据库远程连接的用户,并创建数据库和表:
=== 远端数据库 ==
create user testdblink identified by 'Enmotech123';
grant connect,resource to testdblink;
conn testdblink/Enmotech123
create table testdata (id int);
01
安装和创建对应插件(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;
02
创建远程数据库链接(create server),指定对端数据库的物理信息
===本地数据库===
create server testDBLink_ora1 foreign data wrapper oracle_fdw options(dbserver '192.168.56.101:1521/serol');
dbserver中的ip、port、sid可以根据实际情况修改。
03
创建用户映射关系(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’对应远端数据库用户名密码。
04
开始使用
select * from testdata@testDBLink_mogdb1;
insert into testdata@testDBLink_mogdb1 values(1);
数据驱动,成就未来,云和恩墨,不负所托!
云和恩墨创立于2011年,是业界领先的“智能的数据技术提供商”。公司总部位于北京,在国内外35个地区设有本地办公室并开展业务。
云和恩墨以“数据驱动,成就未来”为使命,致力于将创新的数据技术产品和解决方案带给全球的企业和组织,帮助客户构建安全、高效、敏捷且经济的数据环境,持续增强客户在数据洞察和决策上的竞争优势,实现数据驱动的业务创新和升级发展。
自成立以来,云和恩墨专注于数据技术领域,根据不断变化的市场需求,创新研发了系列软件产品,涵盖数据库、数据库存储、数据库云管和数据智能分析等领域。这些产品已经在集团型、大中型、高成长型客户以及行业云场景中得到广泛应用,证明了我们的技术和商业竞争力,展现了公司在数据技术端到端解决方案方面的优势。
在云化、数字化和智能化的时代背景下,云和恩墨始终以正和多赢为目标,感恩每一位客户和合作伙伴的信任与支持,“利他先行”,坚持投入于数据技术核心能力,为构建数据驱动的智能未来而不懈努力。
我们期待与您携手,共同探索数据力量,迎接智能未来。