1. 程式人生 > >【MySQL】percona-toolkit工具包

【MySQL】percona-toolkit工具包

ogg tar per grant file mage 層級關系 管理 size

【說明】

  percona-toolkit工具包同percona-xtrabackup一樣都是用Perl寫的工具包,percona-toolkit工具包是一組高級的管理mysql的工具包集,可以用來執行各種通過手工執行非常復雜和麻煩的mysql和系統任務,在生產環境中能極大的提高效率,安裝也很簡單,可以在percona的官網:https://www.percona.com上下載編譯包或者是rpm包。

【安裝】

一.檢查和安裝Perl依賴包

percona工具是使用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

二.下載安裝percona toolkit包

1、下載和安裝percona toolkit的包

參照:https://www.percona.com/doc/percona-toolkit/3.0/installation.html#installing-percona-toolkit-on-red-hat-or-centos

yum install http://www.percona.com/downloads/percona-release/redhat/0.1
-4/percona-release-0.1-4.noarch.rpm

2.安裝percona-toolkit工具包

yum install percona-toolkit

安裝成功,最後有“Complete!

技術分享圖片

【功能】

分類

工具命令

工具作用

備註

開發類

pt-duplicate-key-checker

列出並刪除重復的索引和外鍵

pt-online-schema-change

在線修改表結構

InndoDB有部分語句不支持在線DDL,大表DDL操作阻塞會影響查詢、主從同步的問題。pt-online-schema-change工具,會先新建立一個要改變後的表,然後分批拷貝原表數據到新表中,不會影響原表使用。完全同步後,重命名新表,更安全的在線執行DDL。

/usr/local/bin/pt-online-schema-change --user=用戶名 --password=密碼 --host=數據庫IP --port=端口號 --charset=utf8mb4 --nodrop-old-table --alter="sql語句片段,例如add column xxfieldname‘ " D=ad_api,t=t_ad_req_log --exec

pt-query-advisor

分析查詢語句,並給出建議,有bug

已廢棄

pt-show-grants

規範化和打印權限

可導出create user和grant授權語句,遷移數據庫賬號時使用

pt-upgrade

在多個服務器上執行查詢,並比較不同

性能類

pt-index-usage

分析日誌中索引使用情況,並出報告

pt-pmp

為查詢結果跟蹤,並匯總跟蹤結果

pt-visual-explain

格式化執行計劃tree方式輸出

pt-table-usage

分析日誌中查詢並分析表使用情況

pt 2.2新增命令

配置類

pt-config-diff

比較配置文件和參數

MySQL8之前,在線set變量不支持persist,如果忘記在配置文件中同步修改,MySQL重啟後會讀取配置文件中的老變量導致出現問題。pt-config-diff工具可以比較當前在線變量和配置文件變量的差異,常用。

pt-mysql-summary

mysql配置和status進行匯總

精細地對 mysql 的配置和 sataus 信息進行匯總

pt-variable-advisor

分析參數,並提出建議

監控類

pt-deadlock-logger

提取和記錄mysql死鎖信息

常用

pt-fk-error-logger

提取和記錄外鍵信息

pt-mext

並行查看status樣本信息

pt-query-digest

分析查詢日誌,並產生報告

常用命令,慢查詢日誌分析工具

pt-trend

按照時間段讀取slow日誌信息

已廢棄

復制類

pt-heartbeat

監控mysql復制延遲

show slave status \G;查看Seconds_behind_Master參數是基於slave生成的relaylog與master時間差值,並不準確。例如執行一個大事務,主從延遲已發生,但relaylog還未生成。

pt-heartbeat工具可以規避該問題,使用的是Master後臺周期寫入,slave後臺周期讀取的方式。

pt-heartbeat --user=用戶名 --password=密碼 -h master --createtable --database 監測庫名 --update --daemonize --interval 周期秒數

pt-heartbeat --user=用戶名 --password=密碼 -h slave --database crn --monitor--daemonize --log 監控日誌路徑和名稱

pt-slave-delay

設定從落後主的時間

pt-slave-find

查找和打印所有mysql復制層級關系

pt-slave-restart

監控salve錯誤,並嘗試重啟salve

監控一個或者多個MySQL復制slave,試圖跳過引起錯誤的語句。以指數變化的睡眠時間智能檢查slave。可以指定要跳過的錯誤然後運行slave,一直到一個確定的binlog位置。一旦檢測到slave有錯誤就會打印一行。默認打印:時間戳、連接信息、relay_log_file,relay_log_pos,last_errno。

pt-table-checksum

校驗主從復制一致性

在主庫上執行校驗,然後對復制的一致性進行檢查,來對比主從之間的校驗值,並輸出對比結果。

pt-table-sync

高效同步表數據

常用

pt-table-sync --replicate=test.checksums h=MasterIP,u=Master用戶名,p=Master密碼,P=Master端口 h=SlaveIP,u=Slave用戶名,p=Slave密碼,P=Slave端口 --print

系統類

pt-diskstats

查看系統磁盤狀態

打印磁盤 io 統計信息,比 iostat 輸出更細

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新增命令

【MySQL】percona-toolkit工具包