使用percona-toolkit操作MySQL的實(shí)用命令小結(jié)
1.pt-archiver
功能介紹:
將mysql數(shù)據(jù)庫中表的記錄歸檔到另外一個(gè)表或者文件
用法介紹:
pt-archiver [OPTION...] --source DSN --where WHERE
這個(gè)工具只是歸檔舊的數(shù)據(jù),不會(huì)對(duì)線上數(shù)據(jù)的OLTP查詢?cè)斐商笥绊?,你可以將?shù)據(jù)插入另外一臺(tái)服務(wù)器的其他表中,也可以寫入到一個(gè)文件中,方便使用load data infile命令導(dǎo)入數(shù)據(jù)。另外你還可以用它來執(zhí)行delete操作。這個(gè)工具默認(rèn)的會(huì)刪除源中的數(shù)據(jù)。使用的時(shí)候請(qǐng)注意。
使用示例:
范例1:將192.168.3.135上的sanmao庫的oss_log表id小于100000的記錄轉(zhuǎn)移到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,否則導(dǎo)出的文件內(nèi)容中文會(huì)亂碼。
2.pt-find
功能介紹:
查找mysql表并執(zhí)行指定的命令,和gnu的find命令類似。
用法介紹:
pt-find [OPTION...] [DATABASE...]
默認(rèn)動(dòng)作是打印數(shù)據(jù)庫名和表名
使用示例:
范例1:查找192.168.3.135中1天以前創(chuàng)建的InnoDB的表 ,并打印。
pt-find --ctime +1 --host=192.168.3.135 --engine InnoDB --user=root --password=zhang@123
范例2:查找192.168.3.135中1天以前更改過的數(shù)據(jù)庫名字匹配%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結(jié)果的文件中讀取mysql語句
使用示例:
范例1:查找192.168.3.135服務(wù)器運(yùn)行時(shí)間超過60s的語句,并打印
pt-kill --busy-time 60 --print --host=192.168.3.135 --user=root --password=zhang@123
范例2:查找192.168.3.135服務(wù)器運(yùn)行時(shí)間超過60s的語句,并kill
pt-kill --busy-time 60 --kill --host=192.168.3.135 --user=root --password=zhang@123
范例3:從proccesslist文件中查找執(zhí)行時(shí)間超過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配置文件和服務(wù)器參數(shù)
用法介紹:
pt-config-diff [OPTION...] CONFIG CONFIG [CONFIG...]
CONFIG可以是文件也可以是數(shù)據(jù)源名稱,最少必須指定兩個(gè)配置文件源,就像unix下面的diff命令一樣,如果配置完全一樣就不會(huì)輸出任何東西。
使用示例:
范例1:查看本地和遠(yuǎn)程服務(wù)器的配置文件差異:
pt-config-diff h=localhost h=192.168.3.92 --user=root --password=zhang@123
比較出來內(nèi)容如下:
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:比較本地配置文件和遠(yuǎn)程服務(wù)器的差異:
pt-config-diff /etc/my.cnf h=192.168.3.92 --user=root --password=zhang@123
比較出來內(nèi)容如下:
12 config differences Variable /etc/my.cnf localhost.localdomain ========================= =========== ===================== binlog_cache_size 8388608 2097152 binlog_format mixed MIXED
范例3:比較本地兩個(gè)配置文件的差異:
pt-config-diff /usr/local/mysql/share/mysql/my-large.cnf /usr/local/mysql/share/mysql/my-medium.cnf
5.pt-mysql-summary
功能介紹:
精細(xì)地對(duì)mysql的配置和sataus信息進(jìn)行匯總,匯總后你直接看一眼就能看明白。
用法介紹:
pt-mysql-summary [OPTIONS] [-- MYSQL OPTIONS]
工作原理:連接mysql后查詢出status和配置信息保存到臨時(shí)目錄中,然后用awk和其他的腳本工具進(jìn)行格式化。OPTIONS可以查閱官網(wǎng)的相關(guān)頁面。
使用示例:
范例1:匯總本地mysql服務(wù)器的status和配置信息:
pt-mysql-summary -- --user=root --password=zhang@123 --host=localhost
范例2:匯總本地mysql服務(wù)器192.168.3.92的status和配置信息:
pt-mysql-summary -- --user=root --password=zhang@123 --host=192.168.3.92
6.pt-variable-advisor
功能介紹:
分析mysql的參數(shù)變量,并對(duì)可能存在的問題提出建議
用法介紹:
pt-variable-advisor [OPTION...] [DSN]
原理:根據(jù)預(yù)先定義的規(guī)則檢查show variables中的配置錯(cuò)誤的設(shè)置和值。
使用示例:
范例1:從localhost獲取變量值
pt-variable-advisor --user=root --password=zhang@123 localhost
范例2:從指定的文件中讀取配置,這個(gè)有格式要求
pt-variable-advisor --user=root --password=zhang@123 --source-of-variables my.cnf
相關(guān)文章
mysql 報(bào)錯(cuò) incompatible with sql_mode=only
這篇文章主要為大家介紹了mysql 報(bào)錯(cuò) incompatible with sql_mode=only_full_group_by解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10MySQL?Workbench操作圖文詳解(史上最細(xì))
Workbench是MySQL最近釋放的可視數(shù)據(jù)庫設(shè)計(jì)工具,這個(gè)工具是設(shè)計(jì) MySQL數(shù)據(jù)庫的專用工具,下面這篇文章主要給大家介紹了關(guān)于MySQL?Workbench操作的相關(guān)資料,需要的朋友可以參考下2023-03-03MySQL如何統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫所有表的數(shù)據(jù)量
最近在做統(tǒng)計(jì)想查找一個(gè)數(shù)據(jù)庫里基本所有的表數(shù)據(jù)量,下面這篇文章主要給大家介紹了關(guān)于MySQL如何統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫所有表的數(shù)據(jù)量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Linux環(huán)境下安裝mysql5.7.36數(shù)據(jù)庫教程
大家好,本篇文章主要講的是Linux環(huán)境下安裝mysql5.7.36數(shù)據(jù)庫教程,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12mysql間隙鎖加鎖11個(gè)規(guī)則(案例分析)
這篇文章主要介紹了mysql間隙鎖加鎖11個(gè)規(guī)則?,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03