MySQL必知必會——第29章 數據庫維護 讀書筆記

本章學習如何進行常見的數據庫維護

1 備份數據
MySQL的數據也必須經常備份。
由於MySQL數據庫是基於磁盤的文件,普通的備份系統和例程就能備份MySQL數據。但是由於這些文件總是處於打開和使用狀態,普通的文件副本備份不一定總是有效。
下面列出這個問題的解決方案:
①使用命令行實用程序mysqldump轉儲所有數據庫內容到某個外部文件。在進行常規備份前這個實用程序應該正常運行,以便能正確地備份存儲文件。
②可用命令行實用程序mysqlhotcopy從一個數據庫複製所有數據(並非所有數據庫引擎都支持這個實用程序)。
③可以使用MySQL的backup table或select into outfile轉儲所有數據到某個外部文件。這兩條語句都接收將要創建的系統文件名,此係統文件必須不存在,否則會出錯。數據可以用restore table來複原。
首先刷新未寫數據:爲了保證所有數據被寫到磁盤(包括索引數據),可能需要在進行備份前使用flush tables語句。
2 進行數據庫維護
MySQL提供了一系列語句,可以用來保證數據庫正確和正常運行。
①analyze table用來檢查表鍵是否正確。analyze table返回如下所示狀態信息:
在這裏插入圖片描述
②check table用來針對許多問題對錶進行檢查。在MyISAM表上還對索引進行檢查。check table支持一系列的用於MyISAM表的方式。
changed檢查自最後一次檢查以來改動過的表。
extended執行最徹底的檢查。
fast只檢查未正常關閉的表。
medium檢查所有被刪除的鏈接並進行鍵檢驗。
quick只進行快速掃描。
check table發現和修復問題:

check table orders,orderitems;

在這裏插入圖片描述
③如果MyISAM表訪問產生不正確和不一致的結果,可能需要用repeat table來修復相應的表。這條語句不應該經常使用,如果需要經常使用,可能會有更大的問題要解決。
④如果從一個表中刪除大量數據,應該使用optimize table來收回所用的空間,從而優化表的性能。
3 診斷啓動問題
服務器啓動問題通常在對MySQL配置或服務器本身進行更改時出現。MySQL在這個問題發生時報告錯誤,但由於多數MySQL服務器是作爲系統進程或服務自動啓動時,這些消息可能看不到。
在排除系統啓動問題時,首先應該儘量用手動啓動服務器。MySQL服務器自身通過在命令行上執行mysqld啓動。下面是幾個重要的mysqld命令行選項:

–help 顯示幫助——一個選項列表;
–safe-mode裝載減去某些最佳配置的服務器;
–verbose顯示全文本消息(爲獲得更詳細的幫助消息與–help聯合使用);
–version顯示版本信息然後退出。
4 查看日誌文件
MySQL維護管理員依賴的一系列日誌文件。主要的日誌文件有以下幾種:
①錯誤日誌。它包含啓動和關閉問題以及任意關鍵錯誤的細節。此日誌通常名爲hostname.err,位於data目錄中。此日誌名可用–log-error命令行選項更改。
②查詢日誌。它記錄所有MySQL活動,在診斷問題時非常有用。此日誌文件可能會很快地變得非常大,因此不應該長期使用它。此日誌通常名爲hostname.log,位於data目錄中。此名字可以用–log命令行選項更改。
③二進制日誌。它記錄更新過數據(或者可能更新過數據)的所有語句。此日誌通常名爲hostname-bin,位於data目錄內。此名字可以用–log-bin命令行選項更改。注意這個日誌是MySQL5中添加的。
④緩慢查詢日誌。此日誌記錄執行緩慢的任何查詢。這個日誌在確定數據庫何處需要優化很有用。此日誌通常名爲hostname-slow.log,位於data目錄。此名字可以用–log-slow-queries命令行選項更改。
在使用日誌時,可用flush logs語句來刷新和重新開始所有日誌文件。

小結
本章介紹了MySQL數據庫的某些維護工具和技術。

發佈了95 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章