首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Percona Toolkit (原 mysqltoolkit) 核心工具實戰備忘錄

     編輯:MySQL 綜合教學

Percona Toolkit 是 MySQL 運維神器集,含 30+ 命令列工具。本文記錄安裝、核心工具用法與實戰輸出範例。

安裝


# CentOS/RHEL
yum install -y perl-DBD-MySQL perl-IO-Socket-SSL
rpm -ivh percona-toolkit-2.2.x.noarch.rpm

# Ubuntu/Debian
apt-get install -y libdbd-mysql-perl libio-socket-ssl-perl
dpkg -i percona-toolkit_2.2.x_all.deb

核心工具速查表

工具用途典型指令
pt-query-digest慢查詢/一般查詢/二進制日誌/TCPdump 深度分析pt-query-digest slow.log --limit 20
pt-online-schema-change線上無鎖變更表結構 (影子表+觸發器)pt-online-schema-change --alter "ADD INDEX idx_c(c)" D=db,t=tbl --execute
pt-table-checksum主從資料一致性校驗 (基於 checksum)pt-table-checksum h=master --replicate=percona.checksums
pt-table-sync主從資料同步 (修復不一致)pt-table-sync --execute h=master h=slave --databases db
pt-archiver歸檔/刪除大量歷史資料 (分塊、不鎖表)pt-archiver --source h=master,D=db,t=tbl --purge --where "created<'2022-01-01'" --limit 1000
pt-kill殺掉符合條件的長查詢/閒置連線pt-kill --busy-time 60 --kill --print
pt-variable-advisor參數配置診斷建議pt-variable-advisor h=localhost -p'pwd'
pt-summary系統/硬體/OS/MySQL 總覽報表pt-summary
pt-mysql-summaryMySQL 實例配置/Schema/索引/大小統計pt-mysql-summary --user=root -p'pwd'
pt-deadlock-logger長期記錄死鎖到表pt-deadlock-logger --dest h=localhost,D=mon,t=deadlocks --user=mon -p'pwd'
pt-heartbeat高精度主從延遲監控 (秒級)pt-heartbeat --update h=master --daemonize --create-table
pt-index-usage分析查詢索引使用 (需完整 slow_log)pt-index-usage slow.log --user=root -p'pwd'
pt-visual-explainEXPLAIN 輸出樹狀圖pt-visual-explain < query.sql

實戰輸出範例:pt-query-digest


# Rank Query ID           Response time  Calls R/Call  V/M   Item
# ==== ================== ============== ===== ======= ===== ====
#    1 0xABC123...        45.2%  12.3s   1500  0.008s  0.12  SELECT * FROM orders WHERE user_id=?
#    2 0xDEF456...        23.1%  6.3s    300   0.021s  0.45  UPDATE inventory SET qty=qty-1 WHERE sku=?
...
# Profile:
# Query 1: SELECT * FROM orders WHERE user_id=?
#   Exec time: 12.3s total, 8.2ms avg, 1500 calls
#   Lock time: 0.4s
#   Rows examined: 4.5M (avg 3000)
#   Rows sent: 1500
#   Full scan: YES -> 需加索引 user_id

避坑指南

  • 線上嚴禁直接跑 pt-index-usage (全量 slow_log 解析極耗 CPU),改用備份日誌離線分析
  • pt-online-schema-change 需目標表有 **主鍵或唯一索引**,否則報錯 Cannot find an ascendable index
  • pt-table-sync 目標庫必須預先建立相同 Schema,否則無法同步
  • 工具需 Perl 環境,缺模組用 cpanm Module::Name 或 yum/apt 安裝對應 perl-* 套件

Percona Toolkit 是 DBA 必備瑞士刀,**熟練 pt-query-digest + pt-online-schema-change + pt-table-checksum** 即可應對 90% 運維場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved