[MySQL] table marked as crashed and should be repaired

RojerChen 2014.09.11

不知道是不是人品的關係,目前我維護的 MySQL 好像每隔半年左右就會有資料表發生 table marked as crushed and should be repaired 的狀況,雖然說是可以透過管理工具來修復,但是往往狀況發生的時候,都是客戶告訴你系統有問題,然後你再花不少時間去檢查到底那兒出狀況了,檢查檢查才發現倒是資料表又出問題了。

為了避免這樣的狀況一再的發生,只好寫程式來處理一下,目前我是這樣處理的:


  1. show table status from db_name

    先透過這個語法來取得 Name 和 Comment,Name 也就是 Table 的名稱,而如果資料表有問題,Comment 的內容就會記錄 marked as crush 這樣的紀錄,所以我只針對 marked as crush 的來做處理

  2. repair table table_name

    既然可以知道那些資料表有問題需要修復,接下來就是透過這樣的指令來修復資料表
剩下就是透過排程定時檢查系統,當資料表有問題的時候,就自動進行修復,並且將相關的資料寄信給管理人員。只是~~當我程式寫好後執行到現在系統都還蠻正常的,只能先祈禱下次有問題的時候,能夠派上用場囉!

    Blogger Comment

0 意見: