dump导出数据报错

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】用dumpling导出数据报错
【遇到的问题:问题现象及影响】
/data/software/tidb-toolkit-v5.3.2-linux-amd64/bin/dumpling -u $YOUR_USER -p $YOUR_PASSWD -P 4000 -h 10.8.123.8 --filetype sql -t 8 -B erp2stock10 -r 1000 -F 32MB -o /data/erp2stock10/
导出报错,提示如下:

【资源配置】
【附件:截图/日志/监控】

看看报错的那两个表是不是有问题


这个能修复么?

ADMIN RECOVER INDEX tbl idx;
试试这个修复一下index

:100: :100: :100: :100:

删除索引后,重建索引报错了。

索引删除后,导出还是报一样的错误

登上tidb执行下这个show index语句看看会不会报错,如果报错的话查一下tidb.log有没有啥异常信息

原来的索引删掉了,后面重新建又报错了
mysql> alter table inv_stock_daily_summary add INDEX idx_stockdate_goodsid_entid_depotid_transtypeid_deleted (depot_id,goods_id,stock_date,trans_type_id,ent_id,deleted);
ERROR 8202 (HY000): Cannot decode index value, because [types:1292]Incorrect time value: ‘{0 0 0 0 0 0 1554}’
只查看主键索引,没问题

你把stock_date去掉再创建索引试试

也是不行
mysql> alter table inv_stock_daily_summary add UNIQUE KEY ux_stockdate_goodsid_entid_depotid_transtypeid_deleted (depot_id,goods_id,trans_type_id,ent_id,deleted);
ERROR 8202 (HY000): Cannot decode index value, because [types:1292]Incorrect time value: ‘{0 0 0 0 0 0 1554}’

deleted是时间类型的字段吗?

数据量不大试试 select insert 重建表

表结构上一下

这错误提示写的是没有连接啊,这个index索引有问题?

CREATE TABLE inv_stock_daily_summary (
id bigint(20) NOT NULL AUTO_INCREMENT,
ent_id bigint(20) NOT NULL ,
org_id bigint(20) DEFAULT NULL ,
depot_id bigint(20) NOT NULL ,
depot_code varchar(35) NOT NULL DEFAULT ‘’,
depot_name varchar(60) NOT NULL DEFAULT ‘’,
goods_id bigint(20) NOT NULL,
goods_code varchar(30) NOT NULL,
goods_name varchar(60) NOT NULL ,
stock_date date NOT NULL,
period_no varchar(6) NOT NULL ,
trans_type_id bigint(20) NOT NULL,
trans_type varchar(35) NOT NULL,
trans_name varchar(60) NOT NULL DEFAULT ‘’,
io_flag int(11) NOT NULL DEFAULT ‘1’,
day_acc_qty decimal(18,6) NOT NULL DEFAULT ‘0.000000’,
day_acc_amt decimal(18,6) NOT NULL DEFAULT ‘0.000000’,
day_acc_fin_amt decimal(18,6) NOT NULL DEFAULT ‘0.000000’,
version int(11) NOT NULL DEFAULT ‘1’,
deleted bigint(20) NOT NULL DEFAULT ‘0’,
creator_code varchar(35) NOT NULL DEFAULT ‘’,
creator_name varchar(60) NOT NULL DEFAULT ‘’,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
creator_org_code varchar(35) NOT NULL DEFAULT ‘’,
modifier_code varchar(35) NOT NULL DEFAULT ‘’,
modifier_name varchar(60) NOT NULL DEFAULT ‘’,
last_modified_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
modifier_org_code varchar(35) NOT NULL DEFAULT ‘’,
PRIMARY KEY (id) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=668267625;

deleted bigint(20)

mysql> insert into inv_stock_daily_summary_bak1027 select * from inv_stock_daily_summary;
ERROR 1105 (HY000): invalid data type: Failed to decode row v2 data as u64

‘{0 0 0 0 0 0 1554}’ 是不是可以先看看这条唯一索引下的数据所在行有没有特殊值?先记录好数据删掉这一行后再看看能不能导出?

带where条件查询都报错