南大通用GBase 8a Rsynctool使用介绍
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)
评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526