国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

安裝和使用percona-toolkit來輔助操作MySQL的基本教程

2024-07-24 13:08:13
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了安裝和使用percona-toolkit來輔助操作MySQL的基本教程,這里舉了五個最常見的命令用法,需要的朋友可以參考下

一、percona-toolkit簡介

percona-toolkit是一組高級命令行工具的集合,用來執行各種通過手工執行非常復雜和麻煩的mysql和系統任務,這些任務包括:

檢查master和slave數據的一致性

有效地對記錄進行歸檔

查找重復的索引

對服務器信息進行匯總

分析來自日志和tcpdump的查詢

當系統出問題的時候收集重要的系統信息

percona-toolkit源自Maatkit 和Aspersa工具,這兩個工具是管理mysql的最有名的工具,現在Maatkit工具已經不維護了,請大家還是使用percona-toolkit吧!這些工具主要包括開發、性能、配置、監控、復制、系統、實用六大類,作為一個優秀的DBA,里面有的工具非常有用,如果能掌握并加以靈活應用,將能極大的提高工作效率。

二、percona-toolkit工具包安裝 1. 軟件包下載

訪問http://www.percona.com/software/percona-toolkit/下載最新版本的Percona Toolkit 或者通過如下命令行來獲取最新的版本:

 

 
  1. wget percona.com/get/percona-toolkit.tar.gz 
  2. wget percona.com/get/percona-toolkit.rpm 

我這里選擇直接從網站上找到最新版本下載:

 

 
  1. wget http://www.percona.com/redir/downloads/percona-toolkit/2.1.1/percona-toolkit-2.1.1-1.noarch.rpm 
  2. wget http://www.percona.com/redir/downloads/percona-toolkit/2.1.1/percona-toolkit-2.1.1.tar.gz 

從http://pkgs.repoforge.org/perl-TermReadKey/下載最新的TermReadKey包

 

 
  1. wget http://pkgs.repoforge.org/perl-TermReadKey/perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm 

2. 軟件包安裝

我的環境是Centos 5.5 64 BIT

A. percona-toolkit的rpm安裝方式

 

 
  1. rpm -ivh perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm 
  2. rpm -ivh percona-toolkit-2.1.1-1.noarch.rpm 

注意:需要安裝Term::ReadKey 包,否則會報perl(Term::ReadKey) >= 2.10 is needed by percona-toolkit-2.1.1-1.noarch錯誤

B. percona-toolkit的編譯安裝方式

tar xzvf percona-toolkit-2.1.1.tar.gz

cd percona-toolkit-2.1.1

perl Makefile.PL

make

make test

make install

三、常用功能 1. pt-duplicate-key-checker

功能介紹:

功能為從mysql表中找出重復的索引和外鍵,這個工具會將重復的索引和外鍵都列出來,并生成了刪除重復索引的語句,非常方便

用法介紹:

pt-duplicate-key-checker [OPTION...] [DSN]

包含比較多的選項,具體的可以通過命令pt-duplicate-key-checker --help來查看具體支持那些選項,我這里就不一一列舉了。DNS為數據庫或者表。

使用示例:

查看test數據庫的重復索引和外鍵使用情況使用如下命令

 

 
  1. pt-duplicate-key-checker --host=localhost --user=root --password=zhang@123 --databases=test 

2. pt-online-schema-change

功能介紹:

功能為在alter操作更改表結構的時候不用鎖定表,也就是說執行alter的時候不會阻塞寫和讀取操作,注意執行這個工具的時候必須做好備份,操作之前最好詳細讀一下官方文檔http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html。

工作原理是創建一個和你要執行alter操作的表一樣的空表結構,執行表結構修改,然后從原表中copy原始數據到表結構修改后的表,當數據copy完成以后就會將原表移走,用新表代替原表,默認動作是將原表drop掉。在copy數據的過程中,任何在原表的更新操作都會更新到新表,因為這個工具在會在原表上創建觸發器,觸發器會將在原表上更新的內容更新到新表。如果表中已經定義了觸發器這個工具就不能工作了。

用法介紹:

pt-online-schema-change [OPTIONS] DSN

options可以自行查看help,DNS為你要操作的數據庫和表。

這里有兩個參數需要介紹一下:

--dry-run 這個參數不建立觸發器,不拷貝數據,也不會替換原表。只是創建和更改新表。

--execute 這個參數的作用和前面工作原理的介紹的一樣,會建立觸發器,來保證最新變更的數據會影響至新表。注意:如果不加這個參數,這個工具會在執行一些檢查后退出。這一舉措是為了讓使用這充分了解了這個工具的原理,同時閱讀了官方文檔。

使用示例:

在線更改表的的引擎,這個尤其在整理innodb表的時候非常有用,示例如下:

 

 
  1. pt-online-schema-change --user=root --password=zhang@123 --host=localhost --lock-wait-time=120 --alter="ENGINE=InnoDB" D=test,t=oss_pvinfo2 --execute 

從下面的日志中可以看出它的執行過程:

 

 
  1. Altering `test`.`oss_pvinfo2`... 
  2. Creating new table... 
  3. Created new table test._oss_pvinfo2_new OK. 
  4. Altering new table... 
  5. Altered `test`.`_oss_pvinfo2_new` OK. 
  6. Creating triggers... 
  7. Created triggers OK. 
  8. Copying approximately 995696 rows... 
  9. Copied rows OK. 
  10. Swapping tables... 
  11. Swapped original and new tables OK. 
  12. Dropping old table... 
  13. Dropped old table `test`.`_oss_pvinfo2_old` OK. 
  14. Dropping triggers... 
  15. Dropped triggers OK. 
  16. Successfully altered `test`.`oss_pvinfo2`. 

在來一個范例,大表添加字段的,語句如下:

 

 
  1. pt-online-schema-change --user=root --password=zhang@123 --host=localhost --lock-wait-time=120 --alter="ADD COLUMN domain_id INT" D=test,t=oss_pvinfo2 --execute 

3. pt-query-advisor

功能介紹:

根據一些規則分析查詢語句,對可能的問題提出建議,這些評判規則大家可以看一下官網的鏈接:http://www.percona.com/doc/percona-toolkit/2.1/pt-query-advisor.html,這里就不詳細列舉了。那些查詢語句可以來自慢查詢文件、general日志文件或者使用pt-query-digest截獲的查詢語句。目前這個版本有bug,當日志文件非常大的時候會需要很長時間甚至進入死循環。

用法介紹:

 

 
  1. pt-query-advisor /path/to/slow-query.log 
  2. pt-query-advisor --type genlog mysql.log 
  3. pt-query-digest --type tcpdump.txt --print --no-report | pt-query-advisor 

使用示例:

分析一個語句的例子:

 

 
  1. pt-query-advisor --query "select * from aaa" 

分析general log中的查詢語句的例子:

 

 
  1. pt-query-advisor /data/dbdata/general.log 

分析慢查詢中的查詢語句的例子:

 

 
  1. pt-query-advisor /data/dbdata/localhost-slow.log 

4. pt-show-grants

功能介紹:

規范化和打印mysql權限,讓你在復制、比較mysql權限以及進行版本控制的時候更有效率!

用法介紹:

pt-show-grants [OPTION...] [DSN]

選項自行用help查看,DSN選項也請查看help,選項區分大小寫。

使用示例:

查看指定mysql的所有用戶權限:

 

 
  1. pt-show-grants --host='localhost' --user='root' --password='zhang@123' 

查看執行數據庫的權限:

 

 
  1. pt-show-grants --host='localhost' --user='root' --password='zhang@123' --database='hostsops' 

查看每個用戶權限生成revoke收回權限的語句:

 

 
  1. pt-show-grants --host='localhost' --user='root' --password='zhang@123' --revoke 

5. pt-upgrade

功能介紹:

在多臺服務器上執行查詢,并比較有什么不同!這在升級服務器的時候非常有用,可以先安裝并導數據到新的服務器上,然后使用這個工具跑一下sql看看有什么不同,可以找出不同版本之間的差異。

用法介紹:

pt-upgrade [OPTION...] DSN [DSN...] [FILE]

比較文件中每一個查詢語句在兩個主機上執行的結果,并檢查在每個服務器上執行的結果、錯誤和警告。

使用示例:

只查看某個sql在兩個服務器的運行結果范例:

 

 
  1. pt-upgrade h='localhost' h=192.168.3.92 --user=root --password=zhang@123 --query="select * from user_data.collect_data limit 5" 

查看文件中的對應sql在兩個服務器的運行結果范例:

 

 
  1. pt-upgrade h='localhost' h=192.168.3.92 --user=root --password=zhang@123 aaa.sql 

查看慢查詢中的對應的查詢SQL在兩個服務器的運行結果范例:

 

  
  1. pt-upgrade h='localhost' h=192.168.3.92 --user=root --password=zhang@123 slow.log 

此外還可以執行compare的類型,主要包含三個query_times,results,warnings,比如下面的例子,只比較sql的執行時間

 

 
  1. pt-upgrade h=192.168.3.91 h=192.168.3.92 --user=root --password=zhang@123 --query="select * from user_data.collect_data" --compare query_times 
 

 



注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 饶阳县| 南澳县| 调兵山市| 沁源县| 宁化县| 拉萨市| 南漳县| 彭水| 洪洞县| 宝兴县| 长子县| 西贡区| 福鼎市| 星子县| 平邑县| 东兴市| 乐陵市| 佛学| 平江县| 海阳市| 房产| 南木林县| 永丰县| 兰坪| 莱西市| 石渠县| 磐石市| 岳西县| 都江堰市| 类乌齐县| 河北省| 仲巴县| 沧源| 射洪县| 泸溪县| 当涂县| 柯坪县| 巨野县| 黔东| 栾城县| 瓦房店市|