PerconaToolKit安裝與命令簡(jiǎn)介

image

簡(jiǎn)書(shū)不維護(hù)了,歡迎關(guān)注我的知乎:波羅學(xué)的個(gè)人主頁(yè)

PerconaToolkits是基于MySQL常見(jiàn)使用場(chǎng)景并由percona開(kāi)發(fā)出來(lái)的一套數(shù)據(jù)庫(kù)管理優(yōu)化的命令行工具集。本篇文章會(huì)在介紹該工具的安裝過(guò)程,并在此基礎(chǔ)上簡(jiǎn)要說(shuō)明各個(gè)命令的主要用途。

實(shí)驗(yàn)的環(huán)境:CentOS 7.1 + Percona Server 5.6.34

簡(jiǎn)要介紹

PerconaToolKit是Percona為MySQL分支版本Percona開(kāi)發(fā)的一套工具集,將過(guò)去那些常用繁重的手工執(zhí)行的操作總結(jié)起來(lái)組織開(kāi)發(fā)的一套工具。這些工具很多功能都同時(shí)適用于MySQL(官方)和MySQL(Percona版)的。

列舉一些我們平時(shí)比較關(guān)心的功能:

分析索引使用情況;檢查分析重復(fù)索引;獲取用來(lái)分析事故現(xiàn)場(chǎng)的信息;統(tǒng)計(jì)分析查詢性能問(wèn)題;匯總服務(wù)配置狀態(tài)等信息;實(shí)現(xiàn)不加鎖修改表結(jié)構(gòu);檢查master和slave的數(shù)據(jù)一致性 等等。

這些在工具集都有涉及,整套工具共有32個(gè)命令,涉及到了MySQL操作的方方面面。

如何安裝

關(guān)于PerconaToolKit安裝,Percona官網(wǎng)中針對(duì)不同系統(tǒng)都提供了針對(duì)性的方案。這里主要介紹centos7的兩種安裝方法:RPM和通用包。

RPM方式

此種方式優(yōu)點(diǎn)在于yum可以幫助我們自動(dòng)處理依賴關(guān)系。

$ wget percona.com/get/percona/percona-toolkit.rpm
$ yum install percona-toolkit

通用包方式

比較簡(jiǎn)單,只需將別人已打包好的可執(zhí)行文件解壓到相應(yīng)目錄即可使用。不同于RPM,這里的依賴包需自己手動(dòng)解決。

本人遇到的系統(tǒng)依賴包有如下這些,可直接使用yum安裝:

$ yum install -y perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-TermReadKey perl-Digest-MD5

下載并解壓安裝,三步三條命令,如下:

$ wget percona.com/get/percona-toolkit.tar.gz
$ tar zxvf percona.tar.gz -C /usr/local/percona-toolkit
$ ln -s percona-toolkit-2.2.20/ percona-toolkit

配置環(huán)境變量并執(zhí)行source命令使環(huán)境變量生效:

$ vim /etc/profile.d/percona-toolkit.sh
PATH=/usr/local/percona-toolkit/bin:$PATH
export PATH
$ source /etc/profile.d/percona-toolkit.sh

PerconToolkit到此安裝結(jié)束,不是太復(fù)雜。

命令介紹

PerconaToolkit提供了相當(dāng)多的命令,每個(gè)命令都有其特定使用場(chǎng)景。我們可以進(jìn)入到/usr/local/percona-toolkit/bin目錄下查看。這里先對(duì)每個(gè)命令做簡(jiǎn)單的介紹。

