[OS]/Linux

깨진 mysql 테이블 복구 - 블로그(textcube) 데이터베이스

하늘을닮은호수M 2008. 9. 24. 10:33
반응형

리눅스 서버를 가끔 잘못해서 그냥 종료시킬 때가 있었는데,
그렇게 되면 가끔 중요한 파일들이 깨지는 경유가 발생한다.
이번 경우도 그런 것으로
운영중인 블로그에 로그인이 안 되는 것이었다.
어렵게 어렵게 찾아낸 원인은 블로그의 데이터베이스 파일 중 하나가 깨져서였다.
해서 해당 테이블을 복구하도록 하였다.
복구 방법은 잘 설명된 아래 사이트를 참고하였다.

출처 : http://blog.naver.com/leolo?Redirect=Log&logNo=70024411307
Table 'xxxxxxxx' is marked as crashed and should be repaired..


analyze table tableName; ==> 테이블에 대한 보고서 작성
repair table tableName; ==> 테이블 복원

여러번 시도해서 복구가 안될때에는  myisamchk로 복구한다.(DB 서버를 끄고 할것)


mysql> repair table CALLUSE;
+-----------------+--------+----------+----------------------------------------------+
| Table           | Op     | Msg_type | Msg_text                                     |
+-----------------+--------+----------+----------------------------------------------+
| DBERING.CALLUSE | repair | info     | Wrong bytesec:   0-  0-  0 at 40584; Skipped |
| DBERING.CALLUSE | repair | warning  | Number of rows changed from 1239 to 1236     |
| DBERING.CALLUSE | repair | status   | OK                                           |
+-----------------+--------+----------+----------------------------------------------+
3 rows in set (0.08 sec)


mysql> analyze table CALLUSE;
+-----------------+---------+----------+-----------------------------+
| Table           | Op      | Msg_type | Msg_text                    |
+-----------------+---------+----------+-----------------------------+
| DBERING.CALLUSE | analyze | status   | Table is already up to date |
+-----------------+---------+----------+-----------------------------+
1 row in set (0.00 sec)


mysql> repair table CALLUSE;
+-----------------+--------+----------+----------+
| Table           | Op     | Msg_type | Msg_text |
+-----------------+--------+----------+----------+
| DBERING.CALLUSE | repair | status   | OK       |
+-----------------+--------+----------+----------+
1 row in set (0.02 sec)



AP정상적으로 INSERT됨.
23:33:33.830410 > TRACE :[ep_client.c.230] recvEpoint() iLen(116)
23:33:33.830451 > TRACE :[recvThread] >> Recv Packet!
23:33:33.830470 > TRACE :[make_queueItem] from:3, msgid:10205001, bodylen:100
23:33:33.830672 > TRACE :[msgHandler:0] >> pop Data
23:33:33.830809 > TRACE :[On_CMD_VMS_STATISTIC] phone:3117,calling_number:0000,
                start_time:2007-11-20 23:33:28,end_time:2007-11-20 23:33:28,teltime:00:00:00,in_out:3,type:1
23:33:33.830830 > TRACE :[db_insert] query(insert into CALLUSE(phone, calling_number, start_time, end_time, tel_time, in_out, call_type) values('3117','0000','
007-11-20 23:33:28','2007-11-20 23:33:28','00:00:00',3, 1)) size(175)
23:33:33.831538 > TRACE :[db_insert] mysql Alive!!
23:33:33.832147 > TRACE :[db_insert] Success!
23:33:33.832168 > TRACE :[On_CMD_VMS_STATISTIC] Success!!!

반응형