lightningErrChecksumMismatch checksum mismatched remote vs local

集群版本6.1.5,lightning 增量导入500多G 的数据,目标库的表非空,lightning 配置文件

[lightning]
# 日志
level = "info"
file = "/home/tidb/tidb-lightning.log"
max-size = 128 # MB
max-days = 28
max-backups = 14
index-concurrency = 8
table-concurrency = 16
io-concurrency = 20
pprof-port = 8289

[tikv-importer]
# 选择使用的 local 后端
backend = "local"
# 设置排序的键值对的临时存放地址,目标路径需要是一个空目录
sorted-kv-dir = "/tidb-data4/sort_ing03"
# 物理导入模式向 TiKV 发送 KV 时是否启用压缩
#compress-kv-pairs = "gz"
incremental-import = true
on-duplicate = "replace"

[checkpoint]
# 是否启用断点续传。
# 导入数据时,TiDB Lightning 会记录当前表导入的进度。
# 所以即使 TiDB Lightning 或其他组件异常退出,在重启时也可以避免重复再导入已完成的数据。
enable = true
# 存储断点的数据库名称。
schema = "tidb_lightning_checkpoint"
# 存储断点的方式。
#  - file:存放在本地文件系统。
#  - mysql:存放在兼容 MySQL 的数据库服务器。
driver = "file"
dsn = "/home/tidb/tidb_lightning_checkpoint.pb"

[mydumper]
# 源数据目录。
data-source-dir = "/tidb-data5/con"
#incremental-import = true

# 配置通配符规则,默认规则会过滤 mysql、sys、INFORMATION_SCHEMA、PERFORMANCE_SCHEMA、METRICS_SCHEMA、INSPECTION_SCHEMA 系统数据库下的所有表
# 若不配置该项,导入系统表时会出现“找不到 schema”的异常
[tidb]
# 目标集群的信息
host = ""
port = 
user = ""
password = ""
# 表架构信息在从 TiDB 的“状态端口”获取。
status-port = 10080
# 集群 pd 的地址
pd-addr = ""

#tidb-lightning 引用了 TiDB 库,并生成产生一些日志。
# 设置 TiDB 库的日志等级。
log-level = "error"

# 设置 TiDB 会话变量,提升 Checksum 和 Analyze 的速度。
# 各参数定义可参阅”控制 Analyze 并发度“文档
build-stats-concurrency = 20
distsql-scan-concurrency = 100
index-serial-scan-concurrency = 20
checksum-table-concurrency = 16

# 解析和执行 SQL 语句的默认 SQL 模式。
sql-mode = "ONLY_FULL_GROUP_BY,NO_ENGINE_SUBSTITUTION"
# `max-allowed-packet` 设置数据库连接允许的最大数据包大小,
# 对应于系统参数中的 `max_allowed_packet`。 如果设置为 0,
# 会使用下游数据库 global 级别的 `max_allowed_packet`。
max-allowed-packet = 67_108_864

建表语句:

CREATE TABLE `face_predict_record` (
  `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `orderId` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '投保单id',
  `type` varchar(32) DEFAULT NULL COMMENT '0成功不是翻拍也不是证件照1:翻拍照片,2:证件照人脸照片,3:既是翻拍又是证件照人脸照片4识别失败,输入字段名或内容错误',
  `createBy` varchar(320) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `createDate` datetime DEFAULT NULL,
  `updateBy` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `updateDate` datetime DEFAULT NULL,
  `remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `status` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '0' COMMENT '0启用1删除',
  `enterParam` longtext DEFAULT NULL COMMENT '请求入参内容',
  `returnParam` text DEFAULT NULL COMMENT '返参信息',
  `systemSource` varchar(10) DEFAULT NULL COMMENT '系统来源',
  `requestType` varchar(1) DEFAULT NULL COMMENT '请求类型(1防翻拍区域判定;2防翻拍概率判定;3公安人脸识别)',
  `responseCode` varchar(10) DEFAULT NULL COMMENT '响应结果(200防翻拍识别成功;999防翻拍识别失败;SUCCESS公安人脸成功;FAIL公安人脸失败)',
  `responseMsg` varchar(10) DEFAULT NULL COMMENT '响应错误码(服务返回)',
  `showCode` varchar(10) DEFAULT NULL COMMENT '展示错误码(前端页面)',
  `showMsg` varchar(100) DEFAULT NULL COMMENT '展示提示信息(前端页面)',
  `countFlag` varchar(1) DEFAULT NULL COMMENT '是否计次(0否;1是)',
  `facePic` text DEFAULT NULL COMMENT '人脸识别照片',
  PRIMARY KEY (`id`) /*T![clustered_index] NONCLUSTERED */,
  KEY `idx_insurance_orderId` (`orderId`),
  KEY `idx_createDate` (`createDate`),
  KEY `idx_orderId` (`orderId`),
  KEY `idx_requestType` (`requestType`),
  KEY `idx_responseCode` (`responseCode`),
  KEY `idx_responseMsg` (`responseMsg`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin

查询了下count(distinct ID ) = count(*)
查看了下上下游集群lower_case_table_names 这个参数,导出集群的值是1, 导入集群的值是2

这样的话需要关闭 checksum,而且不推荐使用 local 模式导入,看看官网说明。

关闭checksum 的话是哪个参数控制的,我这边看下,看了下导出的数据和导入数据进行了一下对比,数据不一致

我记得会自动检查目标表是否是空的,你不会报错吗

前期导入的时候没有报错

好好看一下303培训视频

–checksum=off

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。