常用mysql數據庫工具簡介

jopen 11年前發布 | 22K 次閱讀 MySQL 數據庫服務器

status系列

Mysql提供了一系列命令來獲取數據庫的運行狀態,其中最常用的主要有show status;show innodb status;show processlist; show mutex status。通過這些命令我們可以了解到數據庫和存儲引擎io,內存,鎖等詳細信息。

參考資料:http://wiki.babel.baidu.com/twiki/bin/view/Com/Ns/Mysqlstatus

監控工具――Mysqlreport

上面列出的各種status命令,能夠方便地實時查看。 若需要長期監控,則需要工具對這些信息進行整理匯總。目前常見的mysql監控有mysqlreport、mysqlsla、innotop,還有公司內部開發的Mysql-mon。其中mysqlreport和mysql-mon屬于狀態統計類型。

數據來源:

[mysql]show global status

[mysql]Show Global Variables

[mysql]Show Full Processlist

[系統] vmstat/iostat/mpstat

由于上述參數復雜,因此監控工具抽取重要的信息,以方便查看的方式顯示,并記錄都在日志中。

Mysqlreport是一款支持周期生成報表的工具。

從mysqlreport報表中能夠得到的信息有分為一下幾類:

1、總體數據:包括讀寫總請求、接收/發送總數據量、慢查詢次數

2、DMS(數據操作描述):各種數據操作分布(select、update等)、查詢和排序次數分布

3、Cache:包括cache命中率、cache操作次數及比例(查詢命中率、插入次數、修改次數的比例)

4、表: 包括表鎖次數、打開表文件個數、臨時表類型分布、最大連接數等

5、InnoDB相關:包括innodb 數據內容讀寫次數、數據頁面創建/讀寫次數、數據行操作次數(增刪改查語句分布)

參考資料:

http://wiki.babel.baidu.com/twiki/bin/view/Com/Ns/MysqlTool

http://hackmysql.com/mysqlreport

監控工具――Mysqlsla

mysqlreport可以協助我們了解MySQL的健康狀況以及MySQL大部份時間在處理什么類型的Query,但我們在調查慢查詢時,想知道MySQL 實際上到底是把 CPU 運算時間花在哪些 Query 上?這個問題必須從MySQL的Log才可知。

Mysqlsla的數據來源為mysql提供的三類log:Binary Log、General Log和Slow Log。

對于慢sql統計信息, 包括 平均執行時間, 等待鎖時間, 結果行的總數, 掃描的行總數。提供結果格式如下:

項目 說明

Count sql的執行次數及占總的slow log數量的百分比

Time 執行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比

95% of Time 去除最快和最慢的sql, 覆蓋率占95%的sql的執行時間.

Lock Time 等待鎖的時間

95% of Lock 95%的慢sql等待鎖時間

Rows sent 結果行統計數量, 包括平均, 最小, 最大數量

Rows examined 掃描的行數量

Database 屬于哪個數據庫

Users 哪個用戶,IP, 占到所有用戶執行的sql百分比

Query abstract 抽象后的sql語句

Query sample sql語句

參考資料:http://hackmysql.com/mysqlsla

監控工具――innotop

innotop是一個針對innodb引擎的監控工具。

與上訴的幾個工具不同,這是一個類似于top的工具,能夠實時顯示innodb的各種參數變化。

更強悍的是,能夠在執行過程中能夠查看各個線程的執行狀態、查看死鎖信息;

能夠通過輸入命令行參數,選取不同的模式,查看線程內部信息

參考資料:http://code.google.com/p/innotop/

http://wiki.babel.baidu.com/twiki/bin/view/Com/Ns/MysqlTool

監控工具――Mysql-mon

Mysql-mon是百科開發的,內部應用的監控工具。采用C語言開發,對數據庫負載幾乎為0。可用于 :

數據庫系統狀態監控\分源連接數監控\數據量、索引量監控\字段范圍監控數據庫同步監控

參考資料:http://wiki.babel.baidu.com/twiki/bin/view/Com/Main/Mysql-mon

表壓縮工具――myisampack

Myisampack是一個表壓縮工具,可以使用很高的壓縮率來對MyIsam存儲引擎的表進行壓縮,使得壓縮后的表占用比壓縮前小得多的磁盤空間。但是壓縮后的表也將稱為一個只讀表,不能進行DML操作。

參考資料: http://dev.mysql.com/doc/refman/5.0/en/myisampack.html

管理工具――mysqlamdin

Mysqladmin是一個執行管理操作的客戶端程序。可以用來檢查服務器的配置和當前的狀態,創建并刪除數據庫等。

參考資料: http://dev.mysql.com/doc/refman/5.1/en/mysqladmin.html

日志管理工具――mysqlbinlog

由于服務器生成的日志文件以二進制格式保存,所以如果要想檢查這些文件的文本格式,就會用到mysqlbinlog日志管理工具。

參考資料:http://dev.mysql.com/doc/refman/6.0/en/mysqlbinlog.html

表維護工具――mysqlcheck

Mysqlcheck客戶端工具可以檢查和修復myisam表,還可以優化和分析表。實際上,它繼承了mysql工具中check、repair、analyze、optimize的功能。

參考資料:http://dev.mysql.com/doc/refman/5.1/en/mysqlcheck.html

數據導出工具――mysqldump

Mysqldump客戶端工具用來備份數據庫或在不同數據庫之間進行數據遷移。備份內容包含創建表或裝載表的sql語句。

參考資料:http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

數據導入工具――mysqlimport

Mysqlimport是客戶端導入工具,用于導入mysqldump加-T選項后導出的文本文件。

參考資料:http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html

表熱備份工具――mysqlhotcopy

Mysqlhotcopy是一個perl腳本,它使用lock tables、flush tables、cp或scp來快速備份數據庫。僅限于在linux/unix下熱備份myisam數據表。

參考資料:http://dev.mysql.com/doc/refman/5.1/en/mysqlhotcopy.html

數據庫對象查看工具――mysqlshow

Mysqlshow是客戶端對象查看工具,用來很快地查找存在哪些數據庫、數據庫中的表、表中的列或索引。

參考資料:http://dev.mysql.com/doc/refman/5.1/en/mysqlshow.html

錯誤代碼查看工具――perror

在mysql使用過程中,可能會出現各種各樣的error,這些error有些是由于操作系統引起的,有些是由于存儲引擎使用不當引起的。這些error都有一個整型的錯誤代碼。Perror的作用是解釋這些錯誤代碼的詳細含義。

參考資料:http://dev.mysql.com/doc/refman/5.0/en/perror.html

文本替換工具――replace

Replace是mysql自帶的一個對文件中的字符串進行替換的工具,類似于linux下的sed,不過他的使用更加簡單靈活。

參考資料:http://dev.mysql.com/doc/refman/5.1/en/replace-utility.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!