mysql table 복구 방법

리눅스/MySQL|2015. 1. 16. 10:46
반응형

혹, mysql 도 정상 구동 되어 있고 특정 데이터베이스 사용시 문제가 생긴다면 ..

mysql/data 에 가보면 hostname.err 파일이 있습니다.

그 파일을 열어 혹시 데이터베이스나, 테이블 등이 깨진 것은 아닌지도 확인해보시면 좋을 것으로 보입니다.

오류마다 메세지는 다르겠지만, 보통 데이터베이스나 테이블 깨졌을 때는

해당 테이블을 찾을 수 없다 (?) 는 식의 메세지가 주기적으로 계속해서 발생할 수 있습니다.

백업 파일이 있다면 해당 파일로 복원하거나, 복구 명령으로 복구 하시면 됩니다.

 

복구 방법

# service mysqld stop    -> 데몬 중지
# mkdir /home/imsi    -> 해당 테이블을 백업 시킬 임시 디렉토리 생성
# cp -arp /usr/local/mysql/data/* /home/imsi    -> 해당 테이블 백업
# /usr/local/mysql/bin/myisamchk -o /usr/local/mysql/data/*/*.MYI
# service mysqld start

[주의] 다른 데이타베이스에도 영향을 미칩니다. (유저 계정이 변경되는 예도 있었음. 백업 필수!!)
            상위 명령어 네번째 항목 /*/*.MYI 에 폴더경로, 테이블 명까지 넣어서 복구범위를 줄일수 있음.

myisamchk 로 복구 되지 않는 경우 아래의 방법을 쓰면 복구 되기도 합니다.

아래 명령어는 mysql 을 실행중인 상태에서 사용하셔야 합니다.
# mysqlcheck -u root --auto-repair -B 데이터베이스명 -p


[출처] 지식인 (http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10202&eid=noJFypEggRUquWZxlo/FaauFPRsHVCUq&qb=bXlzcWwgcmVwYWlyILq5sbgguO23yQ==&pid=fLtIMdoi5Tlssbtq7RRsss--227692&sid=SNB0jCp00EgAAFZIE1g)

반응형

댓글()