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):
根据网上的方法,执行如下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” 记录下。
# 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可以看到变化,如下图。
至此,我们的主从复制环境就搭建好了。
下文将一一举例percona-toolkit里面的工具的使用。