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

Percona Toolkit 實用工具箱:歸檔清理、表查找變更、殺查詢、配置對比、實例摘要、參數診斷

     編輯:MySQL 綜合教學

Percona Toolkit 實用工具箱:歸檔清理、表查找變更、殺查詢、配置對比、實例摘要、參數診斷

Percona Toolkit 還包含六大「瑞士軍刀」級工具:pt-archiver 數據歸檔刪除、pt-find 表查找與批量操作、pt-kill 惡意查詢熔斷、pt-config-diff 配置差異對比、pt-mysql-summary 實例一覽、pt-variable-advisor 參數智能診斷。本文通過實戰場景展示其高效用法。

1. pt-archiver:大表歸檔/刪除不鎖表

特性:分塊處理、可歸檔到文件/異庫、可直接 --purge 刪除、--commit-each 逐事務提交減少鎖持有時間。注意:默認刪除源數據,UTF8 環境需在 [client] 設 default-character-set=utf8 防亂碼。

# 歸檔 ID<=100000 到異庫並導出文件
pt-archiver --source h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 \
  --dest h=192.168.3.92,D=sanmao,t=oss_log \
  --file '/var/log/oss_log_archive_20120605.log' --where "id<=100000" --commit-each

# 僅導出文件
pt-archiver --source h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 \
  --file '/var/log/oss_log_archive_20120607.log' --where "id<=160000" --commit-each

# 直接刪除
pt-archiver --source h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --purge --where 'id<=167050'

2. pt-find:類 find 命令的表搜索與批量執行

# 查找 1 天前創建的 InnoDB 表
pt-find --ctime +1 --host=192.168.3.135 --engine InnoDB --user=root --password=zhang@123

# 查找 1 天前修改、庫名匹配 hostsops、引擎 MyISAM 的表,轉為 InnoDB
pt-find --mtime +1 --dblike hostsops --engine MyISAM --host=192.168.3.135 --user=root --password=zhang@123 \
  --exec "ALTER TABLE %D.%N ENGINE=InnoDB"

# 查找 aaa/zhang 庫空表並刪除
pt-find --empty aaa zhang --host=192.168.3.135 --user=root --password=zhang@123 --exec-plus "DROP TABLE %s"

# 查找超過 100MB 的表
pt-find --tablesize +100M --host=192.168.3.135 --user=root --password=zhang@123

3. pt-kill:長時間/惡意查詢熔斷

# 打印運行超過 60 秒的查詢
pt-kill --busy-time 60 --print --host=192.168.3.135 --user=root --password=zhang@123
# 直接 Kill
pt-kill --busy-time 60 --kill --host=192.168.3.135 --user=root --password=zhang@123
# 從文件讀取 processlist 分析
mysql -uroot -pzhang@123 -h192.168.3.135 -e "show processlist" > processlist.txt
pt-kill --test-matching processlist.txt --busy-time 60 --print

4. pt-config-diff:配置文件/實例參數差異對比

# 本地 vs 遠程實例
pt-config-diff h=localhost h=192.168.3.92 --user=root --password=zhang@123
# 本地文件 vs 遠程實例
pt-config-diff /etc/my.cnf h=192.168.3.92 --user=root --password=zhang@123
# 兩個本地模板文件
pt-config-diff /usr/local/mysql/share/mysql/my-large.cnf /usr/local/mysql/share/mysql/my-medium.cnf

5. pt-mysql-summary:實例配置與狀態一鍵摘要

pt-mysql-summary -- --user=root --password=zhang@123 --host=localhost
pt-mysql-summary -- --user=root --password=zhang@123 --host=192.168.3.92

6. pt-variable-advisor:參數配置智能診斷

# 從實例讀取變量分析
pt-variable-advisor --user=root --password=zhang@123 localhost
# 從配置文件讀取(需符合格式)
pt-variable-advisor --user=root --password=zhang@123 --source-of-variables my.cnf
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved