GBase 8s 使用dblink访问远端数据库实例

使用场景:

gbase01实例需要访问gbase02实例中的数据。
sql语法:

select * from dbname@gbase02:tabname;

方法一、配置信任

1、配置目标服务器/etc/hosts.equiv信任
如node1(192.168.17.101)上的数据库实例(gbase01) 访问node2(192.168.17.102)上的数据库实例(gbase02)

2、在node1数据库实例gbase01的sqlhosts文件中增加gbase02的实例信息:

echo "gbase02         onsoctcp        192.168.17.102      9088">>$GBASEDBTSQLHOSTS

3、在node2服务器配置node1服务器信息

echo "192.168.17.101 node1" >>/etc/hosts

4、在node2服务器配置对node1的信任,需使用哪个用户访问数据库即配置哪个用户

echo "node1 gbasedbt" >>/etc/hosts.equiv

如node1上有多个IP,可能导致以上配置无效,考虑使用以下配置信任所有IP:

echo "+ gbasedbt" >>/etc/hosts.equiv

使用示例:node1的gbase01实例中使用gbasedbt用户访问gbase02实例

dbaccess testdb -<<!
select * from testdb@gbase02:systables;
!

方法二、配置本地服务器用户.netrc

1、在node1数据库实例gbase01的sqlhosts文件中增加gbase02的实例信息:

echo "gbase02         onsoctcp        192.168.17.102      9088">>$GBASEDBTSQLHOSTS

2、如node1需要使用test用户以gbasedbt用户连接到gbase02,在node1的test用户主目录下创建.netrc文件:
test用户执行:

echo "machine 192.168.17.102 login gbasedbt password GBase123" >.netrc

使用示例:node1的gbase01实例中使用test用户访问gbase02实例

dbaccess testdb -<<!
select * from testdb@gbase02:systables;
!

标签: netrc, dblink

添加新评论