• pt-archiver配置自动归档


    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即可实现定时任务归档。在表设计之初,也需要考虑数据归档的条件及建立合适的索引。另外定时归档计划要对项目组共享,防止不知道的程序员以被归档表的表做全量业务搜索。

  • 相关阅读:
    寄生组合式继承
    原型式继承
    js数学方法应用
    arguments.callee
    date日期比较和格式化方法
    转型函数 Boolean()
    javaScript高程第三版读书笔记
    《JavaScript dom 编程艺术》 placeholder占位符IE8兼容办法。
    正确设置网站title、keywords、description(转载)
    理解RESTful架构
  • 原文地址:https://www.cnblogs.com/mzsg/p/11978002.html
Copyright © 2020-2023  润新知