GBase 8a集群间同步工具超详细指南 手把手带您玩转灾备


xinchuang
信创商业研究中心 2023-05-18 11:51:28 51859
分类专栏: 资讯

【声明:此内容转自 南大通用培训中心,如涉及版权问题,请与我们联系删除!】

1工具介绍

GBase 8a集群间同步工具是基于集群的底层二进制数据同步的工具,其同步的对象是库内的数据,通过解析、对比智能索引中摘要信息的变化,来实现同构集群的同构表的数据复制功能,目前已经支持图形化操作,主要功能点:

 

1.支持增量和全量两种数据同步方式;

2.支持落盘数据的回读校验;

3.支持主备分片同时同步;

4.支持先同步主分片,主分片成功后再同步备份分片;

5.支持使用普通数据库用户进行同步;

6.支持主集群源表重组后备集群的空间回收;

7.支持备集群同步表自动创建;

8.支持同步限制带宽;

9.支持同步数据二次压缩传输;

10.支持主备集群跨网段同步(ip mapping映射)。

 

2安装部署

集群间同步工具可部署在与主备集群网络互通的任意服务器上,使用前将安装包拷贝至执行用户具有读写权限的目录下,直接解压即可。

 

1.解压命令:

$ tar -xif gcluster_rsynctool-9.5.3.28.2-redhat7-x86_64.tar.bz2

 

2.部署示意图:

图片

使用参数说明

命令格式:

Usage: gcluster_rsynctool.py [option]

 

Options:

-h, --help

含义:显示工具帮助信息

参数类型:可选参数, 取值范围:无

注意事项和使用限制:指定该参数直接显示帮助信息后工具退出运行

 

-v, --version

含义:显示工具版本信息

参数类型:可选参数,取值范围:无

注意事项和使用限制:指定该参数直接显示帮助信息后工具退出运行

 

--master_mpp_ip=MASTER_MPP_IP

含义:用于指定主集群的coordinator 任一节点IP地址,

参数类型:必选参数

注意事项和使用限制:只支持IPV4格式的IP地址

 

--master_mpp_gc_port=MASTER_MPP_GC_PORT 

含义:用于指定主集群的coordinator端口信息

参数类型:可选参数,取值范围【default:5258, min:1,max:65536】

注意事项和使用限制:如端口信息不是默认值,请指定该参数

 

--master_mpp_gn_port=MASTER_MPP_GN_PORT 

含义:用于指定主集群的gnode端口信息

参数类型:可选参数,取值范围【default: 5050,min:1,max:65536】

注意事项和使用限制:如端口信息不是默认值,请指定该参数

 

--slave_mpp_ip=SLAVE_MPP_IP

含义:用于指定备集群的coordinator 任一节点 IP地址

参数类型:必选参数

注意事项和使用限制:只支持IPV4格式的IP地址

 

--slave_mpp_gc_port=SLAVE_MPP_GC_PORT 

含义:用于指定备集群的coordinator端口信息

参数类型:可选参数,取值范围【default:5258,min:1,max:65536】

注意事项和使用限制:如端口信息不是默认值,请指定该参数

 

--slave_mpp_gn_port=SLAVE_MPP_GN_PORT 

含义:用于指定备集群的gnode端口信息

参数类型:可选参数, 取值范围【default: 5050,min:1,max:65536】

注意事项和使用限制:如端口信息不是默认值,请指定该参数

 

--database_user=DATABASE_USER  

含义:用于指定连接主、备集群的数据库用户

参数类型:必选参数

注意事项和使用限制:需要具有访问‘table_list_file’中定义的表的权限,该用户需要同时存在于主备集群。

 

--master_mpp_gc_pw=MASTER_MPP_GC_PW 

含义:用于指定主集群的数据库用户密码

参数类型:必选参数

注意事项和使用限制:如果数据库用户密码不是默认值,请指定该参数

 

--slave_mpp_gc_pw=SLAVE_MPP_GC_PW 

含义:用于指定备集群的数据库用户密码

参数类型:必选参数,

注意事项和使用限制:如果数据库用户密码不是默认值,请指定该参数

 

--table_list_file=TABLE_LIST_FILE 

含义:用于被同步表的配置文件

参数类型:必选参数

