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裡面的工具的使用。