使用场景
1 创建的db_link,
希望指定用户使用,
其他用户不能随便调用,
即支持私有db_link.
2. 为了提升db_link 的性能,
建议本地通过dblink 发送到远端的sql,
在本地不再进
行解析,直接发送到远端执行,即支持直通模式:passthrough
3. 支持直通模式下的私有dblink。
示例
B 集群创建私有dblink ,为u_dblink 用户私有:
create user u_dblink;u_dblink 权限如下:
grant all on gctmpdb.* to u_dblink;
grant all on dbname.* to u_dblink;
grant select on gbase.* to u_dblink;
gccli -u u_dblink
create private database link db_linkBtoA
connect to '' identified by '' using 'dsBtoA';
GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
608
B 集群中只有u_dblink 可以使用db_linkBtoA
A 向B 发送命令,让B 从A 中抽数据到B,下面的sql 都从集群A 上发出:
A 推送数据到B 的表:
insert into tb_B@db_linkAtoB
select * from dbname.tb_A
A 发命令让B 拉数据到B 的表:
passthrough link db_linkAtoB
using 'insert into dbname.tb_B select * from
tb_A@db_linkBtoA;
语法:
1..支持私有dblink 语法
create private database link ...
drop
private database link ...
2.不修改默认行为
create database link ... ,默认是public link
create public database link,指定为public link
3.直通模式使用dblink
passthrough link publiclink using 'insert into t1 select * from t2@privatelink'
其中集群1维护publiclink,集群2维护privatelink。集群1发起直通模式指令,然
后在集群2上执行从集群1拉表t2 数据然后插入到集群2的t1 表中。集群2的私
有dblink 只要创建的用户可用,其它用户不能使用。
注意:
在配置publiclink 的时候指定配置文件中访问集群2的用户要与创建在集群2上的
privatelink 用户一致。
需要在集群的所有管理节点配置文件中增加参数
gbase_8a_gcluster.cnf
gbase_dblink_gateway_ip=网关ip
gbase_dblink_gateway_port=9898
GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
609