mysql分库分表中拆分旧数据DBA工具-Percona Toolkit(pt-archiver)
适用场景:海量数据(千万级),要求低锁迁移
步骤:
-
安装工具:
wget percona.com/downloads/percona-toolkit/LATEST/percona-toolkit-3.5.7_x86_64.tar.gz tar zxvf percona-toolkit-3.5.7_x86_64.tar.gz
- 按年份分批迁移数据(以 2024 年为例):
pt-archiver \ --source h=localhost,u=用户名,p=密码,D=test,t=trail \ --dest h=localhost,u=用户名,p=密码,D=test,t=trail_2024 \ --where "YEAR(operate_time) = 2024" \ --progress 1000 \ --limit 1000 \ --txn-size 1000 \ --no-delete # 保留源数据(若需删除原数据则去掉此参数)
优点:无锁迁移,支持断点续传
缺点:需安装第三方工具,语法需要适配
其他方法对比:
方法 | 适用场景 | 运维复杂度 | 数据安全性 |
---|---|---|---|
原生存储过程 | 中小规模固定分表 | 低 | 中(需事务控制) |
pt-archiver | 海量数据迁移 | 中 | 高(无锁) |
Shell + crontab | 定期归档 | 低 | 中 |
Python 脚本 | 灵活定制 | 高 | 高 |