相关文章推荐
博学的枇杷  ·  SQL中的嵌套CASE语句 - ·  3 周前    · 
唠叨的硬盘  ·  如何实现MySQL case when ...·  3 周前    · 
微笑的青蛙  ·  selenium ...·  3 周前    · 
帅呆的篮球  ·  子查詢 (SQL Server) - ...·  2 周前    · 
热心的移动电源  ·  saprk rdd默认分区 - CSDN文库·  1 年前    · 
帅气的葡萄  ·  Java中如何精准优化 if…else ...·  2 年前    · 
潇洒的保温杯  ·  社会网络分析与UCINET 学习(一) - ...·  2 年前    · 
鼻子大的饭盒  ·  C#实现进制转换_C#教程_脚本之家·  2 年前    · 
文质彬彬的勺子  ·  Vue内部 v-for +click ...·  2 年前    · 
Code  ›  pt-archiver 归档表到文件 - 墨天轮
t1 select
https://www.modb.pro/db/569692
爱旅游的遥控器
2 年前
  • 学习
    • 课程中心
      推荐优质内容、热门课程
    • 学习路径
      预设学习计划、达成学习目标
    • 知识图谱
      综合了解技术体系知识点
    • 课程库
      快速筛选、搜索相关课程
    • 视频学习
      专业视频分享技术知识
    • 电子文档
      快速搜索阅览技术文档
  • 文档
  • 工具
    • SQLRUN
      在线数据库即时SQL运行平台
    • 数据库在线实训平台
      实操环境、开箱即用、一键连接
    • Oracle巡检
      简单两步,查看报告分析
    • AWR分析
      上传AWR报告,查看分析结果
    • SQL格式化
      快速格式化绝大多数SQL语句
    • SQL审核
      审核编写规范,提升执行效率
    • PLSQL解密
      解密超4000字符的PL/SQL语句
    • OraC函数
      查询Oracle C 函数的详细描述
    • Bethune X
      数据库智能监控巡检平台,90天试用
  • 暂无图片
    • 数据库
    • 云计算
    • 数据产品
    • 中间件
    • 操作系统
    • 芯片
  • 我的订单
  • 登录后可立即获得以下权益
    免费培训课程
    收藏优质文章
    疑难问题解答
    下载专业文档
    签到免费抽奖
    提升成长等级
    立即登录
    登录 注册
      • 登录 注册
    • 首页
    • 资讯
    • 数说
    • 活动
    • 大会
    • 课程
    • 文档
    • 排行
    • 问答
    • 云市场
    • 我的订单
    暂无图片
    觉得内容不错?
    一键收藏 方便随时查看
    暂无图片
    暂无图片
    微信扫码
    复制链接
    新浪微博
    分享数说
    暂无图片
    采集到收藏夹
    分享到数说
    首页 / pt-archiver 归档表到文件

    pt-archiver 归档表到文件

    huayumicheng 2022-11-29
    372

    1、 pt-archiver 用途

    1、清理线上过期数据;
    2、导出线上数据,到线下数据作处理;
    3、清理过期数据,并把数据归档到本地归档表中,或者远端归档服务器。

    2、安装pt-archiver

    yum install perl-DBD-MySQL perl-DBI perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN perl-IO-Socket-SSL  perl-Time-HiRes  perl-TermReadKey  -y 
    rpm -ivh percona-toolkit-3.3.1-1.el7.x86_64.rpm 

    3、新建测试表,导入数据

    注意:pt-archiver操作的表必须有主键
    CREATE TABLE `t1` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `row_create_time` datetime DEFAULT CURRENT_TIMESTAMP,
      `row_lastupdate_time` datetime DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=205 DEFAULT CHARSET=utf8mb4;
    mysql> select count(*) from t1;
    +----------+
    | count(*) |
    +----------+
    |   667648 |
    +----------+
    mysql> select round((DATA_LENGTH+INDEX_LENGTH)/1024/1024,2) as size_MB from information_schema.TABLES where TABLE_SCHEMA='mydb' and table_name='t1'; +---------+ | size_MB | +---------+ | 26.56 | +---------+

    4、归档数据到文件

    --场景1-1:全表归档,不删除原表数据,归档到文件
    [root@mysql4 ~]# pt-archiver --source h=192.168.100.23,P=3306,u=test,p='123456',D=mydb,t=t1  --no-check-charset --file=/tmp/archive.save --where '1=1' --progress 10000 --limit=10000 --txn-size 10000 --statistics --no-safe-auto-increment --no-delete
    --summary
    Started at 2022-05-07T21:00:53, ended at 2022-05-07T21:01:05
    Source: D=mydb,P=3306,h=192.168.100.23,p=...,t=t1,u=test
    SELECT 667648
    INSERT 0
    DELETE 0
    Action          Count       Time        Pct
    select             68     0.4924       4.10
    commit             67     0.0082       0.07
    print_file     667648    -1.7458     -14.53
    other               0    13.2583     110.37
    [root@mysql4 ~]# ls -lh /tmp/archive.save 
    -rw-r--r-- 1 root root 30M May  7 21:01 /tmp/archive.save
    --加载文件到数据库
    mysql> load data local infile "/tmp/archive.save" into table mydb.t1;
    Query OK, 667648 rows affected (3.01 sec)
    Records: 667648  Deleted: 0  Skipped: 0  Warnings: 0
    --场景1-2:id<1001,不删除原表数据,归档到文件
    [root@mysql4 ~]# pt-archiver --source h=192.168.100.23,P=3306,u=test,p='123456',D=mydb,t=t1  --no-check-charset --file=/tmp/archive.save --where 'id<1001' --progress 10000 --limit=10000 --txn-size 10000 --statistics --no-safe-auto-increment --no-delete
    TIME                ELAPSED   COUNT
    2022-05-07T21:22:10       0       0
    2022-05-07T21:22:10       0     682
    Started at 2022-05-07T21:22:10, ended at 2022-05-07T21:22:10
    Source: D=mydb,P=3306,h=192.168.100.23,p=...,t=t1,u=test
    SELECT 682
    INSERT 0
    DELETE 0
    Action          Count       Time        Pct
    select              2     0.0014      10.80
    commit              1     0.0004       2.88
    print_file        682    -0.0002      -1.21
    other               0     0.0110      87.53

    --场景1-3:id>=1 and id<10001,不删除原表数据,归档到文件 [root@mysql4 ~]# pt-archiver --source h=192.168.100.23,P=3306,u=test,p='123456',D=mydb,t=t1 --no-check-charset --file=/tmp/archive.save --where 'id>=1 and id<10001' --progress 10000 --limit=10000 --txn-size 10000 --statistics --no-safe-auto-increment --no-delete TIME ELAPSED COUNT 2022-05-07T21:26:24 0 0 2022-05-07T21:26:24 0 7081 Started at 2022-05-07T21:26:24, ended at 2022-05-07T21:26:24 Source: D=mydb,P=3306,h=192.168.100.23,p=...,t=t1,u=test SELECT 7081 INSERT 0 DELETE 0 Action Count Time Pct select 2 0.0057 5.10 commit 1 0.0004 0.35 print_file 7081 0.0001 0.07 other 0 0.1061 94.48

    5、常用参数

    
    --常用参数
    --where 'id<3000'	设置操作条件
    --limit 10000	    每次取1000行数据给pt-archive处理
    --txn-size 1000	    设置1000行为一个事务提交一次
    --progress 5000	    每处理5000行输出一次处理信息
    --statistics	结束的时候给出统计信息:开始的时间点,结束的时间点,查询的行数,归档的行数,删除的行数,以及各个阶段消耗的总的时间和比例,便于以此进行优化。只要不加上--quiet,默认情况下pt-archive都会输出执行过程的
    --charset=UTF8	指定字符集为UTF8
    --no-delete	表示不删除原来的数据,注意:如果不指定此参数,所有处理完成后,都会清理原表中的数据
    --bulk-delete	批量删除source上的旧数据
    --bulk-insert	批量插入数据到dest主机 (看dest的general log发现它是通过在dest主机上LOAD DATA LOCAL INFILE插入数据的)
    
     
    推荐文章
    博学的枇杷  ·  SQL中的嵌套CASE语句 -
    3 周前
    唠叨的硬盘  ·  如何实现MySQL case when 套用子查询的具体操作步骤_mob649e81540090的技术博客_
    3 周前
    微笑的青蛙  ·  selenium 难定位元素,时间插件,下拉框定位,string - konglingbin
    3 周前
    帅呆的篮球  ·  子查詢 (SQL Server) - SQL Server | Microsoft Learn
    2 周前
    热心的移动电源  ·  saprk rdd默认分区 - CSDN文库
    1 年前
    帅气的葡萄  ·  Java中如何精准优化 if…else ,干掉过多烂代码! - 知乎
    2 年前
    潇洒的保温杯  ·  社会网络分析与UCINET 学习(一) - 克罗地亚中场 - 简书
    2 年前
    鼻子大的饭盒  ·  C#实现进制转换_C#教程_脚本之家
    2 年前
    文质彬彬的勺子  ·  Vue内部 v-for +click 真的加了事件代理吗? - 掘金
    2 年前
    今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
    删除内容请联系邮箱 2879853325@qq.com
    Code - 代码工具平台
    © 2024 ~ 沪ICP备11025650号