mysql 案例 ~ pt-archiver 归档工具的使用
一 简介:今天咱们来聊聊pt-archiver的使用
二 相关参数
相关参数1
--statistics 结束的时候给出统计信息:开始的时间点,结束的时间点,查询的行数,归档的行数,删除的行数,以及各个阶段消耗的总的时间和比例,便于以此进行优化。
--progress 每处理progress指定的行数后,就打印一次信息
--no-delete :表示不删除原来的数据,注意:如果不指定此参数,所有处理完成后,都会清理原表中的数据。
--limit 每组一次删除多少条数据
--where 过滤的条件
--why-quit 打印退出的原因
--purge 执行删除操作
--bulk-insert/delete 并发插入删除,能大幅度提高速度
--no-check-charset 不检测utf8mb4,因为pt工具不支持,建议加入
--txn-size 每组事务的大小(行数)
--source 源机器目标
--purge/--dest/--file 与source选项搭配,分别为删除 归档 和导入文件
--dry-run 只试运行,并不真正执行,会生成相关执行语句
相关参数2
i Index to use 这里要注意,对于非主键条件一定要指定列的索引,否则会强制走主键
三 常见需求场景
需求1
表数据归档
1 不删除
/usr/bin/pt-archiver --source h=localhost,u=root,p=root,P=3306,D=db,t=table,i=index_name --socket=/tmp/mysql.sock --no-check-charset --dest h=localhost,P=3306,u=root,p=root,D=db,t=table --socket=/tmp/mysql.sock --progress 5000 --where '' --statistics --charset=UTF8 --limit=10000 --txn-size 1000 - -no-delete --bulk-insert --why-quit
2 删除
去掉 --no-delete即可
需求2
表数据清理,但是不需要归档
/usr/bin/pt-archiver --source h=localhost,u=root,p=root,P=3306,D=db,t=table,i=index_name --purge --socket=/tmp/mysql.sock --no-check-charset --progress 5000 --where '' --statistics --limit=10000 --txn-size 1000 --why-quit --bulk-delete
四 总结
1 pt-archiver Bug不会迁移max(id)那条数据的解决方法
编辑修改/usr/bin/pt-archiver
修改前: $first_sql .= \" AND ($col < \" . $q->quote_val($val) . \")\";
修改后: $first_sql .= \" AND ($col <= \" . $q->quote_val($val) . \")\";
2 如同其他pt工具一样,这个工具的限制也一样,比如无主键,有触发器不能执行等
3 pt-archiver的select 如果where是主键条件,那么select 主键
如果不是主键条件,就会进行主键+条件进行组合
如果指定索引,走的就是索引
五 过程
1 pt-archiver先查询原库表,根据where条件进行limit查询
2 然后insert到指定的目的库表
3 然后select 指定的目的库表的where条件
4 最后根据目标库表的where条件进行删除原库表的相关数据,能确保新表拥有的数据在原表删除,保证安全性
六 注意事项
1 如果条件是非主键,一定要注意是否是索引,如果是索引,一定要制定,.如果不是,则再根据主键处理
2 如果数据重要,建议先迁移数据,然后再进行原表删除,
1 确保数据正确,根据条件进行查询
2 确保数据没有乱码
3 备份的表自增ID可能不连续(采用并发插入的方式)
3 根据输出结果可以查看具体进度
mysql 案例 ~ pt-archiver 归档工具的使用的更多相关文章
- mysql 案例 ~ pt修复工具的使用
简介:今天咱们来聊聊PT修复工具pt-table-sync 注意事项: 1 表要有主键或者唯一键 2 针对每一个chunk加的是for update锁 3 修复过程中不能容忍从库延迟 如果 ...
- mysql 案例 ~ pt校验工具介绍
简介:今天咱们来聊聊PT校验工具pt-table-checksum 注意事项: 1. 根据测试,需要一个即能登录主库,也能登录从库的账号: 2. 只能指定一个host,必须为主库的IP: ...
- (5.10)mysql高可用系列——percona-toolkit工具下的pt-table-checksum 在线验证主从一致性【续写中】
关键词:percona-toolkit 工具包中包含 pt-table-checksum工具,在线验证主从一致性 [1]percona-toolkit 工具包 [1.1]percona-toolkit ...
- mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理
转自:http://www.cnblogs.com/kevingrace/p/6261091.html 在mysql工作中接触最多的就是mysql replication mysql在复制方面还是会有 ...
- linux压缩、解压缩和归档工具
linux基础之压缩.解压缩和归档工具 1.压缩工具 基本介绍 为了减少文件的原来的文件大小而过多的浪费磁盘的存储空间,我们使用压缩后多文件进行存储 压缩工具的介绍 compress:把文件压缩成以. ...
- mysql 案例 ~ mysql主从复制错误问题
简介 mysql主从不同步的几种情况 一 具体情况 1 主库有memory引擎的内存表 分析 由于memory表的数据存放在内存中,一旦主库数据丢失,从库可能就会发生数据复制异常 ...
- MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等
MYSQL优化浅谈 msyql是开发常用的关系型数据库,快速.稳定.开源等优点就不说了. 个人认为,项目上线,标志着一个项目真正的开始.从运维,到反馈,到再分析,再版本迭代,再优化… 这是一个漫长且考 ...
- MySQL/MariaDB数据库的mysqldump工具备份还原实战
MySQL/MariaDB数据库的mysqldump工具备份还原实战 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mysqldump概述 1>.逻辑备份工具 mysq ...
- mysql几种性能测试的工具使用
mysql几种性能测试的工具使用 近期由于要比较mysql及其分支mariadb, percona的性能,了解了几个这方面的工具,包括:mysqlslap sysbench tpcc-mysql,做一 ...
- mysql慢查日志分析工具 percona-toolkit
备忘自: http://blog.csdn.net/seteor/article/details/24017913 1. 工具简介 pt-query-digest是用于分析mysql慢查询的一个工具, ...
随机推荐
- 什么是Maven?
绝大部分Maven用户都会说:Maven是一个“构建工具”——一个用来把源代码构建成可发布的构建的工具. 构建工程师和项目经理会说Maven是一个更复杂的东西:一个项目管理工具. Maven除了提供构 ...
- BZOJ3718[PA2014]Parking——树状数组
题目描述 你的老板命令你将停车场里的车移动成他想要的样子.停车场是一个长条矩形,宽度为w.我们以其左下角顶点为原点,坐标轴平行于矩形的边,建立直角坐标系.停车场很长,我们可以认为它一直向右边伸展到无穷 ...
- Leetcode 414.Fizz Buzz By Python
写一个程序,输出从 1 到 n 数字的字符串表示. 如果 n 是3的倍数,输出"Fizz": 如果 n 是5的倍数,输出"Buzz": 3.如果 n 同时是3和 ...
- sql server 小技巧(2) 删除sql server中重复的数据
with list_numbers as ( select Name, AuthorOrTime, Url, Price, EstimatePrice, Size, Category, ROW_NUM ...
- hdu3072 Intelligence System (最小树形图?)
题意:给一个有向图,问要从0号点能到达所有点所需要经过路径的最小权值和是多少,然而,若两点强联通,则这两点互相到达不需要花费.保证0号点能到达所有点 tarjan缩点以后直接取每个点入边中花费最小的即 ...
- 忘记ios访问限制密码
1.使用iTunes将手机备份在本地. 2.下载iBackupBot,打开后在左侧可以看到你的历史备份,选择刚刚备份的文件.依次选择System Files -> HomeDomain -> ...
- 【LOJ#6281】数列分块5
题目大意:维护一个有 N 个数组成的序列,支持查询区间元素和.区间元素向下取整的开方操作. 题解:由于序列中维护的数最大不超过整数的范围,而对于整数范围内的数来说,一个数在开方 5 次及以上时,结果不 ...
- os模块(二十)
os模块是与操作系统交互的一个接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相 ...
- babel的使用及babel与gulp结合工作流
Babel 通过语法转换器支持最新版本的 JavaScript . 它有非常多的插件,这些插件能够允许我们立刻使用新语法,无需等待浏览器支持. 那我们怎么使用babel呢? 首先我们来了解babel基 ...
- NOIP 普及组 2014 螺旋矩阵
传送门 https://www.cnblogs.com/violet-acmer/p/9898636.html 题解: 这道题挺有意思的,有点考思维吧. 大体思路是用四个pair<int ,in ...