percona-toolkit工具包的安裝和使用
percona-toolkit工具包的安裝和使用
下載: https://www.percona.com/downloads/percona-toolkit/LATEST/
percona-toolkit工具包同percona-xtrabackup一樣都是用Perl寫的工具包,percona-toolkit工具包是一組高階的管理mysql的工具包集,可以用來執行各種通過手工執行非常複雜和麻煩的mysql和系統任務,在生產環境中能極大的提高效率,安裝也很簡單。
1.檢查和安裝與Perl相關的模組
PT工具是使用Perl語言編寫和執行的,所以需要系統中有Perl環境。
依賴包檢查命令為:
rpm -qa perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL
如果有依賴包確實,可以使用下面的命令安裝:
yum install perl-DBI
yum install perl-DBD-MySQL
yum install perl-Time-HiRes
yum install perl-IO-Socket-SSL
wget http://pkgs.repoforge.org/perl-TermReadKey/perl-TermReadKey-2.30-1.el3.rf.x86_64.rpm rpm -ivh perl-TermReadKey-2.30-1.el3.rf.x86_64.rpm wget https://www.percona.com/downloads/percona-toolkit/2.2.14/RPM/percona-toolkit-2.2.14-1.noarch.rpm rpm -ivh percona-toolkit-2.2.14-1.noarch.rpm
如果不能下載: 直接進入頁面下載rpm包:
1,https://centos.pkgs.org/ 搜尋: perl-TermReadKey 下載
2,https://www.percona.com/downloads/ 進入下載頁面下載
[root@rhel6lhr Packages]# rpm -ivh perl-Net-LibIDN-0.12-3.el6.x86_64.rpm Preparing... ########################################### [100%] 1:perl-Net-LibIDN ########################################### [100%] [root@rhel6lhr Packages]# rpm -ivh perl-Net-SSLeay-1.35-9.el6.x86_64.rpm Preparing... ########################################### [100%] 1:perl-Net-SSLeay ########################################### [100%] [root@rhel6lhr Packages]# rpm -ivh perl-IO-Socket-SSL-1.31-2.el6.noarch.rpm Preparing... ########################################### [100%] 1:perl-IO-Socket-SSL ########################################### [100%]
注意:需要安裝Term::ReadKey 包,否則會報perl(Term::ReadKey) is needed by percona-toolkit-2.2.14-1.noarch
2:下載和安裝percona toolkit的包
http://pkgs.repoforge.org/perl-TermReadKey/(key)
https://www.percona.com/downloads/percona-toolkit/ (tool)
yum install percona-toolkit
或:
tar -zxvf percona-toolkit-3.0.13_x86_64.tar.gz export PATH=$PATH:/usr/local/percona-toolkit-3.0.13/bin
可以加入/etc/profile檔案中。
安裝後,可以通過下面的命令確認是否安裝成功:
# pt-query-digest --help
# pt-table-checksum --help
如果命令提示可以正常顯示,則說明pt工具已經正常安裝和使用了。
3)pt-online-schema-change
RSU只避免了執行DDL的節點對其它節點的阻塞,但對於同一節點上DDL與DML的相互影響問題卻無能為力。在當前階段,解決非阻塞線上DDL的終極解決方案是使用pt-online-schema-change。
pt-online-schema-change是percona-toolkit中的一個工具,功能是無鎖定線上修改表結構,要求被修改表具有主鍵或唯一索引。percona-toolkit工具包的安裝和使用非常簡單。例如,從https://www.percona.com/downloads/percona-toolkit/LATEST/下載percona-toolkit,然後執行下面的命令進行安裝:
# 安裝依賴包
yum install perl-TermReadKey.x86_64
yum install perl-DBI
yum install perl-DBD-MySQL
yum install perl-Time-HiRes
yum install perl-IO-Socket-SSL
# 安裝percona-toolkit
rpm -ivh percona-toolkit-3.1.0-2.el7.x86_64.rpm
執行類似下面的命令修改表結構:
pt-online-schema-change --alter="add column c1 int;" --execute D=test,t=t1,u=root,p=P@sswo2d
alter引數指定修改表結構的語句,execute表示立即執行,D、t、u、p分別指定庫名、表名、使用者名稱和密碼,執行期間不阻塞其它並行的DML語句。pt-online-schema-change還有許多選項,具體用法可以使用pt-online-schema-change --help檢視聯機幫助。官方文件連結為:https://www.percona.com/doc/percona-toolkit/LATEST/pt-online-schema-change.html。
pt-online-schema-change工作原理其實很簡單:
如果存在外來鍵,根據alter-foreign-keys-method引數的值,檢測外來鍵相關的表,做相應設定的處理。如果被修改表存在外來鍵定義但沒有使用 --alter-foreign-keys-method 指定特定的值,該工具不予執行。
建立一個新的表,表結構為修改後的資料表,用於從源資料表向新表中匯入資料。
建立觸發器,用於記錄從拷貝資料開始之後,對源資料表繼續進行資料修改的操作記錄下來,資料拷貝結束後,執行這些操作,保證資料不會丟失。如果表中已經定義了觸發器這個工具就不能工作了。
拷貝資料,從源資料表中拷貝資料到新表中。
修改外來鍵相關的子表,根據修改後的資料,修改外來鍵關聯的子表。
rename源資料表為old表,把新表rename為源表名,並將old表刪除。
刪除觸發器。
有的32個命令,可以分為7大類:
工具類別 |
工具命令 |
工具作用 |
備註 |
開發類 |
pt-duplicate-key-checker |
列出並刪除重複的索引和外來鍵 |
|
pt-online-schema-change |
線上修改表結構 |
||
pt-query-advisor |
分析查詢語句,並給出建議,有 bug |
已廢棄 | |
pt-show-grants |
規範化和列印許可權 |
||
pt-upgrade |
在多個伺服器上執行查詢,並比較不同 |
||
效能類 |
pt-index-usage |
分析日誌中索引使用情況,並出報告 |
|
pt-pmp |
為查詢結果跟蹤,並彙總跟蹤結果 |
||
pt-visual-explain |
格式化執行計劃 |
||
pt-table-usage |
分析日誌中查詢並分析表使用情況 |
pt 2.2新增命令 | |
配置類 |
pt-config-diff |
比較配置檔案和引數 |
|
pt-mysql-summary |
對 mysql配置和 status進行彙總 |
||
pt-variable-advisor |
分析引數,並提出建議 |
||
監控類 |
pt-deadlock-logger |
提取和記錄 mysql死鎖資訊 |
|
pt-fk-error-logger |
提取和記錄外來鍵資訊 |
||
pt-mext |
並行檢視 status樣本資訊 |
||
pt-query-digest |
分析查詢日誌,併產生報告 |
常用命令 | |
pt-trend |
按照時間段讀取 slow日誌資訊 |
已廢棄 | |
複製類 |
pt-heartbeat |
監控 mysql複製延遲 |
|
pt-slave-delay |
設定從落後主的時間 |
||
pt-slave-find |
查詢和列印所有 mysql複製層級關係 |
||
pt-slave-restart |
監控 salve錯誤,並嘗試重啟 salve |
||
pt-table-checksum |
校驗主從複製一致性 |
||
pt-table-sync |
高效同步表資料 |
||
系統類 |
pt-diskstats |
檢視系統磁碟狀態 |
|
pt-fifo-split |
模擬切割檔案並輸出 |
||
pt-summary |
收集和顯示系統概況 |
||
pt-stalk |
出現問題時,收集診斷資料 |
||
pt-sift |
瀏覽由 pt-stalk建立的檔案 |
pt 2.2新增命令 | |
pt-ioprofile |
查詢程式 IO並列印一個 IO活動表 |
pt 2.2新增命令 | |
實用類 |
pt-archiver |
將表資料歸檔到另一個表或檔案中 |
|
pt-find |
查詢表並執行命令 |
||
pt-kill |
Kill掉符合條件的 sql |
常用命令 | |
pt-align |
對齊其他工具的輸出 |
pt 2.2新增命令 | |
pt-fingerprint |
將查詢轉成密文 |
pt 2.2新增命令 |
上面是pt工具各個命令的基本功能介紹,可以使用 command --help 來檢視每個命令的具體作用和使用方法;
有的命令也可以使用 man command 命令查詢相關命令詳細資訊。
目前使用的比較多的命令是: pt-query-digest ,pt-kill等命令。
加欄位例子:
pt-online-schema-change --alter "add column attribute3 varchar(100)" h=192.168.1.142,P=3306,p=cc.123,u=root,D=orabenlai,t=oraesb --no-check-replication-filters --execute
說明: 1, 如果有 binlog_ignore_db = mysql 選型會報 check-replication-filters 錯誤,必須加上 --no-check-replication-filters
2, --execute 前面是有2個"-"
3,加多個欄位可以使用: "add column attribute1 varchar(100),add column attribute2 varchar(100)"
percona-toolkit 使用教程
一、 percona-toolkit 簡介
percona-toolkit 是一組高階命令列工具的集合,用來執行各種通過手工執行非常複雜和麻煩的 mysql 任務和系統任務,這些任務包括:
l 檢查 master 和 slave 資料的一致性
l 有效地對記錄進行歸檔
l 查詢重複的索引
l 對伺服器資訊進行彙總
l 分析來自日誌和 tcpdump 的查詢
l 當系統出問題的時候收集重要的系統資訊
percona-toolkit 源自 Maatkit 和 Aspersa 工具,這兩個工具是管理 mysql 的最有名的工具,現在 Maatkit 工具已經不維護了,請大家還是使用 percona-toolkit 吧!這些工具主要包括開發、效能、配置、監控、複製、系統、實用六大類,作為一個優秀的 DBA ,裡面有的工具非常有用,如果能掌握並加以靈活應用,將能極大的提高工作效率。
二、 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 - t oolkit - 2.1.1 - 1.noarch.rpm wget http://www.percona.com/redir/downloads/percona - toolkit/2.1.1/percona - t oolkit - 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.
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
三、 percona-toolkit 的使用
根據 percona-toolkit 的工具型別可以總結出下面五個類別,方便大家進行學習和實踐,下面就針對這些不同的類別來分別介紹這些工具的用法。
( 一 ) 開發類工具
1. pt-duplicate-key-checker
l 功能介紹:功能為從 mysql 表中找出重複的索引和外來鍵,這個工具會將重複的索引和外來鍵都列出來,並生成了刪除重複索引的語句,非常方便
l 用法介紹:
pt-duplicate-key-checker [OPTION...] [DSN]
包含比較多的選項,具體的可以通過命令 pt-duplicate-key-checker
--help 來檢視具體支援那些選項,我這裡就不一一列舉了。 DNS 為資料庫或者表。
l 使用示例:
檢視 test 資料庫的重複索引和外來鍵使用情況使用如下命令
pt-duplicate-key-checker --host=localhost --password=zhang@123 --databases=test |
--user=root |
2. pt-online-schema-change
l 功能介紹:功能為在 alter 操作更改表結構的時候不用鎖定表,也就是說執行 alter 的時候不會阻塞寫和讀取操作, 注意執行這個工具的時候必須做好備份,操作之前最好詳細讀一下官方文件 http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-ch ange.html 。
工作原理是建立一個和你要執行 alter 操作的表一樣的空表結構,執行表結構修改,然後從原表中 copy 原始資料到表結構修改後的表,當資料 copy 完成以後就會將原表移走,用新表代替原表,預設動作是將原表 drop 掉。在 copy 資料的過程中,任何在原表的更新操作都會更新到新表,因為這個工具在會在原表上建立觸發器,觸發器會將在原表上更新的內容更新到新表。 如果表中已經定義了觸發器這個工具就不能工作了。
l 用法介紹:
pt-online-schema-change [OPTIONS] DSN
options 可以自行檢視 help , DNS 為你要操作的資料庫和表。這裡有兩個引數需要介紹一下:
--dry-run 這個引數不建立觸發器,不拷貝資料,也不會替換原表。只是建立和更改新表。
-- execute 這個引數的作用和前面工作原理的介紹的一樣,會建立觸發器,來保證最新變更的資料會影響至新表。 注意:如果不加這個引數,這個工具會在執行一些檢查後退出。這一舉措是為了讓使用這充分了解了這個工具的原理,同時閱讀了官方文件。
l 使用示例:範例 1 :線上更改表的的引擎,這個尤其在整理 innodb 表的時候非常有用,示例如下:
pt-online-schema-change --user=root --password=zhang@123 --host=l ocalhost --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`.
範例 2 :大表新增欄位的,語句如下 :
pt-online-schema-change --user=root --password=zhang@123 --host=l ocalhost --lock-wait-time=120 --alter="ADD COLUMN domain_id INT" D=test,t=oss_pvinfo2 --execute
3. pt-query-advisor
l 功能介紹:根據一些規則分析查詢語句,對可能的問題提出建議,這些評判規則大 家 可 以 看 一 下 官 網 的 鏈 接 : http://www.percona.com/doc/percona - toolkit/2.1/pt - query - advisor.ht
ml , 這裡就不詳細列舉了。那些查詢語句可以來自慢查詢檔案、 general 日誌檔案或者使用 pt-query-digest 截獲的查詢語句。目前這個版本有 bug ,當日志檔案非常大的時候會需要很長時間甚至進入死迴圈。
l 用法介紹:
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
l 使用示例:分析一個語句的例子:
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
l 功能介紹:規範化和列印 mysql 許可權,讓你在複製、比較 mysql 許可權以及進行版本控制的時候更有效率!
l 用法介紹:
pt-show-grants [OPTION...] [DSN]
選項自行用 help 檢視, DSN 選項也請檢視 help ,選項區分大小寫。
l 使用示例:檢視指定 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
l 功能介紹:在多臺伺服器上執行查詢,並比較有什麼不同!這在升級伺服器的時候非常有用,可以先安裝並導資料到新的伺服器上,然後使用這個工具跑一下 sql 看看有什麼不同,可以找出不同版本之間的差異。
l 用法介紹:
pt-upgrade [OPTION...] DSN [DSN...] [FILE]
比較檔案中每一個查詢語句在兩個主機上執行的結果,並檢查在每個伺服器上執行的結果、錯誤和警告。
l 使用示例:只檢視某個 sql 在兩個伺服器的執行結果範例:
pt-upgrade h='localhost' h=192.168.3.92 --user=root --password=zha ng@123 --query="select * from user_data.collect_data limit 5"
檢視檔案中的對應 sql 在兩個伺服器的執行結果範例:
pt-upgrade h='localhost' h=192.168.3.92 --user=root --password=zha ng@123 aaa.sql
檢視慢查詢中的對應的查詢 SQL 在兩個伺服器的執行結果範例:
pt-upgrade h='localhost' h=192.168.3.92 --user=root --password=zha ng@123 slow.log
此外還可以執行 compare 的型別,主要包含三個 query_times,results,warnings ,比如下面的例子,只比較 sql 的執行時間
pt-upgrade h=192.168.3.91 h=192.168.3.92 --user=root --password=z hang@123 --query="select * from user_data.collect_data" --compar e query_times
( 二 ) 效能類工具
1. pt-index-usage
l 功能介紹:從 log 檔案中讀取插敘語句,並用 explain 分析他們是如何利用索引。
完成分析之後會生成一份關於索引沒有被查詢使用過的報告。
l 用法介紹:
pt-index-usage [OPTION...] [FILE...]
可以直接從慢查詢中獲取 sql , FILE 檔案中的 sql 格式必須和慢查詢中個是一致,如果不是一直需要用 pt-query-digest 轉換一下。也可以不生成報告直接儲存到資料庫中,具體的見後面的示例
l 使用示例:從滿查詢中的 sql 檢視索引使用情況範例:
pt-index-usage /data/dbdata/localhost-slow.log --host=localhost --use r=root --password=zhang@123
將分析結果儲存到資料庫範例:
pt-index-usage /data/dbdata/localhost-slow.log --host=localhost --use r=root --password=zhang@123 --no-report --create-save-results-data base
使用 --create-save-results-database 會自動生成資料庫和表來儲存結果。
2. pt-pmp
l 功能介紹:為查詢程式執行聚合的 GDB 堆疊跟蹤,先進性堆疊跟蹤,然後將跟蹤資訊彙總。
l 用法介紹:
pt-pmp [OPTIONS] [FILES]
l 使用示例:
pt-pmp -p 21933 pt-pmp -b /usr/local/mysql/bin/mysqld_safe
3. pt-visual-explain
l 功能介紹:
格式化 explain 出來的執行計劃按照 tree 方式輸出,方便閱讀。
l 用法介紹:
pt-visual-explain [OPTION...] [FILE...]
option 請參閱官方網站,這裡不一一例舉!
l 使用示例:檢視包含 explain 結果的 aaa 檔案的範例:
pt-visual-explain aaa
檢視包含查詢語句的 aaa 檔案的範例:
pt-visual-explain --connect aaa --user=root --password=zhang@123
通過管道直接檢視 explain 輸出結果的範例:
mysql -uroot -pzhang@123 -e "explain select email from test.colle ct_data where id=101992419" |pt-visual-explain
( 三 ) 配置類工具
1. pt-config-diff
l 功能介紹:比較 mysql 配置檔案和伺服器引數
l 用法介紹:
pt-config-diff [OPTION...] CONFIG CONFIG [CONFIG...]
CONFIG 可以是檔案也可以是資料來源名稱,最少必須指定兩個配置檔案源,就像 unix 下面的 diff 命令一樣,如果配置完全一樣就不會輸出任何東西。
l 使用示例:範例 1 :檢視本地和遠端伺服器的配置檔案差異:
pt-config-diff h=localhost h=192.168.3.92 --user=root --password=zha ng@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=zha ng@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/m ysql/share/mysql/my-medium.cnf
2. pt-mysql-summary
l 功能介紹:精細地對 mysql 的配置和 sataus 資訊進行彙總,彙總後你直接看一眼就能看明白。
l 用法介紹:
pt-mysql-summary [OPTIONS] [-- MYSQL OPTIONS]
工作原理:連線 mysql 後查詢出 status 和配置資訊儲存到臨時目錄中,然後用 awk 和其他的指令碼工具進行格式化。 OPTIONS 可以查閱官網的相關頁面。
l 使用示例:範例 1 :彙總本地 mysql 伺服器的 status 和配置資訊:
pt-mysql-summary -- --user=root --password=zhang@123 --host=local host
範例 2 :彙總本地 mysql 伺服器 192.168.3.92 的 status 和配置資訊:
pt-mysql-summary -- --user=root --password=zhang@123 --host=192. 168.3.92
3. pt-variable-advisor
l 功能介紹:分析 mysql 的引數變數,並對可能存在的問題提出建議
l 用法介紹:
pt-variable-advisor [OPTION...] [DSN]
原理:根據預先定義的規則檢查 show variables 中的配置錯誤的設定和值。
l 使用示例:
範例 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. pt-deadlock-logger
l 功能介紹:提取和記錄 mysql 死鎖的相關資訊
l 用法介紹:
pt-deadlock-logger [OPTION...] SOURCE_DSN
收集和儲存 mysql 上最近的死鎖資訊,可以直接列印死鎖資訊和儲存死鎖資訊到資料庫中,死鎖資訊包括髮生死鎖的伺服器、最近發生死鎖的時間、死鎖執行緒 id 、死鎖的事務 id 、發生死鎖時事務執行了多長時間等等非常多的資訊。詳情見下面的示例。
l 使用示例:範例 1 :列印本地 mysql 的死鎖資訊
pt-deadlock-logger --user=root --password=zhang@123 h=localhost
範例 2 :將本地的 mysql 死鎖資訊記錄到資料庫的表中,也列印出來
pt-deadlock-logger --user=root --password=zhang@123 h=localhost
--print D=test,t=deadlocks
2. pt-fk-error-logger
l 功能介紹:提取和記錄 mysql 外來鍵錯誤資訊
l 用法介紹:
pt-fk-error-logger [OPTION...] SOURCE_DSN
通過 SHOW INNODB STATUS 提取和儲存 mysql 資料庫最近發生的外來鍵錯誤資訊。可以通過引數控制直接列印錯誤資訊或者將錯誤資訊儲存到資料庫的表中。
l 使用示例:我在伺服器上執行的時候一直報如下錯誤:
Use of uninitialized value in concatenation (.) or string at /usr/bin
/pt-fk-error-logger line 2045
我懷疑是這個程式有問題,回頭換一個版本試一下或者除錯一下那個程式。
3. pt-mext
l 功能介紹:
並行檢視 SHOW GLOBAL STATUS 的多個樣本的資訊。
l 用法介紹:
pt-mext [OPTIONS] -- COMMAND
原理: pt-mext 執行你指定的 COMMAND ,並每次讀取一行結果,把空行分割的內容儲存到一個一個的臨時檔案中,最後結合這些臨時檔案並行檢視結果。
l 使用示例:範例 1 :每隔 10s 執行一次 SHOW GLOBAL STATUS ,並將結果合併到一起檢視
pt-mext -- mysqladmin ext -uroot -pzhang@123 -i10 -c3
4. pt-query-digest
l 功能介紹:分析查詢執行日誌,併產生一個查詢報告,為 MySQL 、 PostgreSQL 、 memcached 過濾、重放或者轉換語句。
l 用法介紹:
pt-query-digest [OPTION...] [FILE]
解析和分析 mysql 日誌檔案
l 使用示例:範例 1 :分析本地的慢查詢檔案
pt-query-digest --user=root --password=zhang@123 /data/dbdata/loc alhost-slow.log
範例 2 :重新回顧滿查詢日誌,並將結果儲存到 query_review 中,注意 query_review 表的表結構必須先建好,表結構如下:
CREATE TABLE query_review ( checksum BIGINT UNSIGNED NOT NULL PRIMARY KEY, fingerprint TEXT NOT NULL, sample TEXT NOT NULL, first_seen DATETIME, last_seen DATETIME, reviewed_by VARCHAR(20), reviewed_on DATETIME, comments TEXT
);
命令如下:
pt-query-digest --user=root --password=zhang@123 --review h=localh ost,D=test,t=query_review /data/dbdata/localhost-slow.log
5. pt-trend
l 功能介紹:居於一組時間序列的資料點做統計。
l 用法介紹:
pt-trend [OPTION...] [FILE ...]
讀取一個慢查詢日誌,並輸出統計資訊。也可以指定多個檔案。如果不指定檔案的話直接從標準輸入中讀取資訊。
l 使用示例:範例 1 :讀取本地慢查詢日誌並輸出統計資訊
pt-trend /data/dbdata/localhost-slow.log
這裡輸出的資訊沒有說明,有點看不明白!
( 五 ) 複製類工具
1. pt-heartbeat
l 功能介紹:監控 mysql 複製延遲
l 用法介紹:
pt-heartbeat [OPTION...] [DSN] --update|--monitor|--check|--stop
測量複製落後主 mysql 或者主 PostgreSQL 多少時間,你可以使用這個指令碼去更新主或者監控複製,具體用法見後面的示例 .
原理: pt-heartbeat 通過真實的複製資料來確認 mysql 和 postgresql 複製延遲,這個避免了對複製機制的依賴,從而能得出準確的落後複製時間,包含兩部分:第一部分在主上 pt-heartbeat 的 --update 執行緒會在指定的時間間隔更新一個時間戳,第二部分是 pt-heartbeat 的 --monitor 執行緒或者 --check 執行緒連線到從上檢查複製的心跳記錄(前面更新的時間戳),並和當前系統時間進行比較,得出時間的差異。
你可以手工建立 heartbeat 表或者新增 - - create - table 參 數,推薦使用 MEMORY 引擎。表結構為:
CREATE TABLE heartbeat ( ts varchar(26) NOT NULL, server_id int unsigned NOT NULL PRIMARY KEY, file varchar(255) DEFAULT NULL, -- SHOW MASTER STATUS position bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUS relay_master_log_file varchar(255) DEFAULT NULL, -- SHOW SLAVE STATUS exec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS
);
l 使用示例:
範例 1 :建立一個後臺程式定期更新主上的 test 庫的 heartbeat 表()預設是 1s ,可以 --interval 指定,執行後會成一個 heartbeat 表, test 庫為我監控的同步庫:
pt-heartbeat -D test --update --user=root --password=zhang@123 -h
192.168.3.135 --create-table –daemonize
範例 2 :監控複製在 slave 上的落後程度(會一直監控):
pt-heartbeat -D test --monitor --user=root --password=zhang@123 h192.168.3.92
監控結果如下:
0.00s [ 0.00s, 0.00s, 0.00s ] 0.00s [ 0.00s, 0.00s, 0.00s ]
0.00s [ 0.00s, 0.00s, 0.00s ]
0.00s [ 0.00s, 0.00s, 0.00s ]
0.00s [ 0.00s, 0.00s, 0.00s ]
0.00s [ 0.00s, 0.00s, 0.00s ]
範例 3 :監控複製在 slave 上的落後程度(監控一次退出):
pt-heartbeat -D test --check --user=root --password=zhang@123 -h1
92.168.3.92
範例 4 :監控 PostgreSQL 需要新增 --dbi-driver Pg :
pt-heartbeat -D test --check --user=root --password=zhang@123 -h1 92.168.3.92 --dbi-driver Pg
2. pt-slave-delay
l 功能介紹:設定從伺服器落後於主伺服器指定時間。
l 用法介紹:
pt-slave-delay [OPTION...] SLAVE-HOST [MASTER-HOST]
原理:通過啟動和停止複製 sql 執行緒來設定從落後於主指定時間。預設是基於從上 relay 日誌的二進位制日誌的位置來判斷,因此不需要連線到主伺服器,如果 IO 程式不落後主伺服器太多的話,這個檢查方式工作很好,如果網路通暢的話,一般 IO 執行緒落後主通常都是毫秒級別。一般是通過 -- delay and --delay"+"--interval 來控制。 --interval 是指定檢查是否啟動或者停止從上 sql 執行緒的頻繁度,預設的是 1 分鐘檢查一次。
l 使用示例:範例 1 :使從落後主 1 分鐘,並每隔 1 分鐘檢測一次,執行 10 分鐘
pt-slave-delay --user=root --password=zhang@123 --delay 1m --run-t ime 10m --host=192.168.3.92
如果不加 --run-time 引數會一直執行。
範例 2 :使從落後主 1 分鐘,並每隔 15 秒鐘檢測一次,執行 10 分鐘
pt-slave-delay --user=root --password=zhang@123 --delay 1m --inter val 15s --run-time 10m --host=192.168.3.92
執行結果如下:
2012-05-20T16:34:50 slave running 0 seconds behind
2012-05-20T16:34:50 STOP SLAVE until 2012-05-20T16:35:50 at mas ter position mysql-bin.000032/4392054
2012-05-20T16:35:05 slave stopped at master position mysql-bin.00 0032/4397124
2012-05-20T16:35:20 slave stopped at master position mysql-bin.00 0032/4402194
2012-05-20T16:35:35 slave stopped at master position mysql-bin.00
0032/4407264
2012-05-20T16:35:50 no new binlog events
2012-05-20T16:36:05 START SLAVE until master 2012-05-20T16:35:0 5 mysql-bin.000032/4397124
3. pt-slave-find
l 功能介紹:查詢和列印 mysql 所有從伺服器複製層級關係
l 用法介紹:
pt-slave-find [OPTION...] MASTER-HOST
原理 : 連線 mysql 主伺服器並查詢其所有的從,然後列印出所有從伺服器的層級關係。
l 使用示例:
範例 1 :查詢主伺服器為 192.168.3.135 的 mysql 有所有從的層級關係:
pt-slave-find --user=root --password=zhang@123 --host=192.168.3.13 5
4. pt-slave-restart
l 功能介紹:
監視 mysql 複製錯誤,並嘗試重啟 mysql 複製當複製停止的時候
l 用法介紹:
pt-slave-restart [OPTION...] [DSN]
監視一個或者多個 mysql 複製錯誤,當從停止的時候嘗試重新啟動複製。你可以指定跳過的錯誤並執行從到指定的日誌位置。
l 使用示例:
範例 1 :監視 192.168.3.92 的從,跳過 1 個錯誤
pt-slave-restart --user=root --password=zhang@123 --host=192.168.3.
92 --skip-count=1
範例 2 :監視 192.168.3.92 的從,跳過錯誤程式碼為 1062 的錯誤。
pt-slave-restart --user=root --password=zhang@123 --host=192.168.3.
92 --error-numbers=1062
5. pt-table-checksum
l 功能介紹:檢查 mysql 複製一致性
l 用法介紹:
pt-table-checksum [OPTION...] [DSN]
工作原理: pt-table-checksum 在主上執行檢查語句線上檢查 mysql 複製的一致性,生成 replace 語句,然後通過複製傳遞到從,再通過 update 更新 master_src 的值。通過檢測從上 this_src 和 master_src 的值從而判斷複製是否一致。
注意:使用的時候選擇業務地峰的時候執行,因為執行的時候會造成表的部分記錄鎖定。使用 -- max - load 來 指定最大的負載情況,如果達到那個負載這個暫停執行。如果發現有不一致的資料,可以使用 pt-table-sync 工具來修復。
注意:和 1.0 版本不同,新版本的 pt-table-checksum 只需要在 master 上執行即可。
通過 –explain 引數再結合二進位制日誌就可以看出指令碼的工作原理,如我的 test 庫有一個名字為 zhang 的表,我們通過抓取二進位制日誌來檢視指令碼的原理:
REPLACE INTO `test`.`checksums` (db, tbl, chunk, chunk_index, lowe r_boundary, upper_boundary, this_cnt, this_crc) SELECT 'test', 'zhan g', '1', NULL, NULL, NULL, COUNT(*) AS cnt, COALESCE(LOWER(CON V(BIT_XOR(CAST(CRC32(CONCAT_WS('#', `id`, `name`, CONCAT(ISNULL
(`name`)))) AS UNSIGNED)), 10, 16)), 0) AS crc FROM `test`.`zhang`
/*checksum table*/;
UPDATE `test`.`checksums` SET chunk_time = '0.000563', master_crc = '31012777', master_cnt = '4' WHERE db = 'test' AND tbl = 'zha ng' AND chunk = '1'
從這裡可以很明顯的看出原理了,前面已經說了,這裡就不贅述了。
l 使用示例:範例 1 :比較 test 資料庫同步是否一致,結果顯示所有的表。
pt-table-checksum --nocheck-replication-filters --databases=test --re plicate=test.checksums --create-replicate-table --host=192.168.3.135
--port 3306 -uroot -pzhang@123
引數說明:第一次執行的時候需要新增 --create-replicate-table 引數,如果不加這個就需要手工執行新增表結構的 SQL, 表結構 SQL 如下:
CREATE TABLE checksums ( db char(64) NOT NULL, tbl char(64) NOT NULL, chunk int NOT NULL, chunk_time float NULL, chunk_index varchar(200) NULL, lower_boundary text NULL, upper_boundary text NULL, this_crc char(40) NOT NULL, this_cnt int NOT NULL, master_crc char(40) NULL, master_cnt int NULL, ts timestamp NOT NULL,
PRIMARY KEY (db, tbl, chunk),
INDEX ts_db_tbl (ts, db, tbl)
) ENGINE=InnoDB;
之所以使用 --nocheck-replication-filters 引數是因為我的 my.cnf 配置了 replicate-ignore-db 和 replicate-wild-do-table 等引數。另外需要特別注意執行的 checksums 所在的資料庫必須是同步的資料庫。我剛開始使用的時候摸索的很久,官網也沒有範例。呵呵!結果如下:
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
05-23T16:19:29 0 1 2 1 0 0.006 test.aaa
05-23T16:19:29 0 0 1 1 0 0.017 test.bbb
05-23T16:19:29 0 0 0 1 0 0.007 test.category_part
05-23T16:19:31 0 0 233617 6 0 1.887 test.collect_data
05-23T16:19:34 0 0 250346 5 0 2.709 test.effective_user
05-23T16:19:34 0 1 1 1 0 0.008 test.heartbeat
05-23T16:19:39 0 0 1000000 11 0 5.353 test.oss_pvinfo2
從結果中,我們可以看到 test.aaa 和 test.heartbeat 表的 DIFFS 不為 ,那麼就是這兩個表不同步了。
範例 2 :比較 test 資料庫同步是否一致,結果只顯示資料不一致的表
(新增 --replicate-check-only 引數即可)。
pt-table-checksum --nocheck-replication-filters --databases=test --re plicate=test.checksums --replicate-check-only --lock-wait-timeout=120 --host=192.168.3.135 --port 3306 --user=root --password=zhang
@123
結果如下:
Differences on localhost.localdomain
TABLE CHUNK CNT_DIFF CRC_DIFF CHUNK_INDEX LOWER_BOUNDAR Y UPPER_BOUNDARY test.aaa 1 1 1 test.heartbeat 1 0 1
從結果可以看出,只顯示了兩個不同步的表。
6. pt-table-sync
l 功能介紹:高效同步 mysql 表的資料
l 用法介紹:
pt-table-sync [OPTION...] DSN [DSN...]
原理:總是在主上執行資料的更改,再同步到從上,不會直接更改成從的資料,在主上執行更改是基於主上現在的資料,不會更改主上的資料。注意使用之前先備份你的資料,避免造成資料的丟失 . 執行 execute 之前最好先換成 --print 或 --dry-run 檢視一下會變更哪些資料。
l 使用示例:
範例 1 :同步 3.135 的 test 庫的 aaa 表到 192.168.3.92 ,在執行之前可以用 --execute 引數換成 --print 來檢視會變更什麼東西,後面那個主機必須是 master ,否則會報錯推出。
pt-table-sync --execute --user=root --password=zhang@123 h=192.16
8.3.135,D=test,t=aaa h=192.168.3.92
範例 2 :將主的 test 資料庫同步到 192.168.3.92 ,使從上具有一樣的資料。
pt-table-sync --execute --sync-to-master --user=root --password=zhan g@123 h=192.168.3.92 --database test
範例 3 :只同步指定的表
pt-table-sync --execute --sync-to-master --user=root --password=zhan g@123 h=192.168.3.92 D=test,t=aaa
範例 4 :根據 pt-table-checksum 的結果進行資料同步
pt-table-sync --execute --replicate test.checksums --user=root --pass word=zhang@123 h=192.168.3.135
範例 5 :根據 pt-table-checksum 使從的資料和主的資料一致
pt-table-sync --execute --replicate test.checksums --user=root --pass word=zhang@123 --sync-to-master h=192.168.3.92 D=test,t=aaa
( 六 ) 系統類工具
1. pt-diskstats
l 功能介紹:是一個對 GUN/LINUX 的互動式監控工具
l 用法介紹:
pt-diskstats [OPTION...] [FILES]
為 GUN/LINUX 列印磁碟 io 統計資訊,和 iostat 有點像,但是這個工具是互動式並且比 iostat 更詳細。可以分析從遠端機器收集的資料。
l 使用示例:
範例 1 :檢視本機所有的磁碟的狀態情況:
pt-diskstats
範例 2 :只檢視本機 sda2 磁碟的狀態情況
pt-diskstats --devices-regex sda2
2. pt-fifo-split
l 功能介紹:模擬切割檔案並通過管道傳遞給先入先出佇列而不用真正的切割檔案
l 用法介紹:
pt-fifo-split [options] [FILE ...]
pt-fifo-split 讀取大檔案中的資料並列印到 fifo 檔案,每次達到指定行數就往 fifo 檔案中列印一個 EOF 字元,讀取完成以後,關閉掉 fifo 檔案並移走,然後重建 fifo 檔案,列印更多的行。這樣可以保證你每次讀取的時候都能讀取到制定的行數直到讀取完成。注意此工具只能工作在類 unix 作業系統。這個程式對大檔案的資料匯入資料庫非常有用,具體的可以檢視 http://www.mysqlperformanceblog.com/2008/07
/03/how - to - load - large - files - safely - into - innodb - with - load - data - infile/ 。
l 使用示例:範例 1 :一個每次讀取一百萬行記錄的範例:
pt-fifo-split --lines 1000000 hugefile.txt while [ -e /tmp/pt-fifo-split ]; do cat /tmp/pt-fifo-split; done
範例 2 :一個每次讀取一百萬行,指定 fifo 檔案為 /tmp/my-fifo ,並使用 load data 命令匯入到 mysql 中:
pt-fifo-split infile.txt --fifo /tmp/my-fifo --lines 1000000 while [ -e /tmp/my-fifo ]; do mysql -e "set foreign_key_checks=0; set sql_log_bin=0; set uniq ue_checks=0; load data local infile '/tmp/my-fifo' into table load_t est fields terminated by '\t' lines terminated by '\n' (col1, col2);" sleep 1; done
3. pt-summary
l 功能介紹:友好地收集和顯示系統資訊概況,此工具並不是一個調優或者診斷工具,這個工具會產生一個很容易進行比較和傳送郵件的報告。
l 用法介紹:
pt-summary
原理:此工具會執行和多命令去收集系統狀態和配置資訊,先儲存到臨時目錄的檔案中去,然後執行一些 unix 命令對這些結果做格式化,最好是用 root 使用者或者有許可權的使用者執行此命令。
l 使用示例:
範例 1 :檢視本地系統資訊概況
pt-summary
4. pt-stalk
l 功能介紹:出現問題的時候收集 mysql 的用於診斷的資料
l 用法介紹:
pt-stalk [OPTIONS] [-- MYSQL OPTIONS]
pt-stalk 等待觸發條件觸發,然後收集資料幫助錯誤診斷,它被設計成使用 root 許可權執行的守護程式,因此你可以診斷那些你不能直接觀察的間歇性問題。預設的診斷觸發條件為 SHOW GLOBAL STATUS 。
也可以指定 processlist 為診斷觸發條件 ,使用 --function 引數指定。
l 使用示例:範例 1 :指定診斷觸發條件為 status ,同時執行語句超過 20 的時候觸發,收集的資料存放在 /tmp/test 目錄下:
pt-stalk --function status --variable Threads_running --threshold 20
--dest /tmp/test -- -uroot -pzhang@123 -h192.168.3.135
範例 2 :指定診斷觸發條件為 processlist ,超過 20 個狀態為 statistics 觸發,收集的資料存放在 /tmp/test 目錄下:
pt-stalk --function processlist --variable State --match statistics --t hreshold 20 --dest /tmp/test -- -uroot -pzhang@123 -h192.168.3.1
35
貼一下達到觸發條件以後收集的資訊:
2012_06_04_17_31_49-df
2012_06_04_17_31_49-disk-space
2012_06_04_17_31_49-diskstats
2012_06_04_17_31_49-hostname
2012_06_04_17_31_49-innodbstatus1
2012_06_04_17_31_49-innodbstatus2
2012_06_04_17_31_49-interrupts
2012_06_04_17_31_49-log_error
2012_06_04_17_31_49-lsof
2012_06_04_17_31_49-meminfo
2012_06_04_17_31_49-mutex-status1
2012_06_04_17_31_49-mysqladmin
2012_06_04_17_31_49-netstat
2012_06_04_17_31_49-netstat_s
2012_06_04_17_31_49-opentables1
2012_06_04_17_31_49-opentables2
2012_06_04_17_31_49-output
2012_06_04_17_31_49-pmap
2012_06_04_17_31_49-processlist
2012_06_04_17_31_49-procstat
2012_06_04_17_31_49-procvmstat
2012_06_04_17_31_49-ps
2012_06_04_17_31_49-slabinfo
2012_06_04_17_31_49-sysctl
2012_06_04_17_31_49-top
2012_06_04_17_31_49-trigger
2012_06_04_17_31_49-variables
2012_06_04_17_31_49-vmstat
2012_06_04_17_31_49-vmstat-overall
( 七 ) 實用類工具
1. pt-archiver
l 功能介紹:將 mysql 資料庫中表的記錄歸檔到另外一個表或者檔案,也可以直接進行記錄的刪除操作。
l 用法介紹:
pt-archiver [OPTION...] --source DSN --where WHERE
這個工具只是歸檔舊的資料,不會對線上資料的 OLTP 查詢造成太大影響,你可以將資料插入另外一臺伺服器的其他表中,也可以寫入到一個檔案中,方便使用 load data infile 命令匯入資料。另外你還可以用它來執行 delete 操作。這個工具預設的會刪除源中的資料。使用的時候請注意。
l 使用示例:
範例 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.lo g' --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
l 功能介紹:查詢 mysql 表並執行指定的命令,和 gnu 的 find 命令類似。
l 用法介紹:
pt-find [OPTION...] [DATABASE...]
預設動作是列印資料庫名和表名
l 使用示例:
範例 1 :查詢 192.168.3.135 中 1 天以前建立的 InnoDB 的表 , 並列印。
pt-find --ctime +1 --host=192.168.3.135 --engine InnoDB --user=roo t --password=zhang@123
範例 2 :查詢 192.168.3.135 中 1 天以前更改過的資料庫名字匹配 %hostsops% 的並且引擎為 MYISAM 的表,並將表的引擎更改為
InnoDB 引擎。
pt-find --mtime +1 --dblike hostsops --engine MyISAM --host=192.1 68.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 --passw ord=zhang@123 --exec-plus "DROP TABLE %s"
範例 4 :查詢 192.168.3.135 中超過 100M 的表:
pt-find --tablesize +100M --host=192.168.3.135 --user=root --passwo rd=zhang@123
3. pt-kill
l 功能介紹:
Kill 掉符合指定條件 mysql 語句
l 用法介紹:
pt-kill [OPTIONS]
假如沒有指定檔案的話 pt-kill 連線到 mysql 並通過 SHOW PROCESSLIST 找到指定的語句,反之 pt-kill 從包含 SHOW PROCESSLIST 結果的檔案中讀取 mysql 語句
l 使用示例:範例 1 :查詢 192.168.3.135 伺服器執行時間超過 60s 的語句,並列印
pt-kill --busy-time 60 --print --host=192.168.3.135 --user=root --pass word=zhang@123
範例 2 :查詢 192.168.3.135 伺服器執行時間超過 60s 的語句,並 kill
pt-kill --busy-time 60 --kill --host=192.168.3.135 --user=root --passw ord=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
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr)上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文CSDN地址: https://blog.csdn.net/lihuarongaini ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● QQ群號: 230161599(滿) 、618766405 ● 微 信群:可加我微 信,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ),註明新增緣由 ● 於 2019-07-01 06:00 ~ 2019-07-31 24:00 在西安完成 ● 最新修改時間:2019-07-01 06:00 ~ 2019-07-31 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店: https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麥苗出版的資料庫類叢書: http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班: http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁: https://lhr.ke.qq.com/ ........................................................................................................................ 使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2651466/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Percona-Toolkit工具包之pt-archiverHive
- percona-toolkit安裝方法和主要工具用途彙總介紹
- 安裝工具包太慢就用映象
- WIN10下ADB工具包安裝的教程和總結 --201809Win10
- tcping的安裝和使用TCP
- FTP的安裝和使用FTP
- GitLab 的安裝和使用Gitlab
- yarn的安裝和使用Yarn
- Go的安裝和使用Go
- Python的安裝和使用Python
- CMake的安裝和使用
- azkaban的安裝和使用
- ElasticSearch的安裝和使用,Postman的安裝,Kibana的安裝,EShead外掛的安裝ElasticsearchPostman
- webpack的安裝和基本使用Web
- VMware Workstation 的安裝和使用
- StegSolve安裝和使用
- 安裝和使用 Composer
- docker安裝和使用Docker
- Elasticsearch 安裝和使用Elasticsearch
- httprunner 安裝和使用HTTP
- hydra 安裝和使用
- ActiveMq安裝和使用MQ
- nvm和npm的安裝與使用NPM
- linux下Anaconda的安裝和使用Linux
- Orbeon form 的安裝和使用教程ORBORM
- windows下Redis的安裝和使用WindowsRedis
- pyenv的安裝和簡單使用
- mongodb macos 下的安裝和使用MongoDBMac
- matomo的安裝使用和體驗
- Meilisearch 安裝和使用教程
- Flarum 安裝和使用教程
- Metabase 安裝和使用教程
- 如何安裝和使用DockerDocker
- SSDB安裝和使用初探
- Sass 的入門安裝和基本使用
- Express 腳手架的安裝和使用Express
- vue-canvas-nest的安裝和使用VueCanvas
- IDEA的使用(1):IDEA的安裝和破解Idea