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

裝置和應用percona-toolkit來幫助操作MySQL的根本教程

編輯:MySQL綜合教程

裝置和應用percona-toolkit來幫助操作MySQL的根本教程。本站提示廣大學習愛好者:(裝置和應用percona-toolkit來幫助操作MySQL的根本教程)文章只能為提供參考,不一定能成為您想要的結果。以下是裝置和應用percona-toolkit來幫助操作MySQL的根本教程正文


1、percona-toolkit簡介
percona-toolkit是一組高等敕令行對象的聚集,用來履行各類經由過程手工履行異常龐雜和費事的mysql和體系義務,這些義務包含:

  • 檢討master和slave數據的分歧性
  • 有用地對記載停止歸檔
  • 查找反復的索引
  • 對辦事器信息停止匯總
  • 剖析來自日記和tcpdump的查詢
  • 當體系出成績的時刻搜集主要的體系信息

percona-toolkit源自Maatkit 和Aspersa對象,這兩個對象是治理mysql的最著名的對象,如今Maatkit對象曾經不保護了,請年夜家照樣應用percona-toolkit吧!這些對象重要包含開辟、機能、設置裝備擺設、監控、復制、體系、適用六年夜類,作為一個優良的DBA,外面有的對象異常有效,假如能控制並加以靈巧運用,將能極年夜的進步任務效力。

2、percona-toolkit對象包裝置
1.  軟件包下載
拜訪http://www.percona.com/software/percona-toolkit/下載最新版本的Percona Toolkit 或許經由過程以下敕令行來獲得最新的版本:

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

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

wget http://www.percona.com/redir/downloads/percona-toolkit/2.1.1/percona-toolkit-2.1.1-1.noarch.rpm
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包

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裝置方法

rpm -ivh perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm
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

3、經常使用功效
1. pt-duplicate-key-checker
功效引見:
功效為從mysql表中找出反復的索引和外鍵,這個對象會將反復的索引和外鍵都列出來,並生成了刪除反復索引的語句,異常便利
用法引見:
pt-duplicate-key-checker [OPTION...] [DSN]
包括比擬多的選項,詳細的可以經由過程敕令pt-duplicate-key-checker  --help來檢查詳細支撐那些選項,我這裡就紛歧一羅列了。DNS為數據庫或許表。
應用示例:
檢查test數據庫的反復索引和外鍵應用情形應用以下敕令

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表的時刻異常有效,示例以下:

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

從上面的日記中可以看出它的履行進程:

Altering `test`.`oss_pvinfo2`...
Creating new table...
Created new table test._oss_pvinfo2_new OK.
Altering new table...
Altered `test`.`_oss_pvinfo2_new` OK.
Creating triggers...
Created triggers OK.
Copying approximately 995696 rows...
Copied rows OK.
Swapping tables...
Swapped original and new tables OK.
Dropping old table...
Dropped old table `test`.`_oss_pvinfo2_old` OK.
Dropping triggers...
Dropped triggers OK.
Successfully altered `test`.`oss_pvinfo2`.

在來一個典范,年夜表添加字段的,語句以下:

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,當日記文件異常年夜的時刻會須要很長時光乃至進入逝世輪回。
用法引見:

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

 
應用示例:
剖析一個語句的例子:

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

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

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

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

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

 
4.  pt-show-grants
功效引見:
標准化和打印mysql權限,讓你在復制、比擬mysql權限和停止版本掌握的時刻更有用率!
用法引見:
pt-show-grants [OPTION...] [DSN]
選項自行用help檢查,DSN選項也請檢查help,選項辨別年夜小寫。
應用示例:
檢查指定mysql的一切用戶權限:

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

檢查履行數據庫的權限:

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

檢查每一個用戶權限生成revoke發出權限的語句:

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

 
5.  pt-upgrade
功效引見:
在多台辦事器上履行查詢,並比擬有甚麼分歧!這在進級辦事器的時刻異常有效,可以先裝置並導數據到新的辦事器上,然後應用這個對象跑一下sql看看有甚麼分歧,可以找出分歧版本之間的差別。
用法引見:
pt-upgrade [OPTION...] DSN [DSN...] [FILE]
比擬文件中每個查詢語句在兩個主機上履行的成果,並檢討在每一個辦事器上履行的成果、毛病和正告。
應用示例:
只檢查某個sql在兩個辦事器的運轉成果典范:

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

檢查文件中的對應sql在兩個辦事器的運轉成果典范:

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

檢查慢查詢中的對應的查詢SQL在兩個辦事器的運轉成果典范:

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

另外還可以履行compare的類型,重要包括三個query_times,results,warnings,好比上面的例子,只比擬sql的履行時光

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

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