数据库归档工具:pt-archiver

2020年11月25日 作者 kee

数据库归档工具:pt-archiver

一、优点

  1. 操作不影响程序事务,不锁表
  2. 可以按条件查询进行归档,批量提交事务
  3. 可以归档到文件、数据库等
  4. 归档完成,可以选择是否删除源表数据

二、应用场景

  1. 归档数据库冷数据到备份库,提高生产库性能

三、使用方法

  1. 单表归档,按条件
  2. 关联归档,按依赖条件(例如,归档财务记录:先归档了订单表,再归档找不到订单id的财务记录);
    语法:

     pt-archiver --source h=host,D=db,t=child --purge \
            --where 'NOT EXISTS(SELECT * FROM parent WHERE col=child.col)'
  3. 限制:关联归档是至上而下的归档,表不能有外键

四、归档数据到数据库的demo

    pt-archiver --source h=192.168.8.166,P=3306,u=root,D=parcels_prod_env_20200630,t=orde_operate_history,A=utf8 \
    --dest h=192.168.8.166,P=3306,u=root,D=kee_test_archiver,t=orde_operate_history,A=utf8 \
    --charset=utf8 \
    --where "created_date < '2020-08-20 09:48:00'" \
    --progress=50 --txn-size=1000 --limit=50 --statistics \
    --bulk-insert --ask-pass
    --no-delete 

    重点参数说明:
    1. --no-delete:归档后不删除源表数据,要删除用:--bulk-delete
    2. --ask-pass:询问输入密码
    3. --progress:处理多少行后,输出一条日志
    4. --statistics:输出统计信息
    5. --bulk-insert:批量插入

五、参考

  1. 安装:https://blog.csdn.net/coco3600/article/details/100232782
    • 安装过程如有依赖包未装,安装即可
  2. 官网:https://www.percona.com/doc/percona-toolkit/LATEST/pt-archiver.html