percona-toolkit源自Maatkit 和Aspersa工具,這兩個工具是管理mysql的最有名的工具,現在Maatkit工具已經不維護了,請大家還是使用percona-toolkit吧!這些工具主要包括開發、性能、配置、監控、複製、系統、實用六大類,作爲一個優秀的DBA,裏面有的工具非常有用,如果能掌握並加以靈活應用,將能極大的提高工作效率。
percona-toolkit安裝步驟與過程
我的環境是CentOS 6.5系統+ MySQL 5.6.24,可以按照下面的步驟安裝pt工具。
1.檢查和安裝與Perl相關的模塊
PT工具是使用Perl語言編寫和執行的,所以需要系統中有Perl環境。
依賴包檢查命令爲:
rpm -qa perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL
如果有依賴包確實,可以使用下面的命令安裝:
yum install perl-DBI
yum install perl-DBD-MySQL
yum install perl-Time-HiRes
yum install perl-IO-Socket-SSL
2.percona-toolkit工具的下載和安裝
pt工具目前最新版本爲 2.2.20 ,可以在官方下載最新版本:
wget percona.com/get/percona-toolkit.tar.gz
wget percona.com/get/percona-toolkit.rpm
percona-toolkit的rpm安裝方式
rpm -ivh perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm
wget http://pkgs.repoforge.org/perl-TermReadKey/perl-TermReadKey-2.30-1.el3.rf.x86_64.rpm rpm -ivh perl-TermReadKey-2.30-1.el3.rf.x86_64.rpm 這個網站似乎需要***。。。
rpm -ivh percona-toolkit-2.1.1-1.noarch.rpm
注意:需要安裝Term::ReadKey 包,否則會報perl(Term::ReadKey) >= 2.10 is needed by percona-toolkit-2.1.1-1.noarch錯誤
percona-toolkit的編譯安裝方式
tar xzvf percona-toolkit-2.2.20.tar.gz
cd percona-toolkit-2.2.20
perl Makefile.PL
make
make test
make install
安裝完成
測試統計慢查詢
pt-query-digest slow-query.log --since '2016-12-25 00:00:00' --until '2017-01-01 02:00:00' > /tmp/OPMPslow1225.log
共計有32個命令,可以分爲7大類
工具類別 | 工具命令 | 工具作用 | 備註 |
開發類 | pt-duplicate-key-checker | 列出並刪除重複的索引和外鍵 | |
pt-online-schema-change | 在線修改表結構 | ||
pt-query-advisor | 分析查詢語句,並給出建議,有bug | 已廢棄 | |
pt-show-grants | 規範化和打印權限 | ||
pt-upgrade | 在多個服務器上執行查詢,並比較不同 | ||
性能類 | pt-index-usage | 分析日誌中索引使用情況,並出報告 | |
pt-pmp | 爲查詢結果跟蹤,並彙總跟蹤結果 | ||
pt-visual-explain | 格式化執行計劃 | ||
pt-table-usage | 分析日誌中查詢並分析表使用情況 | pt 2.2新增命令 | |
配置類 | pt-config-diff | 比較配置文件和參數 | |
pt-mysql-summary | 對mysql配置和status進行彙總 | ||
pt-variable-advisor | 分析參數,並提出建議 | ||
監控類 | pt-deadlock-logger | 提取和記錄mysql死鎖信息 | |
pt-fk-error-logger | 提取和記錄外鍵信息 | ||
pt-mext | 並行查看status樣本信息 | ||
pt-query-digest | 分析查詢日誌,併產生報告 | 常用命令 | |
pt-trend | 按照時間段讀取slow日誌信息 | 已廢棄 | |
複製類 | pt-heartbeat | 監控mysql複製延遲 | |
pt-slave-delay | 設定從落後主的時間 | ||
pt-slave-find | 查找和打印所有mysql複製層級關係 | ||
pt-slave-restart | 監控salve錯誤,並嘗試重啓salve | ||
pt-table-checksum | 校驗主從複製一致性 | ||
pt-table-sync | 高效同步表數據 | ||
系統類 | pt-diskstats | 查看系統磁盤狀態 | |
pt-fifo-split | 模擬切割文件並輸出 | ||
pt-summary | 收集和顯示系統概況 | ||
pt-stalk | 出現問題時,收集診斷數據 | ||
pt-sift | 瀏覽由pt-stalk創建的文件 | pt 2.2新增命令 | |
pt-ioprofile | 查詢進程IO並打印一個IO活動表 | pt 2.2新增命令 | |
實用類 | pt-archiver | 將表數據歸檔到另一個表或文件中 | |
pt-find | 查找表並執行命令 | ||
pt-kill | Kill掉符合條件的sql | 常用命令 | |
pt-align | 對齊其他工具的輸出 | pt 2.2新增命令 | |
pt-fingerprint | 將查詢轉成密文 | pt 2.2新增命令 |