Percona-tookit下载地址[包含软件和用户手册]:

https://www.percona.com/software/mysql-tools/percona-toolkit

部分内容参考了前人的博客:http://bbs.chinaunix.net/thread-3751657-1-1.html



先安装perl依赖关系

yum install perl perl-devel libaiolibaio-devel perl-Time-HiRes
yum install perl-TermReadKey perl-IO-Socket-SSL perl-DBD-MySQL
rpm -ivh percona-toolkit-2.2.17-1.noarch.rpm

结果报了个错误如下(xxxxxcpio read)

wKioL1cywpajCj4cAAA1sSyooyI200.png                           

根据网上的方法,执行如下2条命令

lsattr /usr | grep bin
chattr -i /usr/bin

仍不能解决,遂放弃。改用编译安装。编译安装方法如下:

tar xf percona-toolkit_2.2.17-1.tar.gz
cd percona-toolkit-2.2.17/
perl Makefile.PL
make test
make install

一系列的工具自动安装到/usr/local/bin目录下。【如果是rpm包的,释放到目录/usr/bin下】


默认安装的是32个工具,如下:

pt-align

pt-archiver

pt-config-diff

pt-deadlock-logger

pt-diskstats

pt-duplicate-key-checker

pt-fifo-split

pt-find

pt-fingerprint

pt-fk-error-logger

pt-heartbeat

pt-index-usage

pt-ioprofile

pt-kill

pt-mext

pt-mysql-summary

pt-online-schema-change

pt-pmp

pt-query-digest

pt-show-grants

pt-sift

pt-slave-delay

pt-slave-find

pt-slave-restart

pt-stalk

pt-summary

pt-table-checksum

pt-table-sync

pt-table-usage

pt-upgrade

pt-variable-advisor

pt-visual-explain


查看命令帮助的话,可以使用 perldoc /usr/local/bin/pt-*** 或者 pt-*** --help


percona-toolkit主要使用在MySQL主从环境中,因此我们先来搭建MySQL主从复制环境。操作如下:


搭建MySQL主从测试环境

   

    系统版本:CentOS 6.7 X86_64

    MySQL版本:官方5.6通用二进制包

    主节点:192.168.2.11  node1

    从节点:192.168.2.12  node2


MySQL的安装过程略过,直接贴主从的配置过程。


node1主节点(192.168.2.11):

# mysqldump -uroot -proot --all-databases --flush-logs--master-data=2 > /root/all.sql

然后查看head -30/root/all.sql 找到类似“CHANGE MASTER” 记录下。

wKioL1cyw2GS9hbOAAAZ-kfOUVM073.png

# scp /root/all.sql root@192.168.2.12:/root


node2从节点(192.168.2.12):

清除原有的/data/mysql数据,重新初始化

# cd /data/mysql
# rm -fr *
# /usr/lcoal/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
# /etc/init.d/mysqld start
# mysql -uroot -S /tmp/mysql.sock
> source /root/all.sql
> CHANGE MASTER TO MASTER_HOST ='192.168.2.11', 
    MASTER_USER='repl',
    MASTER_PASSWORD='123456',
    MASTER_PORT=3306,
    MASTER_LOG_FILE='node1.000018',
    MASTER_LOG_POS=120,
    MASTER_CONNECT_RETRY=10,  # 当重新建立主从连接时,如果连接建立失败,间隔多久(单位为秒)后重试。
    MASTER_HEARTBEAT_PERIOD=60;   # 设置多长时间(单位为秒)探测一次主服务器是否在线 
 
# 具体可以执行> help change master to 查看帮助命令
> SHOW SLAVE STATUS\G    【现在还未连接到主库,Seconds_Behind_Master值为NULL】
> SET GLOBAL slave_net_timeout = 360;  # 如果360秒没有接收到数据则认为网络超时,之后slave的IO线程会重新连接Master
> START SLAVE;
> SHOW SLAVE STATUS\G 【注意:Seconds_Behind_Master指的是SQL线程和IO线程之间的延迟】


 


测试主从同步:

在主节点node1上随便增加几个数据库,在node2的从节点可以看到数据库已经自动同步过来了,并且show slave status\G可以看到变化,如下图。

wKioL1cyxHzRncMYAABFBUQvK1g331.png


至此,我们的主从复制环境就搭建好了。


下文将一一举例percona-toolkit里面的工具的使用。