1)task_status表默认数据保留是35天,如果有专门调整过“guandata-server-controller.yaml的args里 “-DguandataCleaner.taskStatusExpireDays”参数的话,会修改保留天数
2)如果上面参数没有修改过的话,默认按照保留35天的数据去查看task_status表发现还有35天之前的数据,关于这个情况的话,是由于查询到的数据量太多,清理时申请锁超出限制。The total number of locks exceeds the lock table size
2.1)可以联系运维先手动清理一下数据表中的数据,然后下一天再观察一下任务的执行情况。可以考虑优化删除时的查询条件,分段进行数据删除(比如一次搜索1000条,分多次清除),防止一次搜索的数据量太多导致上述问题。
2.2)执行sql参考,分段进行清理:
<div>DELETE FROM task_status WHERE submit_time < DATE_SUB(NOW(), INTERVAL 35 DAY);
DELETE FROM task_status WHERE submit_time < DATE_SUB(NOW(), INTERVAL 30 DAY);
DELETE FROM task_status WHERE submit_time < DATE_SUB(NOW(), INTERVAL 25 DAY);
DELETE FROM task_status WHERE submit_time < DATE_SUB(NOW(), INTERVAL 20 DAY);
DELETE FROM task_status WHERE submit_time < DATE_SUB(NOW(), INTERVAL 15 DAY);
DELETE FROM task_status WHERE submit_time < DATE_SUB(NOW(), INTERVAL 10 DAY);</div>