一 简介:今天咱们来聊聊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 归档工具的使用的更多相关文章

  1. mysql 案例 ~ pt修复工具的使用

    简介:今天咱们来聊聊PT修复工具pt-table-sync 注意事项:   1 表要有主键或者唯一键   2 针对每一个chunk加的是for update锁   3 修复过程中不能容忍从库延迟 如果 ...

  2. mysql 案例 ~ pt校验工具介绍

    简介:今天咱们来聊聊PT校验工具pt-table-checksum 注意事项:    1. 根据测试,需要一个即能登录主库,也能登录从库的账号:    2. 只能指定一个host,必须为主库的IP:  ...

  3. (5.10)mysql高可用系列——percona-toolkit工具下的pt-table-checksum 在线验证主从一致性【续写中】

    关键词:percona-toolkit 工具包中包含 pt-table-checksum工具,在线验证主从一致性 [1]percona-toolkit 工具包 [1.1]percona-toolkit ...

  4. mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理

    转自:http://www.cnblogs.com/kevingrace/p/6261091.html 在mysql工作中接触最多的就是mysql replication mysql在复制方面还是会有 ...

  5. linux压缩、解压缩和归档工具

    linux基础之压缩.解压缩和归档工具 1.压缩工具 基本介绍 为了减少文件的原来的文件大小而过多的浪费磁盘的存储空间,我们使用压缩后多文件进行存储 压缩工具的介绍 compress:把文件压缩成以. ...

  6. mysql 案例 ~ mysql主从复制错误问题

    简介 mysql主从不同步的几种情况 一  具体情况   1 主库有memory引擎的内存表      分析 由于memory表的数据存放在内存中,一旦主库数据丢失,从库可能就会发生数据复制异常    ...

  7. MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等

    MYSQL优化浅谈 msyql是开发常用的关系型数据库,快速.稳定.开源等优点就不说了. 个人认为,项目上线,标志着一个项目真正的开始.从运维,到反馈,到再分析,再版本迭代,再优化… 这是一个漫长且考 ...

  8. MySQL/MariaDB数据库的mysqldump工具备份还原实战

    MySQL/MariaDB数据库的mysqldump工具备份还原实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mysqldump概述 1>.逻辑备份工具 mysq ...

  9. mysql几种性能测试的工具使用

    mysql几种性能测试的工具使用 近期由于要比较mysql及其分支mariadb, percona的性能,了解了几个这方面的工具,包括:mysqlslap sysbench tpcc-mysql,做一 ...

  10. mysql慢查日志分析工具 percona-toolkit

    备忘自: http://blog.csdn.net/seteor/article/details/24017913 1. 工具简介 pt-query-digest是用于分析mysql慢查询的一个工具, ...

随机推荐

  1. THUWC2019 摸鱼记

    Day1 菜狗选手无人权,衣服没有海星,狗牌手写全糊,餐票不发刷卡,住宿自理宾馆. 人菜没办法. 感受到了自己智商低 不想写了 想原地退役 不知道还要不要走下去

  2. hdu3506 Monkey Party (区间dp+四边形不等式优化)

    题意:给n堆石子,每次合并相邻两堆,花费是这两堆的石子个数之和(1和n相邻),求全部合并,最小总花费 若不要求相邻,可以贪心地合并最小的两堆.然而要求相邻就有反例 为了方便,我们可以把n个数再复制一遍 ...

  3. HDU 1176 免费馅饼 (动态规划)

    HDU 1176 免费馅饼 (动态规划) Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼 ...

  4. A1008. Elevator

    The highest building in our city has only one elevator. A request list is made up with N positive nu ...

  5. 收藏:SQL重复记录查询 .

    来自:http://blog.csdn.net/chinmo/article/details/2184020 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select ...

  6. codeblocks下的汇编语言

    Debug->Debugging windows->Disassembly F4+F7 每条语句的调试,查看变量 可以通过两者的比较来互相学习 1.通过查看汇编代码学习c如何改进,减少代码 ...

  7. 出现“java.lang.AssertionError: SAM dictionaries are not the same”报错

    运行一下程序时出现“java.lang.AssertionError: SAM dictionaries are not the same”报错 java -jar picard.jar SortVc ...

  8. Python 爬虫的工具列表 附Github代码下载链接

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  9. ansible指路篇-安装及基本命令使用

    ansible指路篇-安装及基本命令使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是ansible ansible是新出现的自动化运维工具,基于Python开发,集合 ...

  10. 函数和常用模块【day04】:作用域、局部和全局变量(四)

    本节内容 概述 课前前引 局部变量和全局变量 总结 一.概述 我们之前写代码,都需要声明变量,但是我们思考过变量的作用范围吗?今天我们就来讲讲变量的作用范围,这个作用范围又叫作用域.首先我们根据变量的 ...