percona-toolkit是一組高級命令行工具的集合,可以查看當前服務的摘要信息,磁盤檢測,分析慢查詢日誌,查找重複索引,實現表同步等等。percona-toolkit源自Maatkit 和Aspersa工具,但Maatkit已經不維護了,全部歸併到percona-toolkit。PT工具是使用Perl語言編寫和執行的,所以需要系統中有Perl環境。環境配置就不再介紹了,下面開始安裝配置。
安裝步驟
- 安裝之前,需要做一些前提準備。經過好多個坑之後,彙總的簡單有效的方式如下:
[root@ZhOu local]# yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-TermReadKey perl-devel perl-IO-Socket-SSL
2. 獲取安裝包,解壓
[root@ZhOu local]# wget https://www.percona.com/downloads/percona-toolkit/3.0.2/binary/tarball/percona-toolkit-3.0.2_x86_64.tar.gz
[root@ZhOu local]# tar -zxf percona-toolkit-3.0.2_x86_64.tar.gz
3. 編譯安裝
[root@ZhOu local]# cd percona-toolkit-3.0.2
[root@ZhOu percona-toolkit-3.0.2]# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for percona-toolkit
[root@ZhOu percona-toolkit-3.0.2]# make && make install
安裝後,可以通過下面的命令確認是否安裝成功:
pt-query-digest - -help
pt-table-checksum - -help
如果命令提示可以正常顯示,則說明pt工具已經正常安裝和使用了。
工具分類
pt工具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新增命令 |
後面會分別講解各個命令的操作,今天就先到這裏了。