Mysql的数据归档通常使用percona的pt-archiver。通过shell脚本加crontab可以应对大多数场景下的数据自动归档。

安装

Percona Toolkit的安装不再赘述,请自行搜索参考内容。

归档脚本

mysql_archiver.sh 代码如下:

d1=`date -d "-1 month " +%Y-%m-%d`
d2=`date -d "-2 month " +%Y-%m-%d`
d3=`date -d "-3 month " +%Y-%m-%d`
d4=`date -d "-4 month " +%Y-%m-%d`
d5=`date -d "-5 month " +%Y-%m-%d`
d6=`date -d "-6 month " +%Y-%m-%d`
echo 'd1='$d1' d2='$d2' d3='$d3' d4='$d4' d5='$d5' d6='$d6 echo archiver table common_req
pt-archiver --source h=xxx.mysql.rds.aliyuncs.com,P=3306,u=test,p='你的密码',D=db1,t=common_req --dest h=xxx.mysql.rds.aliyuncs.com,P=3306,u=ucheer_cgb_user,p='你的密码',D=db1,t=common_req_archive --charset=UTF8 --where 'create_time<"'$d3'"' --progress 10000 --limit=10000 --txn-size 10000 --no-version-check --statistics --purge --ignore

pt-archiver的功能很丰富,相关语法请自行搜索,这里简要介绍下线上实际使用脚本中的参数及取值。

变量d1 - d6分别为当天的前1 - 6个月,实际场景中大多是执行清理多久前的数据。表必须要有主键,归档条件记得建立合适的索引,建议每个表都建立 create_time和update_time。

每批按10000条处理,并显示统计信息。purge是指删除原表中已归档数据,ignore是指当数据冲突时忽略冲突。

归档计划

crontab -e 添加一条定时任务:

00 04 * * * /bin/sh /home/xxx/mysql_archiver.sh>> /home/xxx/mysqlarchiver/output.txt

每天凌晨4点执行一次归档计划脚本且将结果保存到output.txt中。

总结

pt-archiver的功能丰富,通过shell脚本加crontab即可实现定时任务归档。在表设计之初,也需要考虑数据归档的条件及建立合适的索引。另外定时归档计划要对项目组共享,防止不知道的程序员以被归档表的表做全量业务搜索。

最新文章

  1. php中的M方法
  2. Java程序-进程中的&quot;进程&quot;
  3. jquery重写一个对话框
  4. CI框架初探
  5. CentOS7.0分布式安装HADOOP 2.6.0笔记-转载的
  6. mysql语句中使用like后面的%(百分号)的问题
  7. delphi中nil、null、UnAssigned区别
  8. CaltrainTimes从设计到发布(基于Flex的手机应用)
  9. C#将制定文件夹下的PDF文件合并成一个并输出至指定路径
  10. Factory Method (工厂模式)
  11. SQL语句练习题【主供自己学习、记忆】
  12. leetcode136只出现一次的数字
  13. contos mysql 删除
  14. 安装PHP扩展32位与64位的误区(x86与x64的查看)
  15. Activity之Serializable
  16. 关于PS抠图的各种方法 有这个就可以去面试了!!!加油!!!
  17. JS性能优化 之 FOR循环
  18. Xmind在win10更改用户设置后出现Invalid Configuration Location 错误的解决办法
  19. QtWebkit包含的类简介
  20. HDU2993_MAX Average Problem

热门文章

  1. 对opencv读取的图片进行像素调整(1080, 1920) 1.cv2.VideoCapture(构造图片读取) 2.cv2.nameWindow(构建视频显示的窗口) 3.cv2.setWindowProperty(设置图片窗口的像素) 4.video_capture(对图片像素进行设置)
  2. 给JAVA的eclipse IDE 在线安装 SVN插件 / 给 eclipse 添加打开所在的文件夹功能
  3. 1、WebSphere Application Server的下载以及安装
  4. Workflow-产品:泛微工作流引擎
  5. py matplotlib 多个figure同时画多个图以及多个图例多个折线图
  6. springboot2.0数据制作为excel表格
  7. 七十九:flask.Restful之flask-Restful标准化返回参数示例
  8. android开发过程报错
  9. JPA 或者Hibernate 实体类说明
  10. Node、Document关系的探究