比如GC这些操作呢?我觉得这是一个怀疑点~
原来是24h, 我也怀疑过这个问题,所以在执行到50多亿时候,我就修改gc 到30min 了。但是现在还是到了80 多亿
我的意思是GC导致dll进程报错重试,然后又从头开始,但计数没有清零。
但是不知你说这种情况如何证明
抛开过程不谈,最终这个dll执行成功了么?表字段修改了么?
看下当前的集群的reorg配置是多少?是不是分配的资源太少了?
mysql> show variables like '%reorg%';
+----------------------------+--------------+
| Variable_name | Value |
+----------------------------+--------------+
| tidb_ddl_enable_fast_reorg | ON |
| tidb_ddl_reorg_batch_size | 256 |
| tidb_ddl_reorg_priority | PRIORITY_LOW |
| tidb_ddl_reorg_worker_cnt | 8 |
+----------------------------+--------------+
4 rows in set (0.00 sec)
4-5天 明显就是挂了
5天前我自己重启的
MySQL [(none)]> show variables like ‘%reorg%’;
±---------------------------±-------------+
| Variable_name | Value |
±---------------------------±-------------+
| tidb_ddl_enable_fast_reorg | ON |
| tidb_ddl_reorg_batch_size | 256 |
| tidb_ddl_reorg_priority | PRIORITY_LOW |
| tidb_ddl_reorg_worker_cnt | 4 |
±---------------------------±-------------+
4 rows in set (0.00 sec)
现在取消重新跑了。取消过程很快就完成了。
这2个参数调大能让回填过程快一些,你的gc时间设置多久,pd-ctl service-gc-safepoint --pd pd_addr 看下
是不是你加了after的原因
tidb_ddl_reorg_batch_size 调为了 1024
tidb_ddl_reorg_worker_cnt 调为了 32
是立即生效的吧
设置后会持久化 ,在下一批数据中生效。看safepoint时间 ,好像DDL并没有对它造成影响
跑完了没?
没有,取消了
取消完成的快么?
取消很快