能否修改 inforamtion_schema 中 table 表的 TIDB_TABLE_ID

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
在从 v5.4.0 升级至 v7.1.5 的过程中,有开发对某表进行了 truncate 操作,导致此表的 table_id 发生了改变,从 10972 变为 10974,用drainer 进行同步的时候,提示 table 10972 not found。我想创建一张不用的表,然后把这个表的table_id 改为 10972 ,绕过这个问题,是否可行?

要不试试 cdc 吧。拿 drainer 的 tso 启动个 cdc 任务 很完美。

1 个赞

应该不行,没听说过能改

改不了,要不把这tso跳过

应该不行把。。

没听过这么改的

应该改不了,只能删表重建才会变

truncate 的操作,在tidb内部实现的时候是drop+create的方式实现的,所以表的id会变。
表的id是由系统自动分配的,不建议去修改,应该改了也不一定会有用,可能还会引入其他未知问题。

既然集群已经升级到了7.1.5版本,那么就更应该使用TICDC实现实时同步,binlog同步的方式可以废弃了,官方也不再推荐使用binlog来同步。

1 个赞

另外,大佬你们升级这个的过程有没有遇到什么问题?期待你的踩坑经历或升级经验分享

不行的

应该是不行

我复现了你你的操作,truncate table 后,通过SELECT TIDB_TABLE_ID,TABLE_SCHEMA ,TABLE_NAME ,TABLE_TYPE FROM INFORMATION_SCHEMA.tables where table_name =‘xxx’ tidb_table_id发生了变化,没有找到修改的地方。

未知影响点太多了

遇到的问题就是升级过程中有业务 truncate 表,造成 drainer 启动的时间会比较慢,但也提示升级成功了。现在回想应该当时就是找不到table_id 为10972的表了,drainer 启动有问题。其他的目前还没发现什么问题。

table id 应该是建表就确定了,存入数据中的,没办法修改

这也行? 我试试

应该不行

那整体从v5.4可以直接升级到v7.1,看起来很顺利,多谢分享经验