tidb 创建索引失败

  1. 导入时使用的 lightning local backend模式吗?使用的哪个版本的lightning?
  2. 麻烦展示下这个表 show table regions 的结果

有一点,需要说明,由于mysql数据量太大,使用dumping 和 lightning 一次性导入磁盘空间不够,采用表前缀模糊匹配导入数据,然后删除之前导入的数据,再次导入,单一张表是一次性导入进去的。

tidb-toolkit-v4.0.3-linux-amd64.tar.gz

请问这是所有的 show region 结果吗? 请展示所有结果

是的,执行命令如下:
show table h_recycle_record REGIONS ;
一共有8495条,太多了。是否需要上传所有?

all-regions.sql (3.0 MB)

  1. 这个问题是由有使用lightning local backend 模式导入切region造成的 Issue: https://github.com/pingcap/tidb/issues/20727 PR: https://github.com/pingcap/tidb/pull/20908

  2. 再 lighting v4.0.9以后版本修复

  3. 目前解决方法,需要将这种有问题的(可以看到没有正常的 _r 或 _i 标识) region merge 合并,再手工分裂

  4. 合并和分裂方法使用 pd-ctl

>> operator add merge-region 1 2                        // 将 Region 1 与 Region 2 合并
>> operator add split-region 1 --policy=approximate     // 将 Region 1 对半拆分成两个 Region,基于粗略估计值
>> operator add split-region 1 --policy=scan            // 将 Region 1 对半拆分成两个 Region,基于精确扫描值

./pd-ctl -i -u http://127.0.0.1:2379
image

请问是通过这种方式进行操作么,为啥会提示operator 不存在呢

127.0.0.1是你的ip地址吗?连接自己的pd 的地址

不是,我修改了,是pd 的地址

还不行吗? 我看这边和你的问题差不多,应该已经调整了
建立索引时 ddl jobs 中的 ROW_COUNT 超出实际数据记录数

应该可以了,在建索引,已经花了4000多秒了

好的,有问题再继续反馈

tidb-toolkit-v4.0.9 dumpling 是不是有问题呢?
同步数据的是后,挂掉了两次,一次是15分钟之后,一次是16分钟之后,提示[“dump failed error stack info”] [error=“sql: FLUSH TABLES WITH READ LOCK: invalid connection”],查看了下,mysql 是可以访问的。

tidb-toolkit-v4.0.3 在dumpling的6.7亿没有出现报错的情况,之前几个T的数据同步也没有问题。

修改过之后,索引创建成功,6.7亿,耗时11个小时

我滴个神,用了11个小时

:rofl:

我这边体验过,感同身受。。。:rofl:

可以在业务低峰期增大这两个参数值加快索引创建
https://docs.pingcap.com/zh/tidb/stable/online-workloads-and-add-index-operations#测试方案-1add-index-目标列被频繁-update