pt-archiver 数据删除、迁移工具使用
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,1. 数据库连接参数参数说明A字符编码D库F从文件读取选项L加载数据本地文件P端口Ssocket文件a执行查询的数据库b如果是true, 禁用SQL_LOG_BINh数据库地址i查询使用的索引m插件模
千家信息网最后更新 2025年02月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 --purge
2. 复制数据到其他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-delete
3. 复制数据到其他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-delete
4. 复制数据到其他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-insert
5. 导出数据到文件
/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 1000
6. 导出数据到文件并删除数据库的相关行:
/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安全错误
数据库的锁怎样保障安全
黑客为什么能入侵服务器
网安天下网络安全意识
培养网络安全人才 才能
数据库工资管理系统体会
服务器添加角色
数据库长度是
lol手游哪个服务器活动多
海康刀锋服务器
软件开发项目里程碑计划模板
嵌入式软件开发工程师招聘渠道
国家对网络安全法律法规
vba判断数据库表是否被锁
软件开发 招标 并发要求
求职简历模板软件开发
怎么进csol以前的服务器
河南小当家网络技术有限公司
数据库修改了密码还是密码错误
dell服务器加显卡
工业控制网络技术第二版试卷
亳州证券软件开发
软件开发工程的就业方向
信息系统网络安全检查报告
计算机网络技术对国家
阿里云 本地服务器管理工具
河北戴尔服务器维修维保费用
奉贤区高科技软件开发怎么样
计算机与网络技术基础计算题
网络安全周主体
学习网络安全教育心得体会
中小学生网络安全保密意识