MySQL

MySQL에서 테이블이 깨졌을때 복구하기

RYU™ 2011. 4. 26. 18:07
반응형

음.. 이런경우가 없었는데..
오늘 제가사용하는 디비가 깨졌는지 테이블 하나가 열리지 않더군요.
그래서 예전 백업본에서 다시 카피도 해 보고 하였지만..
잘 되지 않아.. 테이블 검색하고 오류 수정하는 myisamchk 라는 명령으로 복구를 하였습니다.

책을 보니 mysql 이 안정적이긴 하나 사용자의 실수나 하드웨어적인 문제, 테이블에 쓰기를 하는도중 정전, 서버가 제대로 종료되지 않았을때 이런 문제가 발생될수 있다고 하네요.

루트만이 복구를 할수가 있습니다.

우선..

사용하는 데이타의 디렉토리..

음..
/mysql 설치 디렉토리/var/디비명/ 에 해당하는 테이블 파일들이 있을 것입니다.
그럼 이곳에서 myisamchk 테이블명 하시면 됩니다.
대부분 99% 이상 복구가 가능합니다.

--extend-check 옵션을 주면 좀더 정확하게 검사하고요.
시간이 좀더 걸립니다.

그리고..
myisamchk를 실행할때는 mysql 서버를 중단 하십시요.
서버가 실행중일때 myisamchk를 실행하는 것은 위험할 수 도 있습니다.

그리고..
이 명령을 실행하기 전에..
꼭 디비는 백업받아 놓으시고요.

유용한 정보가 되시길 바라며.. 이만.. ^^

반응형