pt-archiver数据归档

可使用percona-toolkit包中的pt-archiver工具来进行历史数据归档html

pt-archiver使用的场景:

一、清理线上过时数据。数据库

二、清理过时数据,并把数据归档到本地归档表中,或者远端归档服务器。服务器

三、两张表之间的数据不彻底相同,但愿合并。此时加上–ignore或–replace选项,能够轻松实现。工具

四、导出线上数据,到线下数据做处理。性能

例子:

pt-archiver --source h=127.0.0.1,P=3306,D=database,t=table,u=root,p=123456 --dest h=127.0.0.1,P=3306,D=database,t=new_table,u=root,p=123456 --no-check-charset --where 'id>100' --progress 1000 --no-delete --limit=1000 --statistics测试

参数说明:

--statistics:结束的时候给出统计信息:开始的时间点,结束的时间点,查询的行数,归档的行数,删除的行数,以及各个阶段消耗的总的时间和比例,便于以此进行优化。
--where:给出表中要处理的数据的查询条件。
--progress:每处理progress指定的行数后,就打印一次信息。
--no-delete:表示不删除原来的数据,注意:若是不指定此参数,全部处理完成后,都会清理原表中的数据。
--limit:表示每次事务删除多少条数据,默认1条(注意:若是数据比较多时,也能够设置大一些,减小循环次数)。
--txn-size:每一个事务提交的数据行数(包括读写操做),批量提交,增长该值能够提高归档性能。
--file:数据存放的文件,最好指定绝对路径,文件名能够灵活地组合(另外,我测试过写文件与不写文件速度几乎差很少,本来觉得不写文件速度会快)。
--charset=UTF8 指定字符集为UTF8
--no-check-charset 不指定字符集
--bulk-delete 批量删除source上的旧数据(例如每次1000行的批量删除操做)
--bulk-insert 批量插入数据到dest主机 (看dest的general log发现它是经过在dest主机上LOAD DATA LOCAL INFILE插入数据的)
--replace 将insert into 语句改为replace写入到dest库
--sleep120 每次归档了limit个行记录后的休眠120秒(单位为秒)
--local 不把optimize或analyze操做写入到binlog里面(防止形成主从延迟巨大)
--retries 超时或者出现死锁的话,pt-archiver进行重试的间隔(默认1s)
--no-version-check 目前为止,发现部分pt工具对阿里云RDS操做必须加这个参数
--analyze=ds 操做结束后,优化表空间(d表示dest,s表示source)
--purge 删除source数据库的相关匹配记录,不归档删除数据优化

参考:http://www.ywnds.com/?p=8379http://www.mamicode.com/info-detail-1903758.html阿里云

相关文章
相关标签/搜索