使用percona-toolkit操作MySQL的實用命令小結

joytoy發表於2021-09-09

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檔案中:

?

1 pt-archiver --source h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --dest

?

1 h=192.168.3.92,D=sanmao,t=oss_log --file '/var/log/oss_log_archive_20120605.log' --where "id --commit-each

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

?

1 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 --commit-each

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

?

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

注意:如果是字符集是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的表 ,並列印。

?

1 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引擎。

?

1 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庫中的空表,並刪除。

?

1 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的表:

?

1 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的語句,並列印

?

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

範例2:查詢192.168.3.135伺服器執行時間超過60s的語句,並kill

?

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

範例3:從proccesslist檔案中查詢執行時間超過60s的語句

?

12 mysql -uroot -pzhang@123 -h192.168.3.135 -e "show processlist" > processlist.txtpt-kill --test-matching processlist.txt --busy-time 60 --print

4.pt-config-diff
功能介紹:
比較mysql配置檔案和伺服器引數
用法介紹:
pt-config-diff [OPTION...] CONFIG CONFIG [CONFIG...]
CONFIG可以是檔案也可以是資料來源名稱,最少必須指定兩個配置檔案源,就像unix下面的diff命令一樣,如果配置完全一樣就不會輸出任何東西。
使用示例:
範例1:檢視本地和遠端伺服器的配置檔案差異:

?

1 pt-config-diff h=localhost h=192.168.3.92 --user=root --password=zhang@123

比較出來內容如下:

?


22 config differencesVariable         localhost.localdomain localhost.localdomain========================= ===================== =====================binlog_cache_size     8388608        2097152have_ndbcluster      DISABLED       NOinnodb_additional_mem_... 16777216       33554432innodb_buffer_pool_size  1677721600      1073741824

 
範例2:比較本地配置檔案和遠端伺服器的差異:

?

1 pt-config-diff /etc/my.cnf h=192.168.3.92 --user=root --password=zhang@123

 
比較出來內容如下:

?

12345 12 config differencesVariable         /etc/my.cnf localhost.localdomain========================= =========== =====================binlog_cache_size     8388608   2097152binlog_format       mixed    MIXED

 
範例3:比較本地兩個配置檔案的差異:

?

1 pt-config-diff /usr/local/mysql/share/mysql/my-large.cnf /usr/local/mysql/share/mysql/my-medium.cnf


5.pt-mysql-summary
功能介紹:
精細地對mysql的配置和sataus資訊進行彙總,彙總後你直接看一眼就能看明白。
用法介紹:
pt-mysql-summary [OPTIONS] [-- MYSQL OPTIONS]
工作原理:連線mysql後查詢出status和配置資訊儲存到臨時目錄中,然後用awk和其他的指令碼工具進行格式化。OPTIONS可以查閱官網的相關頁面。
使用示例:
範例1:彙總本地mysql伺服器的status和配置資訊:

?

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

範例2:彙總本地mysql伺服器192.168.3.92的status和配置資訊:

?

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

6.pt-variable-advisor
功能介紹:
分析mysql的引數變數,並對可能存在的問題提出建議
用法介紹:
pt-variable-advisor [OPTION...] [DSN]
原理:根據預先定義的規則檢查show variables中的配置錯誤的設定和值。
使用示例:
範例1:從localhost獲取變數值

?

1 pt-variable-advisor --user=root --password=zhang@123 localhost

範例2:從指定的檔案中讀取配置,這個有格式要求

?

1 pt-variable-advisor --user=root --password=zhang@123 --source-of-variables my.cnf


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4650/viewspace-2805367/,如需轉載,請註明出處,否則將追究法律責任。

相關文章