pt-archiver工具使用笔记


注意:
1、阿里云环境使用,需要额外添加参数:  --noversion-check 。#否则出现错误 Can't use an undefined value as an ARRAY reference at /usr/bin/pt-archiver line 5472.
2、默认删除或迁移,不包含max(id)那条数据,解决办法:  http://www.ttlsa.com/mysql/pt-archiver-bug-cannot-migration-max-id-record/
全量PT工具教程: https://www.cnblogs.com/manger/p/7262009.html

pt-archiver
https://yq.aliyun.com/articles/277145/ #参数+多种使用场景,推荐。
https://www.iamle.com/archives/2439.html #常用参数说明,推荐。
https://www.cnblogs.com/itfenqing/p/6148094.html #全部参数说明。
https://yq.aliyun.com/articles/502851 /全面细致,写平台化脚本时参考

帮助命令: pt-archiver --help
功能简述:归档myal表一些行到表或文件。
限制:要有主键。
用法样例: pt-archiver [OPTIONS] --source DSN --where WHERE

    Examples:

    归档所有数据从OLTP到OLAP的一个文件:
      pt-archiver --source h=oltp_server,D=test,t=tbl --dest h=olap_server \
        --file '/var/log/archive/%Y-%m-%d-%D.%t'                           \
        --where "1=1" --limit 1000 --commit-each

    从子表删除“孤儿”数据。:
      pt-archiver --source h=host,D=db,t=child --purge \
        --where 'NOT EXISTS(SELECT * FROM parent WHERE col=child.col)'

DESCRIPTION
    目标是通过多次转发老数据的方式对OLTP影响最小。
可转移一张表数据到另一张不在同一服务器的表中或指定格式的文件中。或者仅仅做删除数据工具使用。
插件机制,可添加自己代码提高归档逻辑、规则等。
对于一些参数要小心选择,最重要的是"--limit", "--retries", and "--txn-size".

常用参数表
–ignore或–replace :两张表之间的数据不完全相同,希望合并。此时加上选项,可以轻松实现
–where ‘id<3000’ 设置操作条件
–limit 10000 每次取1000行数据给pt-archive处理
–txn-size 1000 设置1000行为一个事务提交一次
–progress 5000 每处理5000行输出一次处理信息
–statistics 结束的时候给出统计信息:开始的时间点,结束的时间点,查询的行数,归档的行数,删除

1 场景1-1:全表归档,不删除原表数据,非批量插入
pt-archiver --source h=xxxx,P=3306,u=xxx,p='xxxx',D=xxx,t=xxx  --dest h=xxxx,P=3306,u=xxx,p='xxx',D=xxx,t=xxx  --charset=UTF8 --where '1=1' --progress 10000 --limit=10000 --txn-size=10000 --statistics --no-delete  --no-version-check  


2、清空数据
pt-archiver --source h=xxxx,P=3306,u=xxxx,p='xxxxx',D=xxx,t=xxx--charset=UTF8 --where '1=1' --progress 10000 --limit=1000 --txn-size 1000 --bulk-delete --statistics --purge  --no-version-check  


 

你可能感兴趣的:(Mysql综合)