千家信息网

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端口
Ssocket文件
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服务器加显卡 工业控制网络技术第二版试卷 亳州证券软件开发 软件开发工程的就业方向 信息系统网络安全检查报告 计算机网络技术对国家 阿里云 本地服务器管理工具 河北戴尔服务器维修维保费用 奉贤区高科技软件开发怎么样 计算机与网络技术基础计算题 网络安全周主体 学习网络安全教育心得体会 中小学生网络安全保密意识
0