tidb-lightning 恢复数据报错

tidb数据文件误删,重装后已经恢复了开启binglog之前的基线数据到tidb

Binglog增量备份到mysql数据的数据 我用mydumper导出 然后用 TiDB-backend想恢复增量数据到tidb,报错如下,请帮忙解答下

[2020/05/12 17:14:49.657 +08:00] [ERROR] [restore.go:277] [“run failed”] [step=2] [error=“table info wind_zsl.asharest not found”] Error: table info wind_zsl.asharest not found [2020/05/12 17:14:49.657 +08:00] [ERROR] [restore.go:283] [“the whole procedure failed”] [takeTime=78.086729ms] [error=“table info wind_zsl.asharest not found”] [2020/05/12 17:14:49.657 +08:00] [ERROR] [main.go:75] [“tidb lightning encountered error”] [error=“table info wind_zsl.asharest not found”] [errorVerbose=“table info wind_zsl.asharest not found\ngithub.com/pingcap/tidb-lightning/lightning/restore.(*RestoreController).restoreTables\ \t/home/jenkins/agent/workspace/release_tidb_4.0/go/src/github.com/pingcap/tidb-lightning/lightning/restore/restore.go:621\ngithub.com/pingcap/tidb-lightning/lightning/restore.(*RestoreController).Run\ \t/home/jenkins/agent/workspace/release_tidb_4.0/go/src/github.com/pingcap/tidb-lightning/lightning/restore/restore.go:267\ngithub.com/pingcap/tidb-lightning/lightning.(*Lightning).run\ \t/home/jenkins/agent/workspace/release_tidb_4.0/go/src/github.com/pingcap/tidb-lightning/lightning/lightning.go:221\ngithub.com/pingcap/tidb-lightning/lightning.(*Lightning).RunOnce\ \t/home/jenkins/agent/workspace/release_tidb_4.0/go/src/github.com/pingcap/tidb-lightning/lightning/lightning.go:146\ main.main\ \t/home/jenkins/agent/workspace/release_tidb_4.0/go/src/github.com/pingcap/tidb-lightning/cmd/tidb-lightning/main.go:72\ runtime.main\ \t/usr/local/go/src/runtime/proc.go:203\ runtime.goexit\ \t/usr/local/go/src/runtime/asm_amd64.s:1357”] sync log failed sync /dev/stdout: invalid argument

检查了表的schema和data都是存在的

  1. 请检查下表里是否有大小写不一致,多谢
  2. tidb是什么版本? lightning是什么版本?
  3. 查询下tidb中的表信息,反馈下这个表的schema信息多谢

tidb和lightning都是v4.0.0-rc版本, 表里大小写都是一致的;

表ddl比对了都是一致的:

CREATE TABLE ASHAREST ( OBJECT_ID varchar(100) NOT NULL COMMENT ‘对象ID’, S_INFO_WINDCODE varchar(40) DEFAULT NULL COMMENT ‘Wind代码’, S_TYPE_ST varchar(8) DEFAULT NULL COMMENT ‘特别处理类型’, ENTRY_DT varchar(8) DEFAULT NULL COMMENT ‘实施日期’, REMOVE_DT varchar(8) DEFAULT NULL COMMENT ‘撤销日期’, ANN_DT varchar(8) DEFAULT NULL COMMENT ‘公告日期’, REASON varchar(100) DEFAULT NULL COMMENT ‘实施原因’, OPDATE date DEFAULT NULL, OPMODE varchar(1) DEFAULT NULL, KEY I_000156 (S_INFO_WINDCODE,ANN_DT) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

请参考下这个帖子, 请问,上游mysql 的表有大小写的区分之类的吗? tidb-lightning 导入数据报表不存在,库里是有这个空表的Error: table info dbname.table not found

这个帖子我之前也看了,我也检查了我用mydumper导出的数据,确保了都是大写的 ,我tidb的表也是大写的;
配置文件和mysql导出数据
tidb-lightning-backend-wind_zsl_40.toml (7.2 KB) 备份数据和表.7z (24.2 KB)

补充下 我用几个库类似步骤执行 发现当表没有主键字段的时候就会报错,这个lightning-backend模式会需要检查表是否有主键么

从问题来看是备份里是大写的表名。 lightning需要导入的是小写的表名。有开启大小写敏感吗? 如果能够忽略大小写,是否可以把 tidb 表创建为小写,mydumper备份出来的表的文件名,改为小写,试试重新导入。