摘要: 本篇博客僅做爲筆記,若有侵權,請聯繫,當即刪除(網上找博客學習,而後手記筆記,因紙質筆記不便保存,因此保存到網絡筆記)。mysql
本博學習如何進行常見的數據庫維護。sql
1、備份數據數據庫
像全部數據同樣,,MySQL的數據也必須常常備份。因爲MySQL數據庫是基於磁盤的文件,普通的備份系統和例程就能備份MySQL的數據。可是,因爲這些文件老是處於打開和使用狀態,普通的文件副本備份不必定老是有效。服務器
下面列出這個問題的可能解決方案。網絡
(1)使用命令行實用程序mysqldump轉儲全部數據庫內容到某個外部文件。在進行常規備份前這個實用程序應該正常運行,以便能正確地備份轉儲文件。工具
(2)可用命令行使用程序mysqlhotcopy從一個數據庫複製全部數據(並不是全部數據庫引擎都支持這個使用程序)。性能
(3)可使用MySQL的BACKUP TABLE或SELECT INTO OUTFILE轉儲全部數據到某個外部文件。這兩條語句都接受將要建立的系統文件名,此係統文件必須不存在,不然會出錯。數據能夠用RESTORE TABLE來複原。學習
注意:首先刷新未寫數據 爲了保證全部數據被寫到磁盤(包括索引數據),可能須要在進行備份前使用FLUSH TABLES語句。優化
2、進行數據庫維護spa
MySQL提供了一系列的語句,能夠(應該)用來保證數據庫正確和正常運行。
如下是你應該知道的一些語句。
(1)ANALYZE TABLE,用來檢查表鍵是否正確。ANALYZE TABLE返回以下所示的狀態信息:
ANALYZE TABLE orders;
(2)CHECK TABLE用來針對許多問題對錶進行檢查。在MyISAM表上還對索引進行檢查。CHECK TABLE支持一系列的用於MyISAM表的方式。CHANGED檢查自最後一次檢查一來改動過的表。EXTENDED執行最完全的檢查,FAST只檢查未正常關閉的表,MEDIUM檢查全部被刪除的連接並進行鍵檢驗,QUICK只進行快速掃描。以下所示,CHECK TABLE發現和修復問題:
CHECK TABLE orders,orderitems;
(1)若是MyISAM表訪問產生不正確和不一致的結果,可能須要用REPAIR TABLE來修復相應的表。這條語句不該該常用,若是須要常用,可能會有更大的問題要解決。
(2)若是從一個表中給刪除大量數據,應該使用OPTIMIZE TABLE來收回所用的空間,從而優化表的性能。
3、診斷啓動問題
服務器啓動問題一般在對MySQL配置或服務器自己進行更改時出現。MySQL在這個問題發生時報告錯誤,但因爲多數MySQL服務器是做爲系統進程或服務自動啓動的,這些消息可能看不到。
在排除系統啓動問題時,首先應該儘可能用手動啓動服務器。MySQL服務器自身經過在命令行上執行mysqld啓動。下面是幾個重要的mysqld命令行選項:
(1)--help顯示幫助--一個選項列表;
(2)--safe-mode裝載減去某些最佳配置的服務器;
(3)--verbose顯示全文本消息(爲得到更詳細的幫助消息與--help聯合使用);
(4)--version顯示版本信息而後退出。
幾個另外的命令行選項(與日誌文件的使用有關)在下一節列出。
4、查看日誌文件
MySQL維護管理員依賴的一系列日誌文件。主要的日誌文件有如下幾種。
(1)錯誤日誌。它包含啓動和關閉問題以及任意關鍵錯誤的細節。此日誌一般名爲hostname.err,位於data目錄中。此日誌名可用--log-error命令行選項更改。
(2)查詢日誌。它記錄全部MySQL活動,在診斷問題時很是有用。此日誌文件可能會很快地變得很是大,所以不該該長期使用它。此日誌一般名爲hostname.log,位於data目錄中。此名字能夠用--log命令行選項更改。
(3)二進制日誌。它記錄更新過數據(或可能更新過數據)的全部語言。此日誌一般名爲hostname-bin,位於data目錄內。此名字能夠用--log-bin命令行選項更改。注意,這個日誌文件是MySQL 5中添加的,之前的MySQL版本中使用的是更新日誌。
(4)緩慢查詢日誌。顧名思義,此日誌記錄執行緩慢的任何查詢。這個日誌在肯定數據庫何處須要優化頗有用。此日誌一般名爲hostname-slow.log,位於data目錄中。此名字能夠用--log-slow-queries命令行選項更改。
在使用日誌時,可用FLUSH LOGS語句來刷新和從新開始全部日誌文件。
5、小結
本博介紹了MySQL數據庫的某些維護工具和技術。