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