Percona-tookit學習筆記(一)
- 2019 年 10 月 4 日
- 筆記
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 [email protected]:/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 STATUSG 【現在還未連接到主庫,Seconds_Behind_Master值為NULL】 > SET GLOBAL slave_net_timeout = 360; # 如果360秒沒有接收到數據則認為網路超時,之後slave的IO執行緒會重新連接Master > START SLAVE; > SHOW SLAVE STATUSG 【注意:Seconds_Behind_Master指的是SQL執行緒和IO執行緒之間的延遲】
測試主從同步:
在主節點node1上隨便增加幾個資料庫,在node2的從節點可以看到資料庫已經自動同步過來了,並且show slave statusG可以看到變化,如下圖。

至此,我們的主從複製環境就搭建好了。
下文將一一舉例percona-toolkit裡面的工具的使用。