注意事项和使用限制:文件名,该文件内容为需要同步的表列表,可以只有一张表。文件内容格式为DBName.TBName,用换行符进行分割,支持windows换行符和linux换行符,但必须统一,即文件内只能出现一种换行符。

 

--table_parallel_degree=TABLE_PARALLEL_DEGREE 

含义:用于指定集群间同步每次并行同步的表的数量

参数类型:可选参数, 取值范围【default:1,min:1, max:128】

注意事项和使用限制:该参数需要根据主、备集群负载,业务并行度进行调节;当作业并行度低,主备集群负载不高的情况下,可适当增大该配置参数

 

--lock_table_timeout=LOCK_TABLE_TIMEOUT  

含义:用于指定集群间同步工具对主集群、备集群表加锁的超时时间

参数类型:可选参数, 取值范围【unit:second,default:600,min:1, max:3600】

注意事项和使用限制:由于锁是用来互斥表的写操作,该参数需要根据表的写操作最大时间进行适当延长;

 

--retry_times=RETRY_TIMES  

含义:用于指定底层分片对分片的同步失败后的重试次数

参数类型:可选参数, 取值范围【unit:次,default:1,min:1, max:10】

注意事项和使用限制:该参数主要取决于网络状态,在网络状态不佳(闪断、网络阻塞)的情况下,会出现分片对分片的同步失败情况,需要重试来保障同步成功,需要根据网络状态进行适当的调大;

 

--retry_interval=RETRY_INTERVAL

含义:用于指定底层分片对分片的同步失败后的每次重试的时间间隔

参数类型:可选参数, 取值范围【unit:second,default:10,min:1, max:1800】

注意事项和使用限制:该参数主要取决于网络状态,在网络状态不佳(闪断、网络阻塞)的情况下,会出现分片对分片的同步失败情况,失败后需要等待一段时间,期待网络恢复,然后再进行尝试,这个参数只是一个经验参数,不能确保等待一段时间后网络一定会恢复完,并且同步成功;

 

--sync_mode=SYNC_MODE 

含义:用于指定数据同步的模式【粗糙过滤,增量同步,全量同步】

参数类型:可选参数, 取值范围【default:2,min:1, max:3】

注意事项和使用限制:

参数取值含义和使用场景:

1:粗糙过滤:

含义:进行表的变更标识检查,如主备集群的表变更标识相同,直接跳过该表,不做同步;表的变更标识不同,再做每个列级别的变更标识检查,进行增量同步;

适用场景: 该参数值适用于备集群初始化完毕后,增量数据的同步,这种情况下建议使用该参数;

2:增量同步:

含义:不做表的变更标识检查,直接做每个列级别的变更标识检查,进行增量同步;

适用场景:该参数值适用于备集群初始化完毕后,增量数据的同步,该参数是由于版本迭代历史原因保留,完全是为了版本兼容性;

3:全量同步:

含义:不做任何级别的变更标识检查,直接用主机群的数据覆盖备集群的数据;

适用场景:该参数值适用于需要人为覆盖备集群的所有数据时,这种情况一般发生在如下几种情况:

1)对备份集群的表进行过手动修改,数据已经不可信;

2)备集群的表数据发生损坏,需要重建修复;

3)备集群初始化;

 

--error_table_list_file=ERROR_TABLE_LIST_FILE 

含义:用于指定同步失败的表存储的文件

参数类型:可选参数, 取值范围【default: 当前目录/${table_list_filename }_error_table_list_%Y_%m_%d-%H:%M:%S.log】

注意事项和使用限制:文件内容格式为DBName.TBName,用换行符进行分割。可选参数,参数默认值为当前目录,名称默认为${table_list_filename }_error_table_list_%Y_%m_%d-%H:%M:%S.log,内容格式为db.tb 每行一个,多行存储;该文件每次调用工具覆盖

 

--log_name=LOG_NAME  

含义:用于指定工具日志的存储文件

参数类型:可选参数, 取值范围【default: 当前目录/gcluster_rsynctool_yyyy_mm_dd.log】

注意事项和使用限制:指定的目录位置要有工具执行用户的写权限

 

--log_level=LOG_LEVEL 

含义:用于指定工具日志级别

参数类型:可选参数,取值范围【default:3,min:0, max:5】

注意事项和使用限制:

0: nolog level;

1: critical level;

2: error level;

3: warning level ;

4: info level;

5: debug level; 

 

