南大通用GBase 8a DBlink工作模式与工作端口示意图

根据两套集群的版本,以及底层数据节点是否可以连通,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节点上