GBase 8a
适配迁移
文章

南大通用GBase 8a Rsynctool使用介绍

发表于2025-01-17 16:10:3195次浏览1个评论

 

1.Rsynctool介绍
(1)准备待同步表参数文件
在工作目录中(如:/opt/synctool)新建待同步表参数文件(如:tblist.txt),文件内容具体格式参考如下:
dwd.customer
ods.student
dwd.subject
ods.score
注意:格式为:库名.表名(每个表名占用一行)

(2)表全量同步样例
在本列中,从192.168.56.175集群往192.168.56.101集群中全量同步test库下的t表。

cat mysync1.sh

python /opt/synctool /gcluster_rsynctool.py      \
--master_mpp_ip=192.168.56.175                    \
--slave_mpp_ip=192.168.56.101                    \
--database_user=gbase                            \
--master_mpp_gc_pw=gbase                        \
--slave_mpp_gc_pw=gbase                        \
--table_list_file=tblist.txt                    \ 
-- sync_mode=3

sh mysync1.sh
*************Gcluster Sync Tool Start*************************
Table [ test: t] Sync Start
Table [ test: t] Sync End cost : <1 s,597 ms>
*************Gcluster Sync Tool End With Success**************

 

(3)表增量同步样例
在本列中,在完成全量同步后,从192.168.56.175集群往192.168.56.101集群中增量同步test库下的t表。
cat mysync2.sh

python /opt/synctool /gcluster_rsynctool.py      \
--master_mpp_ip=192.168.56.175                    \
--slave_mpp_ip=192.168.56.101                    \
--database_user=gbase                            \
--master_mpp_gc_pw=gbase                        \
--slave_mpp_gc_pw=gbase                        \
--table_list_file=tblist.txt                    \ 
-- sync_mode=2

sh mysync2.sh
*************Gcluster Sync Tool Start*************************
Table [ test: t] Sync Start
Table [ test: t] Sync End cost : <0 s,996 ms>
*************Gcluster Sync Tool End With Success**************


(4)同步工具参数说明
master_mpp_ip          【指定主集群的coordinator 任一节点 IPV4类型的IP 地址,必选】            
master_mpp_gc_port  【指定主集群的 coordinator 端口,可选,default:5258, min:1,max:65536】
master_mpp_gn_port  【指定主集群的 gnode 端口,可选,default: 5050, min:1, max:65536】                    
slave_mpp_ip          【指定备集群的 coordinator 任一节点IPV4类型的IP 地址,必选】                
slave_mpp_gc_port      【指定备集群的 coordinator 端口,可选,default:5258, min:1, max:65536】                
slave_mpp_gn_port      【指定备集群的 gnode 端口,可选,default: 5050, min:1, max:65536】                    
database_user          【连接主、备集群的数据库用户,可选,default:gbase】                            
master_mpp_gc_pw     【指定主集群的数据库用户密码,必选】                
slave_mpp_gc_pw      【指定备集群的数据库用户密码,必选】                        
table_list_file            【被同步表的配置文件,必选】                
table_parallel_degree  【指定集群间同步每次并行同步的表的数量,可选,default:1,min:1, max:128】                
lock_table_timeout    【指定该工具对主集群、备集群表加锁的超时时间,可选,unit:second, default:600, min:1, max:3600】            
retry_times              【同步失败后的重试次数,可选,unit:次, default:1, min:1, max:10】                    
retry_interval         【同步失败后的每次重试的时间间隔,可选,unit:second, default:10, min:1, max:1800】            
sync_mode              【同步的模式,必选, min:2(增量), max:3(全量)】                                
error_table_list_file 【指定同步失败的表存储的文件,可选,default:当前目录/${table_list_filename }_error_table_list_%Y_%m_%d-%H:%M:%S.log】                    
log_name          【该工具日志文件的存储位置,可选,default:当前目录/gcluster_rsynctool_yyyy_mm_dd.log】                            
log_level             【日志级别,可选,default:3, min:0, max:5 ,1.nolog 2.critical 3.error 4.warning 5.info 6.debug】                        
rsync_mode          【调度模式,可选,default:2, min:1, max:2 ,1.主备同时同步  2.先主后备同步方式】                            
double_check      【是否启用回读校验,可选,default:false数据写入磁盘后,回读检查备集群表数据】                    
slave_create_table_if_not_exists        【使用database_user用户在slave集群上建表,可选,default:false】
sync_vc_name                     【需要同步的 VC 名字,可选,兼容模式不需要指定】


2.主备集群都需要建库、建用户、赋权
    [gbase@gbase-V9-191 gcinstall]$ gccli  -ugbase  -pgbase20110531

GBase client 9.5.2.42-patch.129983. Copyright (c) 2004-2023, GBase.  All Rights Reserved.

gbase> create database dbtest;
Query OK, 1 row affected (Elapsed: 00:00:00.03)

gbase> create user user_sync;
Query OK, 0 rows affected (Elapsed: 00:00:00.03)

gbase> SET PASSWORD FOR user_sync = PASSWORD('user_sync');
   
Query OK, 0 rows affected (Elapsed: 00:00:00.02)

gbase> grant lock tables on dbtest.* to user_sync; 
Query OK, 0 rows affected (Elapsed: 00:00:00.05)

gbase> grant select on dbtest.* to user_sync;
Query OK, 0 rows affected (Elapsed: 00:00:00.02)

gbase> grant select on gbase.table_distribution to user_sync;
Query OK, 0 rows affected (Elapsed: 00:00:00.02)

gbase> grant reload on *.* to user_sync;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

 

3.测试全量同步命令
python gcluster_rsynctool.py  --master_mpp_ip=192.168.190.181 --slave_mpp_ip=192.168.190.190 --database_user=user_sync  --master_mpp_gc_pw=user_sync  --slave_mpp_gc_pw=user_sync --table_list_file=tblist.txt  --sync_mode=3  --slave_create_table_if_not_exists

说明:
sync_mode=3:全量
slave_create_table_if_not_exists:备集群库下没有要同步的表时,创建此表(同步后,备库表的owner是user_sync)

评论

登录后才可以发表评论
GBase用户51840发表于 2个月前
谢谢分享