gbase 8a 集群双活同步工具rsynctool使用方法
一、环境信息
前面的文章介绍了gbase 8a双活的两种方案,本文来描述下第一种方案rsynctool的使用方法,rsynctool使用的必要条件是两个集群需要相同的vcname和vcid,相同的nodedatamap,相同的字符集,相同的表空间设置方式,现在准备环境如下:
1.1 整体架构如下

1.2 集群IP设置对比
集群安装IP使用的是数据IP,属于192.168段的私网IP,两个集群私网网络互不相通,另外对外提供服务的172.16.段属于业务网IP,可以互通,所以主备集群之间采用业务网IP进行数据同步,具体情况如下:
主集群:
ip a | grep net
gcadmin
gcadmin showcluster vc vc1

备集群:
ip a | grep net
gcadmin
gcadmin showcluster vc vc1

1.3 vc设置对比
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;1.4 字符集设置对比
gccli -uroot -e "show variables like '%charac%';"二、Rsynctool部署
Rsynctool 同步工具是通过备集群的gc_sync_client和主集群的gc_sync_server点对点完成数据同步的,根据以上环境主备集群每个数据节点有两个网段ip,一个为数据网内网ip(集群安装IP),一个为公网ip。两个集群之间只能通过业务ip进行互通,所以还需要使用IPmapping 功能进行IP映射,主备集群公网所需开通的端口有5051,5289,5258,5050。
2.1 安装包上传
Rsynctool 可以部署在源端、目标端、或独立部署。如下为在目标备库端的部署,将安装包上传到/home/gbase目录下并解压到/data目录。
su - gbase
cd /home/gbase
tar xfj gcluster_rsynctool-9.5.3.27.20_patch.4-redhat7-x86_64.tar.bz2 -C /data2.2 synctool.conf配置
修改主备集群所有节点的$GBASE_BASE/config/synctool.conf,添加对外绑定 IP 和 syncServer 对外端口,重启 syncServer 服务
su - gbase
vi $GBASE_BASE/config/synctool.conf
## 在[gbased]下添加
BIND_ADDRESS_ADDITIONAL=172.16.9.11 ##填写对应节点业务网IP
SERVER_PORT_ADDITIONAL=5289
##添加完成后重启服务
gcluster_services syncserver restart
## 检查端口是否正常启动
lsof -i:52892.3 gbase_8a_gbase.cnf配置
修改主备集群所有gnode节点 的 gbase 配置文件$GBASE_BASE/config/gbase_8a_gbase.cnf,添加对外绑定 IP 和 gbase 对外端口后,重启 gbase 服务
su - gbase
vi $GBASE_BASE/config/gbase_8a_gbase.cnf
bind_address_additional=172.16.9.11 ##填写对应节点业务网IP
port_additional=5051
## 添加完成后重启服务
gcluster_services gbased restart
## 检查端口是否正常启动
lsof -i:50512.4 IP mapping 配置
编辑解压后 gcluster_rsynctool 目录下的master_mapping文件,添加如下配置
su - gbase
vi /data/gcluster_rsynctool/master_mapping
{
"OWNER":"MASTER",
"IPMAPPING":[
{
"FROM":"192.168.10.1", ##主集群数据网IP
"TO":"172.16.9.10", ##主集群业务网IP
"GNPORT":"5051", ##主集群gbase对外附加端口
"SYNCPORT":"5289" ##主集群synctool对外附加端口
}
]
}编辑解压后 gcluster_rsynctool 目录下的slave_mapping 配置文件,添加如下配置
su - gbase
vi /data/gcluster_rsynctool/slave_mapping
{
"OWNER":"SLAVE",
"IPMAPPING":[
{
"FROM":"192.168.11.2", ##备集群数据网IP
"TO":"172.16.9.11", ##备集群业务网IP
"GNPORT":"5051", ##备集群gbase对外附加端口
"SYNCPORT":"5289" ##备集群synctool对外附加端口
}
]
}至此 rsynctool 部署配置完成,下面我们了解下运行时的参数信息
三、Rsynctool运行
3.1 常用参数配置
常用参数如下所示,其他具体参数可参考产品手册
--master_mpp_ip=MASTER_MPP_IP
用于指定主集群的 coordinator 任一节点 IP 地址;
--slave_mpp_ip=SLAVE_MPP_IP
用于指定备集群的 coordinator 任一节点 IP 地址;
--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,用换行符进行分割,该文件不要存放过多表,建议以2000为单位进行分割任务同步;
--table_parallel_degree=TABLE_PARALLEL_DEGREE
用于指定集群间同步每次并行同步的表的数量;
--retry_times=RETRY_TIMES
用于指定底层分片对分片的同步失败后的重试次数,建议设置为3;
--sync_mode=SYNC_MODE
用于指定数据同步的模式【1 粗糙过滤、2 增量同步、3 全量同步】,默认为1:进行表的变更标识检查的增量同步;
--error_table_list_file=ERROR_TABLE_LIST_FILE
用于指定同步失败的表存储的文件;
--log_name=LOG_NAME
用于指定工具日志的存储文件;
--rsync_mode=RSYNC_MODE
用于指定工具调度模式,0:主分片同步,备分片设定状态,1:主备同时同步,2:先主后备同步方式,建议使用该参数,保证备集群表的数据安全;
--slave_create_table_if_not_exists
添加该参数,会在 slave 需要建表时,使用集群间同步工具指定的 database_user
建表;
--sync_vc_name=VC_NAME
需要同步的 VC 名字;
--master_mpp_ip_mapping_file
指定主集群的IP映射文件
--slave_mpp_ip_mapping_file
指定从集群的IP映射文件3.2 进行主备同步
以testdb库为例,下面有t和t2表,模拟进行一次主从同步的过程。
su - gbase
cd /data/gcluster_rsynctool
### 添加需要同步的表文件
vi tb_name.list
testdb.t1
testdb.t2
### 执行同步命令
./gcluster_rsynctool.py --master_mpp_ip=172.16.9.10 --slave_mpp_ip=172.16.9.11 --database_user=gbase --master_mpp_gc_pw=gbase20110531 --slave_mpp_gc_pw=gbase20110531 --sync_vc_name=vc1 --table_list_file=tb_name.list --log_level=5 --rsync_mode=0 --slave_create_table_if_not_exists --log_name=testdb.log --master_mpp_ip_mapping_file=master_mapping --slave_mpp_ip_mapping_file=slave_mapping
### 查看全过程日志和错误表列表

如果有同步失败的表,会记录在对应的文件中,类似tb_name.list_error_table_list_2025_07_18-06:43:06.log,也可通过参数--error_table_list_file=ERROR_TABLE_LIST_FILE自行指定。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526

