暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

南大通用GBase 8a镜像集群备份

手机用户0073 2024-12-30
144

GBase 8a的镜像集群,一般建议采用相同的拓扑结构(相同的机器数量,相同的分布策略)。如果用于实时备份场景,也可以考虑用大容量磁盘,少量节点做备份用镜像。

测试环境

3节点集群。其中前两个节点是VC1,设置为p 1 每个节点1个主分片);第三个节点是VC2,设置为 p2 d 0(每个节点2个主分片)。

两个VC做镜像的前提

  • 主分片数量相同,都是2个;不考虑副本
  • hashmap相同(vc2采用 initnodedatamap from vc1做的初始化)

gcadmin

[gbase@gbase_rh7_001 gcinstall_9.5.2.45.5]$ gcadmin
CLUSTER STATE:         ACTIVE

=============================================================
|           GBASE COORDINATOR CLUSTER INFORMATION           |
=============================================================
|   NodeName   | IpAddress  | gcware | gcluster | DataState |
-------------------------------------------------------------
| coordinator1 | 10.0.2.101 |  OPEN  |   OPEN   |     0     |
-------------------------------------------------------------
=============================================
|     GBASE VIRTUAL CLUSTER INFORMATION     |
=============================================
|    VcName    | DistributionId |  comment  |
---------------------------------------------
|     vc1      |       1        | vc_101    |
---------------------------------------------
|     vc2      |       2        | vc_102    |
---------------------------------------------

2 virtual cluster: vc1, vc2
1 coordinator node
0 free data node

vc1的信息

2台机器,每个机器一个主分片。

[gbase@gbase_rh7_001 gcinstall_9.5.2.45.5]$ gcadmin showcluster vc vc1
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL

=============================================
|     GBASE VIRTUAL CLUSTER INFORMATION     |
=============================================
|    VcName    | DistributionId |  comment  |
---------------------------------------------
|     vc1      |       1        | vc_101    |
---------------------------------------------
=========================================================================================================
|                                 VIRTUAL CLUSTER DATA NODE INFORMATION                                 |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |                10.0.2.101                |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
|  node2   |                10.0.2.102                |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------

2 data node

[gbase@gbase_rh7_001 gcinstall_9.5.2.45.5]$ gcadmin showdistribution  vc vc1

                                 Distribution ID: 1 | State: new | Total segment num: 2

             Primary Segment Node IP                   Segment ID                 Duplicate Segment node IP
========================================================================================================================
|                   10.0.2.101                   |         1          |                   10.0.2.102                   |
------------------------------------------------------------------------------------------------------------------------
|                   10.0.2.102                   |         2          |                   10.0.2.101                   |
========================================================================================================================
[gbase@gbase_rh7_001 gcinstall_9.5.2.45.5]$

VC2的信息

1台机器,有2个主分片。

[gbase@gbase_rh7_001 gcinstall_9.5.2.45.5]$ gcadmin showcluster vc vc2
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL

=============================================
|     GBASE VIRTUAL CLUSTER INFORMATION     |
=============================================
|    VcName    | DistributionId |  comment  |
---------------------------------------------
|     vc2      |       2        | vc_102    |
---------------------------------------------
=========================================================================================================
|                                 VIRTUAL CLUSTER DATA NODE INFORMATION                                 |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |                10.0.2.115                |       2        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------

1 data node

[gbase@gbase_rh7_001 gcinstall_9.5.2.45.5]$ gcadmin showdistribution  vc vc2

                                 Distribution ID: 2 | State: new | Total segment num: 2

             Primary Segment Node IP                   Segment ID                 Duplicate Segment node IP
========================================================================================================================
|                   10.0.2.115                   |         1          |                                                |
------------------------------------------------------------------------------------------------------------------------
|                   10.0.2.115                   |         2          |                                                |
========================================================================================================================
[gbase@gbase_rh7_001 gcinstall_9.5.2.45.5]$ 

创建镜像库

初始化并设置vc1到vc2的镜像。

gbase> use vc vc1;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> initnodedatamap;
Query OK, 1 row affected (Elapsed: 00:00:00.51)

gbase> use vc vc2;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> initnodedatamap from vc1;
Query OK, 1 row affected, 1 warning (Elapsed: 00:00:00.36)

gbase> show warnings;
+---------+------+----------------------------------------------------------+
| Level   | Code | Message                                                  |
+---------+------+----------------------------------------------------------+
| Warning | 1042 | It is risky that some suffix is not in the backup state. |
+---------+------+----------------------------------------------------------+
1 row in set (Elapsed: 00:00:00.00)

gbase> create database vc1.testdb;
Query OK, 1 row affected (Elapsed: 00:00:00.01)

gbase> create database vc2.testdb;
Query OK, 1 row affected (Elapsed: 00:00:00.00)

gbase> alter database vc1.testdb set default mirror=vc2;
Query OK, 1 row affected (Elapsed: 00:00:00.00)

gbase> show mirror databases;
+--------------------+-----+-----------+
| Database           | VC  | MIRROR_VC |
+--------------------+-----+-----------+
| information_schema |     |           |
| performance_schema |     |           |
| gbase              |     |           |
| gctmpdb            |     |           |
| gclusterdb         | vc2 |           |
| testdb             | vc2 | vc1       |
+--------------------+-----+-----------+
6 rows in set (Elapsed: 00:00:00.00)

测试镜像表

gbase> use vc vc1;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> use testdb;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> create table t1(id int,name varchar(100));
Query OK, 0 rows affected (Elapsed: 00:00:00.21)

gbase> insert into t1 values(1,'From vc1');
Query OK, 1 row affected (Elapsed: 00:00:00.13)

gbase> select * from vc1.testd.t1;
ERROR 1146 (42S02): Table 'vc1.testd.t1' doesn't exist
gbase> select * from vc1.testdb.t1;
+------+----------+
| id   | name     |
+------+----------+
|    1 | From vc1 |
+------+----------+
1 row in set (Elapsed: 00:00:00.01)

gbase> select * from vc2.testdb.t1;
+------+----------+
| id   | name     |
+------+----------+
|    1 | From vc1 |
+------+----------+
1 row in set (Elapsed: 00:00:00.01)



镜像集群,和主分片数量有关,双方必须有相同的主分片数;和hashmap有关,双方nodedatamap表里的data_distribution_id的数量必须相同,且内容必须相同。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论