--rsync_mode=RSYNC_MODE 

含义:用于指定工具调度模式

参数类型:可选参数,取值范围【default:2,min:0, max:2】

注意事项和使用限制:

0:主分片同步,备分片设定状态

含义:只同步备集群表的一组分片,其他备份的分片设定状态, 通过集群内部的自动恢复机制进行恢复

适用场景:该参数值不建议使用,仅仅为了版本兼容保留

1: 主备同时同步

含义:同时同步备集群的主、备分片,单表同步的性能能够达到最大化

适用场景:该参数值不建议使用,存在一个分片的主备都同步失败,表不可用的情况,该参数是当初设计是为了数据安全性不高的场景;

2: 先主后备同步方式.

含义:先同步备集群表的主分片,主分片同步成功后再同步备分片,确保备集群的表在同步失败后存在一组可用分片,用来回滚同步操作;

适用场景:建议使用该参数,保证备集群表的数据安全;

 

--double_check  

含义:用于指定是否启用回读校验

参数类型:可选参数,无参参数,取值范围【default:false】

注意事项和使用限制:数据写入磁盘后,回读检查备集群表数据;该参数会降低同步的性能,同时增加备集群的磁盘IO消耗;可以在部署初期为了验证同步的正确性时采用;

 

--slave_create_table_if_not_exists

含义:是否启用在备集群建表

参数类型:可选参数,取值范围【default:false】

参数使用注意事项:

该参数在启用后,会在slave需要建表时,使用集群间同步工具指定的databaser_user建表,如master上的表不是由该用户建立,会导致slave上出现异常,异常包括但不限于:建表不成功,该表建立后权限存在问题,表的UID不是预期的UID,资源管理的磁盘空间限制出错等现象,所以启用该参数时,需要使用者严格按照被同步的表都是指定的databaser_user的表。

 

--master_mpp_ip_mapping_file=MASTER_MPP_IP_MAPPING_FILE

含义:用于存储主集群ip mapping映射的文件

参数类型:可选参数

参数使用注意事项:

该参数用于IP mapping映射功能,如果在V9.5.3版本使用,需先修改如下配置文件方可正常同步:

1:修改集群节点的synctool配置文件,添加以下对外绑定ip和端口,然后重启syncserver服务

BIND_ADDRESS_ADDITIONAL=对外绑定IP

SERVER_PORT_ADDITIONAL=端口

2:修改集群节点gbase配置文件,添加以下对外绑定ip和端口,然后重启gbase服务

bind-address_additional=对外绑定ip

port_additional=端口

3:手动配置好主备集群ip mapping转换规则,以一个数据节点为例,转换规则配置如下:

这里from是节点对内ip,to是需要转换的对外ip,GNPORT是gbase的对外端口,SYNCPORT是synctool的对外端口。

注意这里的对外ip要与前面的gbase,syncserver的对外绑定ip一致,端口也是一样,GNPORT要与gbase的port_additional一致,SYNCPORT要与SERVER_PORT_ADDITIONAL一致。格式如下:

{

    "OWNER":"MASTER",

    "IPMAPPING":[

        {

            "FROM":"192.168.8.147",

            "TO":"100.100.100.147",

            "GNPORT":"5060",

            "SYNCPORT":"5289"

        }

    ]

}

注,在V9.5.2版本使用ip mapping映射功能,可省略步骤1)和步骤2),且步骤3)中的ip mapping转换规则无需指定GNPORT和SYNCPORT端口参数,默认采用5050作为对外端口。

 

--slave_mpp_ip_mapping_file=SLAVE_MPP_IP_MAPPING_FILE

含义:用于存储备集群ip mapping映射的文件

参数类型:可选参数

参数使用注意事项:参考--master_mpp_ip_mapping_file。

格式如下:

{

    "OWNER":"SLAVE",

    "IPMAPPING":[

        {

            "FROM":"192.168.8.148",

            "TO":"100.100.100.148",

            "GNPORT":"5060",

            "SYNCPORT":"5289"

        }

    ]

}

 

--sync_network_bandwidch

含义:用于指定同步数据传输的带宽

参数类型:可选参数,取值范围【unit:M/s,default:0】

参数使用注意事项:

为节省带宽,可对同步进行限流,在单机层synctool.cnf中进行如下配置:

BANDWIDTH_QOS_SWITCH=1 (1为打开限速功能,0为关闭,默认关闭)

另,为节省带宽,也可对同步进行传输数据进行二次压缩,在单机层synctool.cnf中进行如下配置即可,同步语句中无需再指定参数:

COMPRESSED_SWITCH=1 (1为打开压缩传输功能,0为关闭,默认关闭)

限速和压缩功能可分别或同时开启,参数名必须为大写。

 

3

操作示例

1、兼容模式集群之间的同步

1)主备集群架构:

兼容模式:2个节点,p 1 d 1

2)主备集群建表:

drop database if exists test;

create database test;

use test;

create table t(a int)distributed by ('a');

3)主集群插入数据:

insert into t values(1),(2),(3),(4),(5),(6),(7),(8),(9),(0);

4)编写同步表列表文件,比如t.txt:

$ cat t.txt:

test.t

5)执行同步命令:

$ ./gcluster_rsynctool.py --master_mpp_ip=10.10.3.193 --slave_mpp_ip=10.10.3.168 --master_mpp_gc_pw=***** --slave_mpp_gc_pw=***** --table_list_file=t.txt

注:默认采用--sync_mode增量同步

 

2、兼容模式集群之间的同步

1)主备集群架构:

vc模式:单vc含2个节点,p 1 d 1

2)主备集群建表:

use vc vc1;

drop database if exists test;

create database test;

use test;

create table t(a int)distributed by ('a');

3)主集群插入数据:

insert into t values(1),(2),(3),(4),(5),(6),(7),(8),(9),(0);

4)编写同步表列表文件,比如t.txt:

$ cat t.txt:

test.t

5)执行同步命令:

$ ./gcluster_rsynctool.py --master_mpp_ip=10.10.3.193 --slave_mpp_ip=10.10.3.168 --master_mpp_gc_pw=***** --slave_mpp_gc_pw=***** --table_list_file=t.txt --sync_vc_name=vc1

注:每次只能同步同一vc的数据表,且--table_list_file内容格式为dbname.tbname不包含vc名

 

3、限制带宽同步

1)主备集群架构:单实例:单vc含2个节点,p 1 d 1

2)主备集群建表:

use vc vc1;

drop database if exists test;

create database test;

use test;

create table t(a int)distributed by ('a');

3)主集群插入数据:

insert into t values(1),(2),(3),(4),(5),(6),(7),(8),(9),(0);

4)编写同步表列表文件:

$ cat t.txt:

test.t

5)主备集群各单机配置文件synctool.conf添加参数:

BANDWIDTH_QOS_SWITCH=1

6)执行同步命令:

$ ./gcluster_rsynctool.py --master_mpp_ip=10.10.3.193 --slave_mpp_ip=10.10.3.168 --master_mpp_gc_pw=***** --slave_mpp_gc_pw=***** --table_list_file=t.txt --sync_vc_name=vc1  --sync_network_bandwidth=100

注,主备集群所有data节点均需添加限速参数BANDWIDTH_QOS_SWITCH=1,且必须大写,修改后重启syncserver服务。若主备集群是否限速配置不一致,则同步失败。

 

4、压缩传输同步

1)主备集群架构:单实例:单vc含2个节点,p 1 d 1

2)主备集群建表:

use vc vc1;

drop database if exists test;

create database test;

use test;

create table t(a int)distributed by ('a');

3)主集群插入数据:

insert into t values(1),(2),(3),(4),(5),(6),(7),(8),(9),(0);

4)编写同步表列表文件:

$ cat t.txt:

test.t

5)主备集群各单机配置文件synctool.conf添加参数:

COMPRESSED_SWITCH=1

6)执行同步命令:

$ ./gcluster_rsynctool.py --master_mpp_ip=10.10.3.193 --slave_mpp_ip=10.10.3.168 --master_mpp_gc_pw=***** --slave_mpp_gc_pw=*****  --table_list_file=t.txt --sync_vc_name=vc1

注,主备集群所有data节点均需添加压缩参数COMPRESSED_SWITCH=1,且必须大写,修改后重启syncserver服务。同步语句无需单独再指定参数。若主备集群是否压缩传输配置不一致,则同步失败。

 

5、多实例集群ip mapping映射同步

1)主备集群架构:多实例:单vc含4个节点,p 1 d 1,其中单物理机2个ip地址

2)网络配置,比如:

主集群网段为10.10.*.*,对外网段为10.40.*,*

备集群网段为10.11.*.*,对外网段为10.40.*,*

同步工具网段为10.40.*.*

主备集群间不互通,但均与rsynctool同步工具网络互通

3)主备集群建表:

use vc vc1;

drop database if exists test;

create database test;

use test;

create table t(a int)distributed by ('a');

4)主集群插入数据:

insert into t values(1),(2),(3),(4),(5),(6),(7),(8),(9),(0);

5)编写同步表列表文件:

$ cat t.txt:

test.t

6)主集群配置文件添加参数:

以其中一个节点10.10.3.193为例:

A)gbase_8a_gbase.cnf

bind_address_additional=10.40.1.127

port_additional=6001

B) synctool.conf

BIND_ADDRESS_ADDITIONAL=10.40.1.127

SERVER_PORT_ADDITIONAL=7001

同一物理机上的10.10.100.1节点:

A)gbase_8a_gbase.cnf

bind_address_additional=10.40.1.127

port_additional=6002

主集群ip mapping映射文件:

$ cat master_1

{

    "OWNER":"MASTER",

    "IPMAPPING":[

        {

            "FROM":"10.10.3.193",

            "TO":"10.40.1.127",

            "GNPORT":"6001",

            "SYNCPORT":"7001"

        },

        {

            "FROM":"10.10.0.25",

            "TO":"10.40.4.27",

            "GNPORT":"6001",

            "SYNCPORT":"7001"

        },

        {

            "FROM":"10.10.100.1",

            "TO":"10.40.1.127",

            "GNPORT":"6002",

            "SYNCPORT":"7002"

        },

        {

            "FROM":"10.10.100.2",

            "TO":"10.40.4.27",

            "GNPORT":"6002",

            "SYNCPORT":"7002"

        }

    ]

}

7)备集群配置文件添加参数:

以其中一个节点10.10.3.168为例:

A)gbase_8a_gbase.cnf

bind_address_additional=10.40.2.228

port_additional=6001

B)synctool.conf

BIND_ADDRESS_ADDITIONAL=10.40.2.228

SERVER_PORT_ADDITIONAL=7001

同一物理机上的10.10.100.3节点

A)gbase_8a_gbase.cnf

bind_address_additional=10.40.2.228

port_additional=6002

B)synctool.conf

BIND_ADDRESS_ADDITIONAL=10.40.2.228

SERVER_PORT_ADDITIONAL=7002

备集群ip mapping映射文件:

$ cat slave_1

{

    "OWNER":"SLAVE",

    "IPMAPPING":[

        {

            "FROM":"10.11.3.168",

            "TO":"10.40.2.228",

            "GNPORT":"6001",

            "SYNCPORT":"7001"

        },

        {

            "FROM":"10.11.2.209",

            "TO":"10.40.2.98",

            "GNPORT":"6001",

            "SYNCPORT":"7001"

 

        },

       {

            "FROM":"10.11.100.3",

            "TO":"10.40.2.228",

            "GNPORT":"6002",

            "SYNCPORT":"7002"

        },

        {

            "FROM":"10.11.100.4",

            "TO":"10.40.2.98",

            "GNPORT":"6002",

            "SYNCPORT":"7002"

 

        }

    ]

}

8)执行同步命令:

$ ./gcluster_rsynctool.py --master_mpp_ip=10.10.3.193 --slave_mpp_ip=10.10.3.168 --table_list_file=t.txt --master_mpp_gc_pw=*****

--slave_mpp_gc_pw=***** 

--master_mpp_ip_mapping_file=master_1 --slave_mpp_ip_mapping_file=slave_1 --sync_vc_name=vc1

注,mpping_file内容需与单机gbased及syncserver配置文件中的参数值一致,且参数名大小写严格匹配,修改后重启gbased及syncserver服务。若配置不一致,则同步失败。

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=20937
赞同 0
评论 0 条
信创商业研究中心L2
粉丝 11 发表 95 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2944
【软件正版化】软件正版化工作要点  2863
统信UOS试玩黑神话:悟空  2823
信刻光盘安全隔离与信息交换系统  2717
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1251
grub引导程序无法找到指定设备和分区  1217
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  163
点击报名 | 京东2025校招进校行程预告  162
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  160
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  157
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!