percona-toolkit的安裝及簡介
MySQL數據庫是輕量級、開源數據庫的佼佼者,其功能和管理,健壯性與Oracle相比還是有相當的差距。因此有很多功能強大第三方的衍生產品,如 percona-toolkit,XtraBackup等等。percona-toolkit是一組高級命令行工具的集合,可以查看當前服務的摘要信息, 磁盤檢測,分析慢查詢日志,查找重復索引,實現表同步等等。這個工具套件對DBA及運維人員著實不可多得。本文簡要描述這個工具的安裝及其工具的大致介 紹。
1、percona-toolkit的主要功能
Verify MySQL replication integrity by checking master and replica data consistency
Efficiently archive rows
Find duplicate indexes
Summarize MySQL servers
Analyze queries from logs and tcpdump
Collect vital system information when problems occur
2、安裝需求及步驟
下載鏈接:http://www.percona.com/software/percona-toolkit
需求
* Perl v5.8 or newer
* Bash v3 or newer
* Core Perl modules like Time::HiRes
# perl --version |head -2 #檢查perl版本
# bash --version #檢查bash版本
快速安裝步驟(缺省/usr/local/bin路徑下,過程略)
# tar zxvf percona-toolkit-<version>.tar.gz
# cd percona-toolkit-<version>
# perl Makefile.PL (安裝到非缺省目錄 perl Makefile.PL PREFIX=${HOME})
# make
# make test
# make install
3、主要工具介紹
如果是非源碼安裝或源碼安裝是未指定路徑,缺省情況下所有的pt相關的工具位于/usr/bin目錄下,以pt-開頭。
獲取有關命令行的幫助信息,直接在shell提示符下輸入命令行與--hlep即可。如: /usr/bin/pt-upgrade --help
# ls -hltr /usr/bin/pt-*
pt-upgrade
#該命令主要用于對比不同mysql版本下SQL執行的差異,通常用于升級前進行對比。
#會生成SQL文件或單獨的SQL語句在每個服務器上執行的結果、錯誤和警告信息等。
pt-online-schema-change
#功能為支持在線變更表構,且不鎖定原表,不阻塞原表的DML操作。
#該特性與Oracle的dbms_redefinition在線重定義表原理基本類似。
pt-mysql-summary
#對連接的mysql服務器生成一份詳細的配置情況以及sataus信息
#在尾部也提供當前實例的的配置文件的信息
pt-mext
#并行查看SHOW GLOBAL STATUS的多個樣本的信息。
#pt-mext會執行你指定的COMMAND,并每次讀取一行結果,把空行分割的內容保存到一個一個的臨時文件中,最后結合這些臨時文件并行查看結果。
pt-kill
#Kill掉符合指定條件mysql語句
pt-ioprofile
#pt-ioprofile的原理是對某個pid附加一個strace進程進行IO分析
pt-fingerprint
#用于生成查詢指紋。主要將將sql查詢生成queryID,pt-query-digest中的ID即是通過此工具來完成的。
#類似于Oracle中的SQL_ID,涉及綁定變量,字面量等
pt-find
#用與查找mysql表并執行指定的命令,類似于find命令
pt-fifo-split
#模擬切割文件并通過管道傳遞給先入先出隊列而不用真正的切割文件
pt-deadlock-logger
#用于監控mysql服務器上死鎖并輸出到日志文件,日志包含發生死鎖的時間、死鎖線程id、死鎖的事務id、發生死鎖時事務執行時間等詳細信息。
pt-archiver
#將mysql數據庫中表的記錄歸檔到另外一個表或者文件
#該工具具只是歸檔舊的數據,對線上數據的OLTP查詢幾乎沒有影響。
#可以將數據插入另外一臺服務器的其他表中,也可以寫入到一個文件中,方便使用load data infile命令導入數據。
pt-agent
#基于Percona Cloud的一個客戶端代理工具
pt-visual-explain
#用于格式化explain的輸出
pt-variable-advisor
#用于分析mysql系統變量可能存在的一些問題,可以據此評估有關參數的設置正確與否。
pt-stalk
#用于收集mysql數據庫故障時的相關信息便于后續診斷處理。
pt-slave-delay
#用于設定從服務器落后于主服務器的時間間隔。
#該命令行通過啟動和停止復制sql線程來設置從落后于主指定時間。
pt-sift
#用于瀏覽pt-stalk生成的文件。
pt-show-grants
#將當前實例的用戶權限全部輸出,可以用于遷移數據庫過程中重建用戶。
pt-query-digest
#用于分析mysql服務器的慢查詢日志,并格式化輸出以便于查看和分析。
pt-pmp
#為查詢程序執行聚合的GDB堆棧跟蹤,先進性堆棧跟蹤,然后將跟蹤信息匯總。
pt-index-usage
#從log文件中讀取查詢語句,并用分析當前索引如何被使用。
#完成分析之后會生成一份關于索引沒有被查詢使用過的報告,可以用于分析報告考慮剔除無用的索引。
pt-heartbeat
#用于監控mysql復制架構的延遲。
#主要是通過在主庫上的--update線程持續更新指定表上的一個時間戳,從庫上--monitor線程或者--check線程檢查主庫更新的時間戳并與當前系統時間對比,得到延遲值。
pt-fk-error-logger
#將外鍵相關的錯誤信息記錄到日志或表。
pt-duplicate-key-checker
#功能為從mysql表中找出重復的索引和外鍵,這個工具會將重復的索引和外鍵都列出來
#同時也可以生成相應的drop index的語句
pt-diskstats
#類似于iostat,打印磁盤io統計信息,但是這個工具是交互式并且比iostat更詳細。可以分析從遠程機器收集的數據。
pt-config-diff
#用于比較mysql配置文件和服務器變量
#至少2個配置源需要指定,可以用于遷移或升級前后配置文件進行對比
pt-align
#格式化輸出
pt-slave-find
#連接mysql主服務器并查找其所有的從,然后打印出所有從服務器的層級關系。
pt-table-checksum
#用于校驗mysql復制的一致性。
#該工具主要是高效的查找數據差異,如果存在差異性,可以通過pt-table-sync來解決。
來自:http://blog.csdn.net/leshami?viewmode=contents