pt-archiver 数据删除、迁移工具使用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1. 数据库连接参数参数说明A字符编码D库F从文件读取选项L加载数据本地文件P端口Ssocket文件a执行查询的数据库b如果是true, 禁用SQL_LOG_BINh数据库地址i查询使用的索引m插件模
千家信息网最后更新 2026年11月02日pt-archiver 数据删除、迁移工具使用
1. 数据库连接参数
| 参数 | 说明 |
|---|---|
| A | 字符编码 |
| D | 库 |
| F | 从文件读取选项 |
| L | 加载数据本地文件 |
| P | 端口 |
| S | socket文件 |
| a | 执行查询的数据库 |
| b | 如果是true, 禁用SQL_LOG_BIN |
| h | 数据库地址 |
| i | 查询使用的索引 |
| m | 插件模块名称 |
| p | 数据库密码 |
| t | 表 |
| u | 用户名 |
2. 常用参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| --limit 10000 | 每次取1000行数据用pt-archive处理,Number of rows to fetch and archive per statement. | |
| --txn-size 1000 | 设置1000行为一个事务提交一次,Number of rows pertransaction. | |
| --where 'id<3000' | 设置操作条件 | |
| --progress 5000 | 每处理5000行输出一次处理信息 | |
| --statistics | 输出执行过程及最后的操作统计 | |
| --charset=UTF8 | 指定字符集为UTF8 | |
| --bulk-delete | 批量删除source上的旧数据(例如每次1000行的批量删除操作) | |
| --bulk-insert | 批量插入数据到dest主机 (看dest的general log发现它是通过在dest主机上LOAD DATA LOCAL INFILE插入数据的) | |
| --replace | 将insert into 语句改成replace写入到dest库 | |
| --sleep 120 | 每次归档了limit个行记录后的休眠120秒(单位为秒) | |
| --file '/root/test.txt' | 导出的文件路径 | |
| --purge | 删除source数据库的相关匹配记录 | |
| --header | 输入列名称到首行(和--file一起使用) | |
| -no-check-charset | 不指定字符集 | |
| --check-columns | 检验dest和source的表结构是否一致,不一致自动拒绝执行(不加这个参数也行。默认就是执行检查的) | |
| --no-check-columns | 不检验dest和source的表结构是否一致,不一致也执行(会导致dest上的无法与source匹配的列值被置为null或者0) | |
| --chekc-interval | 默认1s检查一次 | |
| --local | 不把optimize或analyze操作写入到binlog里面(防止造成主从延迟巨大) | |
| --retries | 超时或者出现死锁的话,pt-archiver进行重试的间隔(默认1s) | |
| --no-version-check | 目前为止,发现部分pt工具对阿里云RDS操作必须加这个参数 | |
| --analyze=ds | 操作结束后,优化表空间(d表示dest,s表示source) |
2. example
1. 删除老数据
pt-archiver \--source h=localhost,u=root,p=1234,P=3306,D=test,t=t \--no-check-charset --where 'a<=376' --limit 10000 --txn-size 1000 --purge2. 复制数据到其他mysql实例,且不删除source的数据(指定字符集):
/usr/bin/pt-archiver \--source h=localhost,u=root,p=1234,P=3306,D=test,t=t1\--dest h=192.168.2.12,P=3306,u=archiver,p=archiver,D=test,t=t1_bak \--progress 5000 --where 'mc_id<=125' \--statistics --charset=UTF8 --limit=10000 --txn-size 1000 --no-delete3. 复制数据到其他mysql实例,并删source上的旧数据(指定字符集):
/usr/bin/pt-archiver \--source h=localhost,u=root,p=1234,P=3306,D=test,t=t1 \--dest h=192.168.2.12,P=3306,u=archiver,p=archiver,D=test,t=t1_his \--progress 5000 --where "CreateDate <'2017-05-01 00:00:00' " \--statistics --charset=UTF8 --limit=10000 --txn-size 1000 --bulk-delete4. 复制数据到其他mysql实例,不删除source数据,但是使用批量插入dest上新的数据(指定字符集):
/usr/bin/pt-archiver \--source h=localhost,u=archiver,p=archiver,P=3306,D=test,t=t1 \--dest h=192.168.2.12,P=3306,u=archiver,p=archiver,D=test,t=t1_his \--progress 5000 --where "c <'2017-05-01 00:00:00' " \--statistics --charset=UTF8 --limit=10000 --txn-size 1000 --no-delete --bulk-insert5. 导出数据到文件
/usr/bin/pt-archiver \--source h=10.0.20.26,u=root,p=1234,P=3306,D=test,t=t \--file '/root/test.txt' \--progress 5000 --where 'a<12000' \--no-delete --statistics --charset=UTF8 --limit=10000 --txn-size 10006. 导出数据到文件并删除数据库的相关行:
/usr/bin/pt-archiver \--source h=10.0.20.26,u=root,p=1234,P=3306,D=test,t=t \--file '/root/test.txt' \--progress 5000 --where 'a<12000' \--statistics --charset=UTF8 --limit=10000 --txn-size 1000 --purge
数据
参数
字符
数据库
文件
一致
字符集
实例
处理
主机
名称
结构
查询
检查
检验
输出
工具
巨大
主从
事务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳市人人互联网科技有限公司
为想互联网科技怎么样
新华互联网科技学院
互联网科技小贷
互联网科技股票
奇士达互联网科技
广州凡科互联网科技
上海万想互联网科技
互联网前沿科技
佰商互联网科技有限公司
港股科技和互联网
语蝶互联网科技有限公司
互联网与医疗科技
民营互联网公司国防科技
怎样加入科技互联网
产业互联网科技服务公司
工业互联网科技成果转化
卡尔迅互联网科技有限公司
互联网金融运营模式中的金融科技
互联网科技企业文化
与互联网科技公司
成都互联网科技公司
互联网科技论文
互联网科技产品
中国科技互联网公司收入
湖南一路畅行互联网科技
浙南科技城互联网大厦建设工程
保险科技服务互联网营销体系
厦门江牛科技互联网
广州有谷有贝互联网科技有限公司