部署mysql工具是一個很是重要的部分,因此工具的可靠性和很好的設計很是重要。percona toolkit是一個有30多個mysql工具的工具箱。兼容mysql,percona server,mariadb;它能夠幫助DBA自動化的管理數據庫和系統任務。由於他有不少工具,因此從哪裏開始是一個難題,由於這個緣由,因此咱們下面介紹一些可能會經常使用到的percona toolkit工具集。mysql
安裝percona-toolkitsql
1)軟件下載:https://www.percona.com/downloads/percona-toolkitshell
2)安裝該工具依賴的軟件包數據庫
1
|
$ yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl-TermReadKey perl-IO-Socket-SSL -y
|
3)軟件安裝安全
1
|
$ yum localinstall https://www.percona.com/downloads/percona-toolkit/2.2.20/RPM/percona-toolkit-2.2.20-1.noarch.rpm
|
3)工具集列表服務器
1
2
3
4
5
6
7
|
pt-align pt-find pt-mext pt-slave-delay pt-table-usage
pt-archiver pt-fingerprint pt-mysql-summary pt-slave-find pt-upgrade
pt-config-diff pt-fk-error-logger pt-online-schema-change pt-slave-restart pt-variable-advisor
pt-deadlock-logger pt-heartbeat pt-pmp pt-stalk pt-visual-explain
pt-diskstats pt-index-usage pt-query-digest pt-summary ptx
pt-duplicate-key-checker pt-ioprofile pt-show-grants pt-table-checksum
pt-fifo-split pt-kill pt-sift pt-table-sync
|
pt-archivetcp
數據庫歸檔工具,查詢源數據,導出數據到文件\表\不作操做,而後刪除源數據。當心使用,這個工具在歸檔數據之後默認會把源數據刪除,因此須要手工加上-no-delete,我少有歸檔需求,並且偶爾用不熟練的話,風險也較大。工具
pt-duplicate-key-checker性能
用來檢查mysql表是否有重複的索引和外鍵。這個工具審查show create table的結果,若是發現不一樣索引包含相同的列,或者一個覆蓋索引最左邊的類和其餘索引同樣,它會打印出可疑的索引,默認只會針對同一種類型的索引作比較。它也能夠用來查找重複的外鍵,一個重複的外鍵必須是在同一個表中和其餘外鍵包含相同的列,並且參考的父表也相同。優化
pt-mysql-summary
返回MySQL的狀態和配置統計信息。
pt-config-diff
比較MySQL配置文件的不一樣之處。
pt-online-schema-change
在線變動數據庫表結構,工具的工做原理是先建立一張和源表相同的空表,而後修改它的表結構。而後從源表拷貝數據過來,當全部數據拷貝過來之後,刪除源表,將新表更名爲源表。在變動過程當中,任何對源表的改變都會經過觸發器,應用到新表,因此源表默認不能有觸發器。
pt-query-digest
是用於分析mysql慢查詢的一個工具,它能夠分析binlog、General log、slowlog,也能夠經過SHOWPROCESSLIST或者經過tcpdump抓取的MySQL協議數據來進行分析。能夠把分析結果輸出到文件中,分析過程是先對查詢語句的條件進行參數化,而後對參數化之後的查詢進行分組統計,統計出各查詢的執行時間、次數、佔比等,能夠藉助分析結果找出問題進行優化。
pt-stalk
用來收集mysql的信息,一般數據庫若是有一些突發的性能問題,這種問題又不是隨時出現的話,就能夠用到pt-stalk了,他能夠監控數據庫,而後設定一個閥值,超過閥值,就記錄數據庫和系統相關的數據,以便分析。
pt-summary
查看系統的相關統計信息。
pt-diskstats
查看系統磁盤IO相關信息。
pt-table-checksum
經過在master執行checkum檢查複製的一致性,若是slave產生不一致的結果,那麼證實slave和master數據不一致。使用DSN參數指定master的鏈接方式,若是任何不一致的數據被發現的話,EXIT STATUS狀態都是非0的,或者產生了一些warnings或者錯誤。
這個工具專一於查找出不一樣的數據,若是你須要解決數據不一樣步的問題,可使用pt-table-sync。
pt-table-sync
同步mysql服務器之間的數據。這個工具會改變數據,爲了最大程度的安全,你須要在使用以前備份你的數據,若是同步一個複製的slave服務器使用–replicate或者–sync-to=master方法,一般是經過改變master,而不是直接改變slave,這是一般最安全的方法來完成主從的一致性。改變slave是解決問題的根源,可是經過改變master的數據,不會對master產生影響,實際上只會影響slave。
pt-show-grants
列出MySQL全部用戶及權限。
pt-slave-delay
檢查從庫複製延遲。