黄东旭解析 TiDB 的核心优势
568
2024-03-04
具体架构上游是tidb,经由cdc同步到mysql,同步出错的原因是因为不支持的ddl语句,一共有两个ddl同时执行
报错语句:
alter table table_name rename column column_name1 to column_name2以前总能碰到mysql的DDL在tidb上不支持,这种情况下的DDL是特别注意的,但是tidb用习惯后,没有注意这一点,查了mysql5.7官网才发现,确实是不支持字段的rename操作,可以通过change column等来达到效果
小结:这是正常的处理方式,到目前为止第一个ddl的错误正常解决,但很快,第二个ddl的报错就到了,cdc再次不能正常同步,这时候再进行一次上面的操作,但是这里就出现了问题,看接下来的处理
remove后用list查看发现被remove掉的changefeed还存在,然后新建的同步业务也不同步,问题类似于tug论坛里的问题,其现象是已有的这个issue,还有一些相关的issue可以做参考issue1,issue2,issue3
这个是因为remove后很快就进行create导致的,问题和tug论坛里的问题情况二一样
如果不着急可以先等一段时间,半个小时左右,(在这期间可以调大上游的gc时间,以免等待时间过长,超过了gc时间,导致丢数据的情况),再进行list,发现remove信息没有后即可正常进行接下来操作
# 预留足够的时间给cdc同步 update mysql.tidb set VARIABLE_VALUE="24h" where VARIABLE_NAME="tikv_gc_life_time";如果很着急且等了一段时间后都没有反应,则可以进行unsafe reset,不过要记录下所有任务的信息,以防万一,这一步操作之后所有的changefeed都需要重建
tiup cdc:v4.0.13 cli --pd=pd_host:pd_port unsafe reset在正式下线任务的时候,会收到已经下线的cdc任务的报警,这也是低版本cdc的一个bug,如果不升级的话,遇到的时候可以通过reload cdc来解决
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。