南大通用安全数据库GBase 8s也有自己的“dblink”,即synonym同义词,具有与Oracle的dblink相近的功能,可以通过在本地数据库创建对方数据库的同义词进行外部连接访问。
那什么是同义词呢,一个单词如果跟另外一个单词有相同的意思,那么这个单词是那个单词的同义词。在数据库中同义词是指一个数据库对象的别名、或者引用。GBase 8s可以为表(table)、序列(sequence)、视图(view)创建同义词。
下面是创建两个数据库的具体表的synonym同义词的实践过程。
前提:两台服务器网络互通,配置同网段IP,开放需要访问的端口。
举例:A服务器 192.168.137.131 B服务器 192.168.137.133
1、修改onconfig.ol_gbasedbt1210文件
A服务器 在DBSERVERALIASES实例别名参数后面添加ol_gbase1
B服务器 在DBSERVERALIASES实例别名参数后面添加ol_gbase2
2、修改sqlhosts.ol_gbasedbt1210文件
A服务器添加如下两行:
ol_gbase1 onsoctcp * 10606
ol_gbase2 onsoctcp 192.168.137.133 10607
B服务器添加如下两行:
ol_gbase2 onsoctcp * 10607
ol_gbase1 onsoctcp 192.168.137.131 10606
两台数据库修改完配置文件后均保存并重启数据库服务。
3、在两台数据库均创建测试库表,并插入数据
A服务器
create database testdb1 with log;
create table tb1(a int,b varchar(10));
insert into tb1 values(1,'aaa');
insert into tb1 values(2,'bbb');
B服务器
create database testdb2 with log;
create table tb2(a int,b varchar(10));
insert into tb2 values(3,'ccc');
insert into tb2 values(4,'ddd');
4、创建两台服务器之间的互信
分别在两台服务器的/etc目录下创建hosts.equiv,手动输入+
vim /etc/hosts.equiv
+
保存退出
5、两台服务器需要开放对应的端口,如本例的10606和10607
firewall-cmd --zone=public --add-port=10606/tcp –permanent
firewall-cmd --permanent --zone=public --list-ports
firewall-cmd –reload
firewall-cmd --zone=public --query-port=10606/tcp
6、在两台数据库分别创建连接对方数据库的同义词synonym
A服务器
create synonym dblink_133_tb2 for testdb2@ol_gbase2:tb2;
select * from dblink_133_tb2;
B服务器
create synonym dblink_131_tb1 for testdb1@ol_gbase1:tb1;
select * from dblink_131_tb1;