由于生产mysql占用磁盘空间过快过大,有了需要清理无用日志的需求,需要清理半年前的错误日志和一个月前的成功日志,而日志列是yarn任务的运行日志,MB级别的longtext列要置为空:
UPDATE db.table SET YARN_LOG='' where status='success'
语句由于没加限制,全表导致全量更新,日志记录到binlog,一个更新事务导致log目录到达TB级别,主库崩溃,切换备库也于事无补,事后三小时才恢复,幸运的是本事务一个月才执行一次,不用发补丁解决。
解决方案:单次更新加上limit限制数据更新条数。