程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 使用percona-toolkit操作MySQL的實用命令小結,perconatoolkit

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

編輯:MySQL綜合教程

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


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 

4.pt-config-diff
功能介紹:
比較mysql配置文件和服務器參數
用法介紹:
pt-config-diff [OPTION...] CONFIG CONFIG [CONFIG...]
CONFIG可以是文件也可以是數據源名稱,最少必須指定兩個配置文件源,就像unix下面的diff命令一樣,如果配置完全一樣就不會輸出任何東西。
使用示例:
范例1:查看本地和遠程服務器的配置文件差異:

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

比較出來內容如下:

22 config differences
Variable         localhost.localdomain localhost.localdomain
========================= ===================== =====================
binlog_cache_size     8388608        2097152
have_ndbcluster      DISABLED       NO
innodb_additional_mem_... 16777216       33554432
innodb_buffer_pool_size  1677721600      1073741824

 
范例2:比較本地配置文件和遠程服務器的差異:

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

 
比較出來內容如下:

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

 
范例3:比較本地兩個配置文件的差異:

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和配置信息:

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

范例2:匯總本地mysql服務器192.168.3.92的status和配置信息:

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獲取變量值

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

范例2:從指定的文件中讀取配置,這個有格式要求

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved