原理图

1.目标端集群将数据请求由gcluster的5258端口发送至dblink的9898端口
2.Dblink将请求由9898端口转发至源端集群的5258端口
3.源端数据库将接收的请求生成执行计划,由gcluster的5258端口下发至各gnode的5050端口
4.源端的5050端口接收到执行计划进行查询,并将返回结果与目标端集群的gnode的5050端口直接通讯。
5.目标端Gnode将查询结果汇总到gcluster层。
需求描述
多vc模式,源数据库B的t1数据库下存在t11两张表,现需要从数据库A建立DBlink访问数据库B的表。
数据库A:
10.185.195.10 coor
10.185.195.101 data
10.185.195.102 data
vc:vc1
数据库B:
10.185.195.199 coor
10.185.195.200 data
10.185.195.201 data
vc:vc1
---------------------------------安装---------------------------------------
一、源数据库B操作
### 1.1 建立用户设置默认VC
create user source_user identified by 'source_password';
set default_vc for source_user = vc1;
### 1.2 授予库的权限
grant all on vc1.t1.* to source_user;
#select不授权会报错"ERROR 1105 (HY000): Table 'information_schema.table_distribution' doesn't exist",后面两个权限貌似可以不用授权
grant select on gbase.* to gbase_user;
#grant all on gctmpdb.* to gbase_user;
#grant all on vc1.gclusterdb.* to gbase_user;
二、数据库A操作
### 2.1 建立用户
create user gbase_user identified by 'gbase_password';
### 2.2 创建数据库与授权
create database t1_new;
grant all on vc1.t1_new.* to gbase_user;
### 2.3 授权[第一个管理节点]
grant select on gbase.* to gbase_user;
grant all on gctmpdb.* to gbase_user;
grant all on vc1.gclusterdb.* to gbase_user;
### 2.4 授权[所有数据节点]
gccli -ugbase -p -h 10.185.195.101 -P5050 -e "grant all on gctmpdb.* to gbase_user"
gccli -ugbase -p -h 10.185.195.102 -P5050 -e "grant all on gctmpdb.* to gbase_user"
### 2.5 检查DBlink配置
# 所有管理节点的"[gbasedump]"上方加DBlink的ip与端口,我的DBlink准备配置在数据库A的管理节点上。配置完需要重启集群哦!
[gbase@GBASEMA01 config]$ pwd
/opt/10.185.195.10/gcluster/config
[gbase@GBASEMA01 config]$ cat gbase_8a


1364

被折叠的 条评论
为什么被折叠?



