数据库归档工具:pt-archiver
一、优点
- 操作不影响程序事务,不锁表
- 可以按条件查询进行归档,批量提交事务
- 可以归档到文件、数据库等
- 归档完成,可以选择是否删除源表数据
二、应用场景
- 归档数据库冷数据到备份库,提高生产库性能
三、使用方法
- 单表归档,按条件
- 关联归档,按依赖条件(例如,归档财务记录:先归档了订单表,再归档找不到订单id的财务记录);
语法:
pt-archiver --source h=host,D=db,t=child --purge \
--where 'NOT EXISTS(SELECT * FROM parent WHERE col=child.col)'
- 限制:关联归档是至上而下的归档,表不能有外键
四、归档数据到数据库的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:批量插入
五、参考
- 安装:https://blog.csdn.net/coco3600/article/details/100232782
- 官网:https://www.percona.com/doc/percona-toolkit/LATEST/pt-archiver.html