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;
!