zoukankan      html  css  js  c++  java
  • mysql 案例 ~ pt-archiver 归档工具的使用

    一 简介:今天咱们来聊聊pt-archiver的使用
    二 相关参数 
       相关参数1
       --statistics 统计信息。
       --progress 每处理progress指定的行数后,就打印一次信息
       --no-delete :表示不删除原来的数据,注意:如果不指定此参数,所有处理完成后,都会清理原表中的数据。
       --limit 每组一次删除多少条数据
       --where 过滤的条件
       --why-quit 打印退出的原因
       --bulk-insert/delete 并发插入删除,能大幅度提高速度
       --no-check-charset 不检测utf8mb4,因为pt工具不支持,建议加入
       --txn-size 每组事务的大小(行数)
       --source 源机器目标
       --purge/--dest/--file 与source选项搭配,分别为删除 归档 和导入文件
       --dry-run 只试运行,并不真正执行,会生成相关执行语句   
       –-run-time=time(单位是s)  运行多长时间后退出.可以指定如下后缀,如果没有后缀,默认是秒 主要为了限制某些时长的限制
    三 表数据归档
    1 手动创建备份表
    2 信息统计
    before=`mysql -h${Fromhost} -P${Port} -u${user} -p${pass} ${FromDB} -Ne "select count(*) from ${FromTable} where ${condition}"`
    echo "${before} 行数据需要处理" >> ${logfile}
    3 归档并删除源数据
    condition=‘id<10000'->类似这样不要加分号
     pt-archiver --source h=${Fromhost},D=${FromDB},P=${Port},t=${FromTable} --user=${user} --password=${pass}
    --dest h=${Desthost},P=${Port},D=${ToDB},t=${ToTable} --where "${condition}"
    -A utf8 --limit 10000 --txn-size 10000 --no-version-check --no-check-charset --statistics --progress=100000 --run-time 16h --nosafe-auto-increment --bulk-insert >>${logfile}
    4 信息统计
      after=`mysql -h${Tohost} -P${Port} -u${user} -p${pass} ${ToDB} -Ne "select count(*) from ${ToTable} where ${condition}"`
    echo "${after} 行数据已处理" >> ${logfile}
     四 限制条件: 无主键,有触发器 外键均不能处理
    五 处理过程
    1 根据设置的limit来生成每次的select条数
    1 如果是主键,则直接生成sql语句
    2 如果是非主键,则先生成主键,然后再生成force index(primary) sql语句
    2 根据 txn-size来控制并发insert的条数进行insert备份表
    3 根据插入数据的主键生成delete语句-根据主键删除,在原表进行删除操作
    4 以此类推
    六获取进度
    可以通过select 备份表进行查询数据量,条件就是归档的条件
      七 补充
    原表不会进行整理,需要DBA手动介入进行空间回收   

  • 相关阅读:
    mysqldump详解
    mysql忽略表中的某个字段不查询
    mysqldumpslow基本使用
    xtrabakcup基本用法 安装、全量备份恢复、增量备份恢复
    Ubuntu--磁盘统计
    Ubuntu--硬盘的挂载与卸载
    Ubuntu--文件属性权限管理(command: chmod, chown)
    Ubuntu--useradd指令使用
    Ubuntu--安装sshd开启远程登陆服务
    Ubuntu--虚拟机中Ubuntu系统时间与windows不同步
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/9183627.html
Copyright © 2011-2022 走看看