歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Percona Toolkit系列之實用類工具使用

Percona Toolkit系列之實用類工具使用

日期:2017/2/28 14:35:34   编辑:Linux教程

percona-toolkit使用教程之實用類工具

1. pt-archiver

功能介紹:

將mysql數據庫中表的記錄歸檔到另外一個表或者文件

用法介紹:

pt-archiver [OPTION...] --source DSN --where WHERE

這個工具只是歸檔舊的數據,不會對線上數據的OLTP查詢造成太大影響,你可以將數據插入另外一台服務器的其他表中,也可以寫入到一個文件中,方便使用load data infile命令導入數據。另外你還可以用它來執行delete操作。這個工具默認的會刪除源中的數據。使用的時候請注意。

使用示例:

范例1:將192.168.3.135上的sanmao庫的oss_log表id小於100000的記錄轉移到192.168.3.92上的sanmao庫,並歸檔到oss_log_archive_20120605.log文件中:

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

范例2:將192.168.3.135上的sanmao庫的oss_log小於160000的記錄歸檔到oss_log_archive_20120607.log文件中:

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

范例3:刪除192.168.3.135上的sanmao庫的oss_log表中id小於167050的記錄:

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

注意:如果是字符集是utf8的話,需要在my.cnf中的[client]下面添加default-character-set = utf8,否則導出的文件內容中文會亂碼。

2. pt-find

功能介紹:

查找mysql表並執行指定的命令,和gnu的find命令類似。

用法介紹:

pt-find [OPTION...] [DATABASE...]

默認動作是打印數據庫名和表名

使用示例:

范例1:查找192.168.3.135中1天以前創建的InnoDB的表 ,並打印。

pt-find --ctime +1 --host=192.168.3.135 --engine InnoDB --user=root --password=zhang@123

范例2:查找192.168.3.135中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"

范例3:查找192.168.3.135中aaa庫和zhang庫中的空表,並刪除。

pt-find --empty aaa zhang --host=192.168.3.135 --user=root --password=zhang@123 --exec-plus "DROP TABLE %s"

范例4:查找192.168.3.135中超過100M的表:

pt-find --tablesize +100M --host=192.168.3.135 --user=root --password=zhang@123

3. pt-kill

功能介紹:

Kill掉符合指定條件mysql語句

用法介紹:

pt-kill [OPTIONS]

加入沒有指定文件的話pt-kill連接到mysql並通過SHOW PROCESSLIST找到指定的語句,反之pt-kill從包含SHOW PROCESSLIST結果的文件中讀取mysql語句

使用示例:

范例1:查找192.168.3.135服務器運行時間超過60s的語句,並打印

pt-kill --busy-time 60 --print --host=192.168.3.135 --user=root --password=zhang@123

范例2:查找192.168.3.135服務器運行時間超過60s的語句,並kill

pt-kill --busy-time 60 --kill --host=192.168.3.135 --user=root --password=zhang@123

范例3:從proccesslist文件中查找執行時間超過60s的語句

mysql -uroot -pzhang@123 -h192.168.3.135 -e "show processlist" > processlist.txt

pt-kill --test-matching processlist.txt --busy-time 60 --print

Percona Toolkit 的詳細介紹:請點這裡
Percona Toolkit 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved