場景說明:
這個MySQL表損壞的場景是發生在2018年線上庫的某個月
當時MySQL的版本是MySQL5.6。
硬件:服務器的硬件配置是PowerEdge R320 Intel(R) Xeon(R) CPU E5-2403 v2 @ 1.80GHz * 4 4核心 8G內存,機械硬盤mysql
dr_stats表 因爲服務器意外宕機這個表損壞了。
此時正好這個dr_stats表的引擎爲myIsam。
這個表裏面是13362萬記錄數,這個表是myIsam的數據存儲引擎,因此即便是表損壞了,mysql的服務仍是能夠正常啓動和登陸mysql服務的,可是此時這個dr_stats表已經不能寫入數據了
在線修復這個表MyIsam的引擎的表 check table dr_stats 執行了24分鐘,repair table dr_stats 執行了30分鐘sql
mysql> use drsj; Database changed mysql> check table dr_stats; +---------------+-------+----------+---------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +---------------+-------+----------+---------------------------------------------------------+ | drsj.dr_stats | check | warning | Table is marked as crashed | | drsj.dr_stats | check | warning | 1 client is using or hasn't closed the table properly | | drsj.dr_stats | check | error | Checksum for key: 3 doesn't match checksum for records | | drsj.dr_stats | check | error | Corrupt | +---------------+-------+----------+---------------------------------------------------------+ 4 rows in set (24 min 57.36 sec) mysql>
mysql> mysql> repair table dr_stats; +---------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +---------------+--------+----------+----------+ | drsj.dr_stats | repair | status | OK | +---------------+--------+----------+----------+ 1 row in set (30 min 6.36 sec) mysql>
到此時,這個表完成了修復,能夠正常寫入數據了。服務器