GBase 8a MPP集群管理之虚拟集群镜像表

1.1.1  虚拟集群镜像表

1.1.1.1     功能说明

虚拟集群镜像表功能是基于虚拟集群多VC概念基础之上的功能,主要用于在两个VC之间给虚拟集群的表设置镜像关系,从而使用户对其中一张表的数据写操作(DDL, DML, LOAD)能实时同步到镜像关系对应的另一张表。

本功能要求分别属于两个不同VC表具有相同的库名和表名时,才可以有镜像关系。并且删除已存在镜像关系时,要求主表和镜像表都是可用的。

1.1.1.2     命令说明

虚拟集群镜像功能相关的命令主要包含创建镜像,删除镜像两类。使用镜像功能需要保证主表和镜像表所在的两个VC的HASHMAP是相同的。可以用如下方法确认两个VC的HASHMAP是否相同。

1.       查看两个VC的distribution。

gcadmin showdistribution vc  vc1

镜像功能要求两个VC的distribution的主分片数相同。比如distribution 1有3个主分片,那么distribution2就要求也有3个主分片,备份分片数无要求。

2.       比对两个VC的HASHMAP是否相同。HASHMAP的ID等于distribution id。执行如下SQL后结果与以下相同就说明vc1的hashmap1与vc2的hashmap2相同。

gbase> select distinct(res.r), count(res.r) from (select count(*) r  from gbase.nodedatamap t where t.data_distribution_id in (1,2) group by t.hashkey, t.nodeid) res group by res.r;

+---+--------------+

| r | count(res.r) |

+---+--------------+

| 2 |        65536 |

+---+--------------+

为了使两个VC的HASHMAP相同,虚拟集群镜像功能版本增加了如下命令来初始化HASHMAP。

INITNODEDATAMAP FROM VC1

比如有两个VC,VC1已经使用INITNODEDATAMAP命令初始化过HASHMAP,VC2需要使用INITNODEDATAMAP FROM VC1来初始化HASHMAP,这样VC1和VC2和HASHMAP就会相同。

1.1.1.2.1    创建镜像

虚拟集群镜像功能提供了三种方式创建表镜像。分别是:

1.   创建单个表镜像;

2.   以库为单位创建表镜像;

3.   同时创建主表和镜像表。

l  创建单个表镜像

给已存在的表创建镜像表时,使用如下命令:

ALTER TABLE VC1.DB.T1 CREATE MIRROR TO VC2;

执行以上命令要求VC1.DB.T1表和VC2.DB库必须存在,否则报错。如果VC2.DB.T1表也存在,以上命令也会报错,如果需要强制给VC1.DB.T1表创建镜像,那么需要使用改下命令:

ALTER TABLE VC1.DB.T1 CREATE MIRROR TO VC2 FORCE;

以上命令使用FORCE参数,功能是当VC2.DB.T1表存在时,也会强制创建VC1.DB.T1的镜像表。创建过程根据这两个表的表结构是否相同而略有不同。当VC1.DB.T1与VC2.DB.T1的表结构不相同时,该命令会删除VC2.DB.T1表,然后使用VC1.DB.T1表的建表SQL重新创建VC2.DB.T1表,最后再同步VC1.DB.T1表数据到VC2.DB.T1表。当VC1.D

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值