同构数据源工作原理
上图所示,目标端集群与源端集群为相同版本的GBase 8a集群,两个集群之间的数据互通采用DBlink。
当配置参数【gcluster_dblink_direct_data_exchange】为1时,代表数据从数据源集群的计算节点直接发送给目标集群。即为上图所示的工作模式。在该工作模式下,源集群和目标集群的节点间在网络上可直接连接。
对上图工作原理进行简述:
(1)目标端集群将数据请求由gcluster的5258端口发送至dblink的9898端口
(2)Dblink将请求由9898端口转发至源端集群的5258端口
(3)源端数据库将接收的请求生成执行计划,由gcluster的5258端口下发至各gnode的5050端口
(4)源端的5050端口接收到执行计划进行查询,并将返回结果与目标端集群的gnode的5050端口直接通讯。
(5)目标端Gnode将查询结果汇总到gcluster层。
【需要开放的端口】
- Dblink :9898端口
- 源端与目标端的5258要与dblink的9898可以互相访问
- 需要保证源端集群的gnode节点与目标端几群的gnode节点的5050都可以互相访问,即让步骤(4)可以顺利进行节点间的数据交换。
异构数据源工作原理
上图所示为GBase 8a与异构数据源Oracle通过DBlink进行数据交互的示意图。
当配置参数【gcluster_dblink_direct_data_exchange】为0时,表示数据从数据源集群发送给网关,然后由网关转发给目标集群。在采用异构数据源时,仅支持该工作模式,或者当两个GBase 8a集群节点间在网络上不可直接连接时,也采用该种工作模式。
对上图工作原理进行简述:
(1)目标端集群将数据请求由gcluster的5258端口发送至dblink的9898端口
(2)Dblink将请求由9898端口转发至源端集群的1521端口
(3)源端数据库处理请求,并将执行结果发送至dblink的9898端口
(4)Dblink将源端数据库返回的结果发送至目标集群的随机的一个gnode节点
(5)目标端Gnode将查询结果返回至gcluster中。
【需要开放的端口】
- Dblink :9898端口
- 源端与目标端的5258要与dblink的9898可以互相访问
- 需要保证目标端集群的所有gnode节点的5050端口与DBlink的9898端口相互访问,目的是让步骤(4)DBlink的查询结果可以顺利返回至目标集群的随机的一个gnode节点上