Mysql、Oracle数据比对工具GT-Checksum

本文介绍了一个名为gt-checksum的工具,涉及从下载安装到配置参数,如数据源连接、校验规则和修复选项的详细步骤。主要关注于MySQL和Oracle数据库的使用。
摘要由CSDN通过智能技术生成

文档地址

https://greatsql.cn/thread-218-1-1.html

安装步骤

[root@sql-audit-20230526 gt-checksum]# tar xvf gt-checksum-1.2.1-linux-x86-64.tar.gz 
[root@sql-audit-20230526 gt-checksum]# mv gt-checksum-1.2.1-linux-x86-64/ gt-checksum
[root@sql-audit-20230526 gt-checksum]# cd gt-checksum/
配置参数修改
[root@sql-audit-20230526 gt-checksum]# vim gc.conf   
tables = incredb.*
chanRowCount = 10000
lowerCaseTableNames = yes
srcDSN = mysql|in**r:gNq***klw@tcp(172.16.0.1:3306)/information_schema?charset=utf8mb4
dstDSN = mysql|inc**r:gNqi9Y**lw@tcp(172.16.0.3:3306)/information_schema?charset=utf8mb4

要注意的参数:
[Repair]
; 数据修复方式,支持 file/table 两种方式
; file,生成数据修复SQL文件
; table 直接在线修复数据
datafix = file

权限:
全局权限,如果是MySQL 8.0版本的话,MySQL 5.7版本不做这个要求
mysql> GRANT REPLICATION CLIENT, SESSION_VARIABLES_ADMIN ON *.* to ...;
表级别的:
mysql> GRANT SELECT, INSERT, DELETE ON db1.t1 to ...;

启动:
[root@sql-audit-20230526 gt-checksum]# ./gt-checksum -f gc.conf
wushouyang	reg_input_bind_info       	id              	rows    	45,45        	no         	file   
wushouyang	open_info                 	open_id,platform	rows    	147,147      	no         	file   
wushouyang	auth_interface            	id              	rows    	2,2          	no         	file   
wushouyang	user_import_log           	id              	rows    	388,388      	yes        	file   
wushouyang	mac_bw_list               	id              	rows    	23,23        	no         	file 

出现yes代表有差异。

配置参数

; gt-checksum 配置文件参考
; 定义源、目标数据源
; 目前只支持MySQL、Oracle两种数据源

[DSNs]
;oracle的连接串格式为:oracle|user/password@ip:port/sid
;例如:srcDSN = oracle|scott/tiger@172.16.0.1:1521/helowin

;mysql的连接串格式为:mysql|usr:password@tcp(ip:port)/dbname?charset=xxx
srcDSN = mysql|in**er:gNq**lw@tcp(172.16.0.1:3306)/information_schema?charset=utf8mb4
dstDSN = mysql|in**er:gN**lw@tcp(172.16.0.2:3306)/information_schema?charset=utf8mb4

; 定义校验数据对象
[Schema]
; 选项tables用来定义校验数据表对象,支持通配符"%"和"*"
; 例如:
; *.* 表示所有库表对象(MySQL不包含 information_schema\mysql\performance_schema\sys)
; test.* 表示test库下的所有表
; test.t% 表示test库下所有表名中包含字母"t"开头的表
; db%.* 表示所有库名中包含字母"db"开头的数据库中的所有表
; %db.* 表示所有库名中包含字母"db"结尾的数据库中的所有表
;
; 如果已经设置为 "*.*",则不能再增加其他的规则,例如:设置 "*.*,pcms%.*" 则会报告规则错误
; 如果 table 和 ignore-tables 设置的值相同的话也会报告规则错误

tables = incredb.*
ignore-tables =

; 设置是否检查没有索引的表,可设置为:yes/no,默认值为:no
checkNoIndexTable = no

; 设置是否忽略表名大小写,可设置为:yes/no
; 当为no时,统一使用大写表名;当为yes时,会按照配置的大小写进行匹配
; 默认值为:no
lowerCaseTableNames = yes

; 其他校验规则
[Rules]
; 数据校验并行线程数
parallel-thds = 10

; 设置每次检索多少条数据进行校验,默认值:10000
chanRowCount = 10000

; 设置校验队列深度,默认值:100
queue-size = 100

; 设置数据校验模式,支持 count/rows/sample 三种模式,默认值为:rows
; count 表示只校验源、目标表的数据量
; rows 表示逐行校验源、目标数据
; sample 表示只进行抽样数据校验,配合参数ratio设置采样率
checkMode = rows

; 当 checkMode = sample 时,设置数据采样率,设置范围1-100,用百分比表示,1表示1%,100表示100%,默认值:10
ratio = 10

; 设置数据校验对象,支持 data/struct/index/partitions/foreign/trigger/func/proc,默认值为:data
; 分别表示:行数据/表结构/索引/分区/外键/触发器/存储函数/存储过程
checkObject = data

;设置表结构校验规则,当checkObject为struct时才会生效
[Struct]
; 设置struct校验时的校验模式,可设置为:strict/loose,为strict时,则会严格匹配列的所有属性,为loose时,则为宽松模式只匹配列名,默认值为:strict
ScheckMod = strict

; 设置struct校验时是否校验列的顺序,可设置为:yes/no,设置为yes,则会按照源端的列的正序进行校验,默认值为:yes
ScheckOrder = yes

; 设置修复列的属性及顺序的依据原则,可设置为src/dst,设置为src则按照源端的列属性进行修复,默认值为:src
; 当缺少列时,修复语句会按照源端的列数据类型生成
ScheckFixRule = src

; 设置日志文件名及等级
[Logs]
; 设置日志文件名,可以指定为绝对路径或相对路径
log = ./log.log

; 设置日志等级,支持 debug/info/warn/error 几个等级,默认值为:info
logLevel = info

; 设置数据修复方案
[Repair]
; 数据修复方式,支持 file/table 两种方式
; file,生成数据修复SQL文件
; table 直接在线修复数据
datafix = file

; 修复事务数,即单个事务包含多少个dml语句,默认值为:100
fixTrxNum = 100

; 当 datafix = file 时,设置生成的SQL文件名,可以指定为绝对路径或相对路径
; 当 datafix = table 时,可以不用设置 fixFileName 参数
fixFileName = ./datafix.sql

数据库技术交流群:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值