어제 서버가 갑자기 다운되어서 강제 리부팅을 한 후 웹페이지를 보니 아래와 같은 에러가 발생하였다.
[에러 내용]
ERROR 1194 (HY000): Table '테이블명' is marked as crashed and should be repaired
mysql server version : mysql-server-5.0.45
[해결 방법]
1. 반드시 백업을 한다.
tar cvfpz xxx_20091223.tar.gz ./디비명
2. 분산된 인덱스를 다시 정렬
mysql> analyze table 테이블명 (쉘에서 수행되는 myisamchk --analyze 와 같은 명령이다.)
analyze : myisam, bdb, innodb에 적용된다. analyze가 수행되는 동안에는 myisam과 bdb는 read에 lock가 걸리며 innodb에는 쓰기에 lock가 걸린다.
수행결과 출력 형태는 다음과 같다.
인덱스가 다시 정렬되면 "show index from 테이블명" 으로 확인할 수 있다.
[참고] mysql reference
3. repair table 테이블명 (쉘에서 수행되는 myisamchk --recover 와 같은 명령이다)
수행결과 출력 형태는 다음과 같다.
이와 같은 형태로 repair할때 여러 행이 출력되는데 중요한 것은 맨 마지막 라인에 Msg_type에는 status가 출력되어야 하며 Msg_text에는 OK가 출력되어야 한다.
그렇지 않을경우 repair가 제대로 수행되지 않은 경우이므로 이럴 경우에는 쉘에서 "myisamchk --safe-recover *.MYI"를 실행해야 한다.
[참고] mysql reference
[에러 내용]
ERROR 1194 (HY000): Table '테이블명' is marked as crashed and should be repaired
mysql server version : mysql-server-5.0.45
[해결 방법]
1. 반드시 백업을 한다.
tar cvfpz xxx_20091223.tar.gz ./디비명
2. 분산된 인덱스를 다시 정렬
mysql> analyze table 테이블명 (쉘에서 수행되는 myisamchk --analyze 와 같은 명령이다.)
analyze : myisam, bdb, innodb에 적용된다. analyze가 수행되는 동안에는 myisam과 bdb는 read에 lock가 걸리며 innodb에는 쓰기에 lock가 걸린다.
수행결과 출력 형태는 다음과 같다.
Column | Value |
Table | The table name |
Op | Always analyze |
Msg_type | status , error , info , or warning |
Msg_text | An informational message |
인덱스가 다시 정렬되면 "show index from 테이블명" 으로 확인할 수 있다.
[참고] mysql reference
3. repair table 테이블명 (쉘에서 수행되는 myisamchk --recover 와 같은 명령이다)
수행결과 출력 형태는 다음과 같다.
Column | Value |
Table | The table name |
Op | Always repair |
Msg_type | status , error , info , or warning |
Msg_text | An informational message |
이와 같은 형태로 repair할때 여러 행이 출력되는데 중요한 것은 맨 마지막 라인에 Msg_type에는 status가 출력되어야 하며 Msg_text에는 OK가 출력되어야 한다.
그렇지 않을경우 repair가 제대로 수행되지 않은 경우이므로 이럴 경우에는 쉘에서 "myisamchk --safe-recover *.MYI"를 실행해야 한다.
[참고] mysql reference
댓글
댓글 쓰기