MySQL數據庫維護手冊

一、每天做的

(一)確保mysql啓動並運行。

查看mysql進程是否運行正常,具體命令是ps -ef|grep mysqltop檢查mysql的運行。以下是一個例子:

(二)檢查管理員錯誤日誌和慢查詢日誌。

管理員錯誤日誌爲DBA準備,它記錄了mysqld當啓動和停止,以及服務器在運行過程中發生的任務號嚴重錯誤是的相關信息。用—log-error指定路徑。命令:

命令:tail -f /var/log/mysql/mysqld.err

慢日誌文件爲開發人員而準備,記錄了所有執行時間超過參數long_query_time 的sql語句。查看:show variables like 'long%';修改:set long_query_time=2。

命令1:mysqldumpslow /var/run/mysqld/mysqld-slow.log 彙總查看

命令2:tail -100 /var/run/mysqld/mysqld-slow.log|more     直接文本文件查看

(三)檢查昨天晚上的備份是否成功。

晚上備份如果有錯或沒有存放在安全的地方,那麼對日後的恢復來說簡直就是災難。確認備份成功的命令是:

1、查看備份日誌記錄:tail –f /var/bak/mysql_bak_log.log

2、備份的文件:cat /var/bak/2012-03-07/IDM_bak.sql|more

3、可以每天把備份的結果和內容email發送給相關人員

4、異地備份文件

(四)查看數據庫日誌文件是否歸檔成功。

此處說的日誌是mysql數據庫的二進制日誌,記錄着DDL和DML語句,但不包括查詢語句。此日誌對於災難是的數據恢復起着重要作用。用—log-bin指定路徑。

命令:mysqlbinlog  /var/lib/mysql/mysqld-bin.000555

(五)檢查並確認數據庫和管理系統的配置參數沒有被更改。

在有多個管理員的數據庫環境下,經常會發生某個管理員改動配置參數而其他管理員不知曉的情況,所以管理員需要檢查數 據庫相關配置文件的正確性。

命令:show variables;

將這些命令的結果輸出到一個文件,文件名可寫上當時的時間,比如結果文件名" MYSQL_20120315.txt" ;使用UltraEdit文件的比較功能比較昨天的配置文件有無改變。

(六)查看數據庫程序的工作負載。(不會)

對一個在線事務處理系統(OLTP)來說,緩衝池的利用比率是非常重要的。數據倉庫應用中不可能有非常高的緩衝池利用率,所以根據工作負載量來進行各項性能檢查就顯得很重要了。

(七)確信還有足夠的剩餘內存空間可供數據庫使用。

察看服務器上的總內存大小和MySQL數據庫佔用的內存大小情況是很重要的一件事,在Unix/Linux平臺下使用free命令將顯示出系統的總內存大小以及被應用程序佔用掉的內存大小,和當前系統剩餘可用的內存大小。

(八)每天建議學習MySQL的相關知識。

廣泛的閱讀相關資料,比如"MysQL手冊"對數據庫管理員有幫助。跟mysql維護的人多多交流。

二、每週做的

(一)查找新的數據庫對象。

察看是否有人在你的生產型數據庫中建立了新的數據庫對象(比如,表、索引、存儲進程)也是一件重要的事情。新對象 的出現,一般意味着服務器上有新的應用出現了,否則新出現的對象會影響到系統操作的特性。另外新對象也會消耗掉系統的一部分存儲空間,如果是非管理員建立 的新數據庫對象將可能會對數據庫表空間和運行效率產生不良影響。

查看錶狀態:show table status; 跟上週比較結果,分析新增表

查看索引的性能: show status like "Handler_read%"; Handler_read_key 值高表示索引效果好,Handler_read_rnd_next值高表示索引低效。

(二)查找需要重新組織的表或索引。

當在表上插入、更新、刪除記錄行時,表中的數據需要重新組織,以便使索引、空間、記錄等能更優化地存在。根據每個增加的表分析表結構和索引是否合理,不合理的話找相關人員修改。

(三)查找最活躍的10張表。(沒有此項功能)

(四)將所有二進制日誌文件歸檔處理。

這些日誌文件需要每週做處理,保存以便將來調查分析,先壓縮在刪除,節省存儲空間。(空閒時間維護)

二進制日誌的刪除:

1、mysql> reset master; (刪除所有日誌文件)

2、mysql> purge master logs to‘mysqld-bin.000022’;(刪除000222之前的文件)

3、mysql> purge master logs before‘yyyy-mm-dd hh:mm:ss’;(刪除定義時間之前的文件)

4、設置參數—expire_logs_days=5,自動刪除5天前的日誌文件(不用,定期壓縮日誌,定期備份)

(五)注意檢查並更新軟件到新版本。

當系統平穩運行時,一般不需要升級或補丁自己的MySQL軟件。可關注的MySQL的最新變化。

三、每月做的

(一)查找異常增長的指示器。

回顧表空間在過去的一個月時間裏,增長了多少,發現特別消耗空間的表,以便提前做預處理。表大小=數據大小 + 索引大小;

SQL> SHOW TABLE STATUS FROM 數據庫名 LIKE 數據表名;
SQL>select table_name,data_length from information_schema.tables;

(二)根據增長適當規劃數據庫系統的擴張問題。

比較你收集到的處理器、內存、以及磁盤利用率等系統級信息,規劃MySQL數據庫對象今後擴展的對策。

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