一:MySQL中MyISAM表損壞原因總結:
1、 伺服器突然斷電導致資料檔案損壞;強制關機,沒有先關閉mysql 服務;mysqld 進程在寫表時被殺掉。
2、 磁碟損壞。
3、 伺服器死機。
4、 mysql 本身的bug 。
二:MySQL中MyISAM表損壞的癥狀總結:
1 、查詢資料時報出錯誤:Incorrect key file for table: '...'. Try to repair it
2 、查詢不能在表中找到行或返回不完全的資料。
3 、Error: Table '...' is marked as crashed and should be repaired 。
4 、開啟表失敗: Can’t open file: ‘×××.MYI’ (errno: 145) 。
三:MySQL中MyISAM表損壞的預防:
1 、定期檢查MyISAM 表。可以使用myisamchk,也可以使用mysqlcheck,還可以使用check table。
2 、在做過大量的更新或刪除操作後,使用mysqlcheck或者optimize table來最佳化表,這樣既減少了檔案片段,又減少了表損壞的機率。 3 、關閉伺服器前,先關閉mysqld (正常關閉服務,不要使用kill -9 來殺進程)。
4 、使用ups 電源,避免出現突然斷電的情況。
5 、使用最新的穩定發布版mysql ,減少mysql 本身的bug 導致表損壞。
6 、對磁碟做raid ,減少磁碟出錯並提高效能。
7 、資料庫伺服器最好只跑mysqld 和必要的其他服務,不要跑其他商務服務,這樣減少死機導致表損壞的可能。
四:MySQL中MyISAM表損壞的修複總結:
1 、如果mysqld已經宕掉,且無法啟動,那麼可以通過mysiamchk工具來進行修複。此工具在mysqld服務沒有啟動時才可以使用。該工具可以檢查並分析修複MyISAM表。
2 、如果mysqld仍在運行,或者可以重新啟動,那麼可以通過mysqlcheck工具來進行修複。或者直接通過mysql的內建修複SQL語句來修複:CHECK TABLE,REPAIR TABLE ,ANALYSE TABLE,OPTIMIZE TABLE。這兩種方法可以同樣達到對錶的修複作用。 以上兩種方式各有應用情境。
1、 伺服器突然斷電導致資料檔案損壞;強制關機,沒有先關閉mysql 服務;mysqld 進程在寫表時被殺掉。
2、 磁碟損壞。
3、 伺服器死機。
4、 mysql 本身的bug 。
二:MySQL中MyISAM表損壞的癥狀總結:
1 、查詢資料時報出錯誤:Incorrect key file for table: '...'. Try to repair it
2 、查詢不能在表中找到行或返回不完全的資料。
3 、Error: Table '...' is marked as crashed and should be repaired 。
4 、開啟表失敗: Can’t open file: ‘×××.MYI’ (errno: 145) 。
三:MySQL中MyISAM表損壞的預防:
1 、定期檢查MyISAM 表。可以使用myisamchk,也可以使用mysqlcheck,還可以使用check table。
2 、在做過大量的更新或刪除操作後,使用mysqlcheck或者optimize table來最佳化表,這樣既減少了檔案片段,又減少了表損壞的機率。 3 、關閉伺服器前,先關閉mysqld (正常關閉服務,不要使用kill -9 來殺進程)。
4 、使用ups 電源,避免出現突然斷電的情況。
5 、使用最新的穩定發布版mysql ,減少mysql 本身的bug 導致表損壞。
6 、對磁碟做raid ,減少磁碟出錯並提高效能。
7 、資料庫伺服器最好只跑mysqld 和必要的其他服務,不要跑其他商務服務,這樣減少死機導致表損壞的可能。
四:MySQL中MyISAM表損壞的修複總結:
1 、如果mysqld已經宕掉,且無法啟動,那麼可以通過mysiamchk工具來進行修複。此工具在mysqld服務沒有啟動時才可以使用。該工具可以檢查並分析修複MyISAM表。
2 、如果mysqld仍在運行,或者可以重新啟動,那麼可以通過mysqlcheck工具來進行修複。或者直接通過mysql的內建修複SQL語句來修複:CHECK TABLE,REPAIR TABLE ,ANALYSE TABLE,OPTIMIZE TABLE。這兩種方法可以同樣達到對錶的修複作用。 以上兩種方式各有應用情境。