[MySQL] 數據庫複製異常恢復之Error_code: 126 (Incorrect key file)

報錯: Error 'Incorrect key file for table './somedb/sometable.MYI'; try to repair it' on query. Default database: 'somedb'. Query: 'delete FROM somedb.sometable where unix_timestamp(now()) - unix_timestamp(eventTime)>60*60*24*@a'
恢復:修復表
根據報錯,出錯的表是sometable
(1)    stop slave
mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)

(2)    檢查表sometable

mysql> check table sometable;
+------------------+-------+----------+----------------------------------------------------------+
| Table            | Op    | Msg_type | Msg_text                                                 |
+------------------+-------+----------+----------------------------------------------------------+
| somedb.sometable | check | warning  | Table is marked as crashed                               |
| somedb.sometable | check | warning  | 2 clients are using or haven't closed the table properly |
| somedb.sometable | check | error    | Found 2487557 keys of 2487558                            |
| somedb.sometable | check | error    | Corrupt                                                  |
+------------------+-------+----------+----------------------------------------------------------+
4 rows in set (3.48 sec)

(3)    修復表sometable

mysql> repair table sometable;
+------------------+--------+----------+------------------------------------------------+
| Table            | Op     | Msg_type | Msg_text                                       |
+------------------+--------+----------+------------------------------------------------+
| somedb.sometable | repair | warning  | Number of rows changed from 2487558 to 2487434 |
| somedb.sometable | repair | status   | OK                                             |
+------------------+--------+----------+------------------------------------------------+
2 rows in set (44.75 sec)

再次檢查sometable

mysql> check table sometable;
+------------------+-------+----------+----------+
| Table            | Op    | Msg_type | Msg_text |
+------------------+-------+----------+----------+
| somedb.sometable | check | status   | OK       |
+------------------+-------+----------+----------+
1 row in set (5.86 sec)

(4)    start slave
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
查看數據庫狀態,恢復正常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章