萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> 常用mysql數據庫工具簡介

常用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,不過他的使用更加簡單靈活。

copyright © 萬盛學電腦網 all rights reserved