1. 備份資料
由於MySQL資料庫是基於磁碟的檔案,普通的備份系統和例程就能備份MySQL的資料。但是,由於這些檔案總是處於開啟和使用狀態,普通的檔案副本備份不一定總是有效。
以下是這個問題的可能解決方案:
- 使用命令列實用程式mysqldump轉儲所有資料庫內容到某個外部檔案。在進行常規備份前這個實用程式應該正常執行,以便能正確地備份轉儲檔案。
- 可用命令列實用程式mysqlhotcopy從一個資料庫複製所有資料(並非所有資料庫引擎都支援這個實用程式)。
- 可以使用MySQL的backup table或select into outfile轉儲所有資料到某個外部檔案。這兩條語句都接受將要建立的系統檔名,此係統檔案必須不存在,否則會出錯。資料可以用restore table來複原。
為了保證所有資料被寫到磁碟(包括索引資料),可能需要在進行備份前使用flush tables語句。
2. 進行資料庫維護
以下語句可以用來保證資料庫正確和正常執行:
- analyze table,用來檢查表鍵是否正確。
- check table用來針對許多問題對錶進行檢查。在MyISAM表上還對索引進行檢查。check table支援一系列的用於MyISAM表的方式。changed檢查自最後一次檢查以來改動過的表。extended執行最徹底的檢查,fast只檢查未正常關閉的表,medium檢查所有被刪除的連結並進行鍵檢驗,quick只進行快速掃描。
3. 診斷啟動問題
在排除系統啟動問題時,首先應該儘量用手動啟動伺服器。MySQL伺服器自身通過在命令列上執行mysqld啟動。下面是幾個重要的mysqld命令列選項:
- –help顯示幫助——一個選項列表;
- –safe-mode裝載減去某些最佳設定的伺服器;
- –verbose顯示全文字訊息(為獲得更詳細的幫助訊息與–help聯合使用);
- –version顯示版本資訊然後退出。
4. 檢視紀錄檔檔案
主要的紀錄檔檔案有以下幾種:
- 錯誤紀錄檔。它包含啟動和關閉問題以及任意關鍵錯誤的細節。此紀錄檔通常名為hostname.err,位於data目錄中。此紀錄檔名可用–log-error命令列選項更改。
- 查詢紀錄檔。它記錄所有MySQL活動,在診斷問題時非常有用。此紀錄檔檔案可能會很快地變得非常大,因此不應該長期使用它。此紀錄檔通常名為hostname.log,位於data目錄中。此名字可以用–log命令列選項更改。
- 二進位制紀錄檔。它記錄更新過資料(或者可能更新過資料)的所有語句。此紀錄檔通常名為hostname-bin,位於data目錄內。此名字可以用–log-bin命令列選項更改。注意,這個紀錄檔檔案是MySQL5中新增的,以前的MySQL版本中使用的是更新紀錄檔。
- 緩慢查詢紀錄檔。顧名思義,此紀錄檔記錄執行緩慢的任何查詢。這個紀錄檔在確定資料庫何處需要優化很有用。此紀錄檔通常名為hostname-slow.log , 位於data 目錄中。此名字可以用
–log-slow-queries命令列選項更改。
在使用紀錄檔時,可用flush logs語句來重新整理和重新開始所有紀錄檔檔案。
ANALYZE TABLE orders;
CHECK TABLE orders, orderitems;