使用percona-toolkit操作MySQL的實用命令小結
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
|
範例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
|
範例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.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:檢視本地和遠端伺服器的配置檔案差異:
?
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:比較本地配置檔案和遠端伺服器的差異:
?
1 |
pt-config- diff /etc/my .cnf h=192.168.3.92 --user=root --password=zhang@123
|
比較出來內容如下:
?
12345 |
12 config differences Variable /etc/my.cnf localhost.localdomain ========================= =========== ===================== binlog_cache_size 8388608 2097152 binlog_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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redis日常操作命令小結Redis
- MySQL基本操作語句小結MySql
- 命令列使用小結命令列
- MongoDB日常運維操作命令小結MongoDB運維
- mysql for mac使用小結MySqlMac
- Solaris 10 實用命令小結
- 生信小技巧:實用的命令(3)
- MySQL基本操作命令MySql
- MySQL 命令列操作集合MySql命令列
- linux mysql 操作命令LinuxMySql
- mysql percona-toolkit 瑞士軍刀MySql
- mysql小結MySql
- fuser 命令小結
- docker命令小結Docker
- git命令小結Git
- javah 命令小結Java
- lsof命令小結
- 15個實用的管理mysql的mysqladmin命令MySql
- ffmpeg 命令列實用總結命令列
- 實用小技巧! 修改MySQL密碼MySql密碼
- RMAN命令小結(精簡命令)
- Mysql資料庫操作命令MySql資料庫
- mysql操作命令梳理(1)-索引MySql索引
- mysql操作命令梳理(3)-pagerMySql
- 總結MySQL建表、查詢最佳化的一些實用小技巧MySql
- MySQL中的Percona-toolkit工具由來漫談MySql
- Oracle: srvctl 命令小結Oracle
- Egret命令列小結命令列
- Mysql基本操作總結MySql
- mysql日期函式小結及個人實驗MySql函式
- 關於Oracle backup常用命令實際操作的總結Oracle
- RMAN命令LIST操作總結
- 安裝並使用percona-toolkit
- UIWebView的使用小結UIWebView
- 6個超實用的Sudo命令使用技巧
- 最實用的 Linux 命令列使用技巧Linux命令列
- mysql change buffer小結MySql
- Mysql優化小結MySql優化