MYSQL 表结构 CREATE TABLE `t2` ( `ID` int NOT NULL, `LESS` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `JET` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `LINE` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `date_1` datetime DEFAULT NULL, `he` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `dfdsf` char(1) COLLATE utf8mb4_bin DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ORACLE 表结构 CREATE TABLE "JET"."T2" ( "ID" NUMBER, "LESS" VARCHAR2(255), "JET" VARCHAR2(255), "LINE" VARCHAR2(255), "date_1" DATE, "he" VARCHAR2(255), "dfdsf" CHAR(1), PRIMARY KEY ("ID")) gc.conf配置 ; 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 = oracle|jet/123@10.206.32.101:1521/jet dstDSN = mysql|jet:123@tcp(10.206.32.11:3307)/jet?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 = jet.t2 ignore-tables = ; 设置是否检查没有索引的表,可设置为:yes/no,默认值为:no checkNoIndexTable = yes ; 设置是否忽略表名大小写,可设置为:yes/no ; 当为no时,统一使用大写表名;当为yes时,会按照配置的大小写进行匹配 ; 默认值为:no lowerCaseTableNames = no ; 其他校验规则 [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 = 100 ; 设置数据校验对象,支持 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 = ./gt-checksum.log ; 设置日志等级,支持 debug/info/warn/error 几个等级,默认值为:info logLevel = info ; 设置数据修复方案 [Repair] ; 数据修复方式,支持 file/table 两种方式 ; file,生成数据修复SQL文件 ; table 直接在线修复数据 datafix = file ; 修复事务数,即单个事务包含多少个dml语句,默认值为:100 fixTrxNum = 1000 ; 当 datafix = file 时,设置生成的SQL文件名,可以指定为绝对路径或相对路径 ; 当 datafix = table 时,可以不用设置 fixFileName 参数 fixFileName = ./gt-checksum-DataFix.sql 测试结果 日志报错 gt-checksum-DataFix.sql 数据校验是一致的 这个日志报错是否会有其他风险 |
合作电话:010-64087828
社区邮箱:greatsql@greatdb.com