【MySQL】percona-toolkit工具包

【說明】

  percona-toolkit工具包是一組高級的管理mysql的工具包集,能夠用來執行各類經過手工執行很是複雜和麻煩的mysql和系統任務,下載和安裝都很簡單https://www.percona.com。生產環境中使用過其中若干工具,極大的提升效率且解決了遇到的問題,特此整理一下備忘,同時推薦使用。html

 

【安裝】

一.檢查和安裝Perl依賴包mysql

    percona工具是使用Perl語言編寫和執行的,因此須要系統中要有Perl依賴包。依賴包檢查命令爲:ios

rpm -qa perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL

 若是機器上沒有依賴包,安裝sql

yum install perl-DBI
yum install perl-DBD-MySQL
yum install perl-Time-HiRes
yum install perl-IO-Socket-SSL

二.下載安裝percona toolkit包數據庫

一、下載和安裝percona toolkit的包centos

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

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操做阻塞會影響查詢、主從同步等問題。

該工具,會先新創建一個要改變後的表,而後分批拷貝原表數據到新表中,不會影響原表使用。徹底同步後,重命名新表,更安全的在線執行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死鎖信息

 經常使用。死鎖信息記錄,使用方法:

1.set global innodb_print_all_deadlocks=on;

2.pt-deadlock-logger u=dba,p=密碼,h=數據庫ip --create-dest-table --dest u=dba,p=密碼,h=數據庫ip,D=crn,t=deadlock

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

相關文章
相關標籤/搜索