mysql定时任务(Event)

害,说起背景都要泪目了。

小弟最近在开发agent时候,误把旧代码发布了。正好这两天的公司的几个流量大户发版了,发版时会把agent打包进镜像,大量的埋点被拦截上报,APM系统差点被打爆,公司内网SLB飚到80%。

目前每天还会产生几万条无用数据,可以通过下面命令查看磁盘占用。

-- 查看数据库/数据库表的空间占用
select concat(round(sum(data_length/1024/1024),2),’MB’) as data 
from tables 
where table_schema=’DB_Name’ 
  # and table_name=’Table_Name’;

在第一时间把agent版本回滚之后,联系几个流量大户重新打包发版,SLB及时下降。

考虑到所有服务重新发版影响范围太大,且不重新发版的影响也能接受,因此决定等后续用户自行择期发版。

但是agent上报的大量数据是无用的,为了防止端午期间数据库磁盘占用过高。设置一个mysql定时任务event为clear_project_config_event,清理无用数据。

-- 查看事件调度器是否启用
SHOW VARIABLES LIKE 'event_scheduler';
SELECT @@event_scheduler;
-- 查看当前所在库的事件
show events;
-- 创建事件
CREATE EVENT IF NOT EXISTS clear_project_config_event
ON SCHEDULE EVERY 1 MINUTE
ON COMPLETION PRESERVE
COMMENT '定时清理agent配置项(每分钟一次)'
DO TRUNCATE TABLE project_config;
-- 修改事件
ALTER EVENT clear_project_config_event
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
ON COMPLETION PRESERVE
COMMENT '定时清理agent配置项(每天凌晨1点执行)'
DO TRUNCATE TABLE project_config;
-- 开启事件(create完默认就是ENABLE)
ALTER EVENT clear_project_config_event ENABLE;
-- 删除事件
DROP EVENT IF EXISTS clear_project_config_event;

具体命令参考:超详细的MySQL事件

本文由 mdnice 多平台发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机智的路易

用爱发电是走不远的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值