pt-index-usage 檢查數(shù)據(jù)庫(kù)索引使用情況;
pt-slave-find 查找打印mysql主從服務(wù)器關(guān)系樹(shù);
pt-archiver 可用于清理與歸檔數(shù)據(jù);
pt-ioprofile 查看進(jìn)程IO,打印表文件及其IO活動(dòng);
pt-slave-restart 監(jiān)控一個(gè)或多個(gè)從服務(wù)器,停止則自動(dòng)重啟;
pt-config-diff 快速比較MySQL配置,支持文件與服務(wù)器比較方式;
pt-kill 可以根據(jù)一定規(guī)則kill連接,如查詢超過(guò)10秒的連接;
pt-stalk 出現(xiàn)問(wèn)題時(shí)自動(dòng)觸發(fā)數(shù)據(jù)收集,規(guī)則自定義,如連接數(shù)大于某值觸發(fā);
pt-sift 用于瀏覽pt-stalk收集問(wèn)題診斷數(shù)據(jù)
pt-deadlock-logger 導(dǎo)出記錄死鎖信息,當(dāng)期只有Innodb死鎖信息可用
pt-mext 多次采集變量數(shù)據(jù),在同一行進(jìn)行展示,便于數(shù)據(jù)比較
pt-summary 收集系統(tǒng)摘要信息,如CPU、內(nèi)存、硬盤(pán)和網(wǎng)卡等等各種系統(tǒng)信息
pt-diskstats 一個(gè)交互式的I/O監(jiān)控工具
pt-mysql-summary 匯總MySQL各種信息,如版本、命令統(tǒng)計(jì)、用戶、變量等信息;
pt-table-checksum 可用于驗(yàn)證數(shù)據(jù)庫(kù)主從數(shù)據(jù)的完整性一致性;
pt-duplicate-key-checker 可用于檢查表中的重復(fù)索引,提供索引使用效率;
pt-online-schema-change 可用于無(wú)鎖定修改表結(jié)構(gòu),減少對(duì)生產(chǎn)環(huán)境業(yè)務(wù)的影響;
pt-table-sync 實(shí)現(xiàn)快速高效同步表數(shù)據(jù),可用來(lái)修復(fù)pt-table-checksum的錯(cuò)誤表;
pt-fifo-split 模擬分隔文件,多次傳遞給FIFO,非正真切割。對(duì)大文件導(dǎo)入非常有用;
pt-pmp 選中程序獲取GDB堆棧信息,并進(jìn)行匯總
pt-table-usage 分析查詢?nèi)绾问褂靡约吧婕澳男┍?,如一次查詢更新,查詢以及關(guān)聯(lián)等;
pt-find 根據(jù)指定條件查詢MySQL相關(guān)表和操作,如查找所有創(chuàng)建超過(guò)一天的表或者查找所有更改InnoDb表結(jié)構(gòu)的操作等,與linux的find很相似;
pt-query-digest 查詢性能分析利器,可通過(guò)慢查詢?nèi)罩荆琾rocesslist信息和tcpdump抓包數(shù)據(jù)匯總查詢數(shù)據(jù),幫助我們分析;
pt-fingerprint 獲取sql語(yǔ)句指紋,例如select name from user where id = 1指紋就是 select name from user where id = ?上面的pt-query-digest也是按類此方式進(jìn)行分組匯總的;
pt-upgrade 可用于驗(yàn)證不同服務(wù)器上的查詢結(jié)果或者日志是否相同;
pt-show-grants 規(guī)范化和打印mysql權(quán)限信息,讓復(fù)制、比較mysql權(quán)限,而且還可以進(jìn)行版本控制;
pt-variable-advisor 分析MySQL的變量,并就其可能出現(xiàn)的問(wèn)題給出建議;
pt-fk-error-logger 可用于獲取和記錄MySQL外鍵的錯(cuò)誤信息;
pt-visual-explain 格式化輸出explain分析結(jié)果,以樹(shù)狀形式展示;
pt-heartbeat 可用于檢測(cè)主從延遲時(shí)間;
pt-slave-delay 可實(shí)現(xiàn)從庫(kù)延遲復(fù)制,防止某些錯(cuò)誤操作主庫(kù)執(zhí)行,從庫(kù)也立即執(zhí)行;
pt-align 可用來(lái)對(duì)齊美化其他工具的輸出,編者感覺(jué)用處不大;

32個(gè)命令介紹結(jié)束,想了解更多內(nèi)容,可以查閱官方手冊(cè)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容