Percona Toolkit是Percona技术人员开发和使用的高级开源命令行工具的集合,旨在执行各种MySQL和MongoDB服务器和系统任务。 --source 源数据库 --dest 归档数据库 DSN 参数(注意不能有空格,否则会报错) --where 查询条件 --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主机,要配合limit和txn-size一起才能使用 (看dest的general log发现它是通过在dest主机上LOAD DATA LOCAL INFILE插入数据的) --purge 删除source数据库的相关匹配记录 --local 不把optimize或analyze操作写入到binlog里面(防止造成主从延迟巨大) --analyze=ds 操作结束后,优化表空间(d表示dest,s表示source) --ignore 忽略重复的记录 --replace 覆盖重复的记录简介
安装
yum install perl perl-IO-Socket-SSL perl-Time-HiRes #安装依赖包
wget percona.com/get/percona-toolkit.tar.gz #下载压缩包
tar xzvf percona-toolkit-2.1.1.tar.gz #解压
cd percona-toolkit-2.1.1 #进入目录
perl Makefile.PL #生成对应文件
#开始安装
make
make test
make install
pt-archiver --version #查看版本,看看是否安装成功
pt-archiver 3.0.10
使用
参数介绍
示例
# 不同mysql实例间的归档
pt-archiver --source h=,P=,u=,p=,D=,t= --dest h=,P=,u=,p=,D=,t= --where 'id>=1' --limit=10000 --txn-size 10000 -no-delete
问题&解决方法
Can't locate Digest/MD5.pm in @INC (@INC contains:
yum -y install perl-Digest-MD5
Can't locate ExtUtils/MakeMaker.pm in @INC
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
最后一行无法归档
cd /usr/local/percona-toolkit/percona-toolkit-3.0.10/bin # 进入安装目录
vi pt-archiver
:/AND ($col # 找到这一句
$first_sql .= ” AND ($col <= ” . $q->quote_val($val) . “)”; # 将$col < 改成 $col <=