## 데이터베이스 복구

- 복구 유틸리티

1. 복구대상 인덱스 테이블이 *.ISM 파일 형식이면 isamchk 사용
2. 복구대상 인덱스 테이블이 *.MYI 파일 형식이면 myisamchk 사용

해당 유틸리티 사용시에는 mysql 종료후 사용할것

#ps -ef | grep mysqld
#kill -9 프로세서 번호


- 복구시 사용되는 데이터베이스 관련 파일 위치 확인

1. /var/lib/mysql/var/db명/테이블명.MYI 

2. 각 테이블 하나에 3개의 파일이 생성되어 해당 테이블의 데이터가 실제로 저장

*.MYD : 실제 데이터가 저장되는 데이터파일
*.MYI : 테이블의 인덱스 정보를 저장하는 인덱스 파일
*.frm : 테이블의 구조가 저장되는 스키마파일


- 이상유무 점검 방법

# myisamchk -s /var/lib/mysql/test.MYI //점검결과를 간략히 출력
# myisamchk -v /var/lib/mysql/test.MYI //점검결과를 상세히 출력
# myisamchk -i /var/lib/mysql/test.MYI //점검결과를 상세히 종합하여 출력

- 깨진 테이블 복구하기

# myisamchk -rv /var/lib/mysql/test.MYI //
# myisamchk -o /var/lib/mysql/test.MYI // r옵션보다는 안전모드로 복구, 속도는 느리다
r옵션으로 복구하지 못하는 내용도 복구 가능

# myisamchk -er 또는 -eo /var/lib/mysql/test.MYI // 테이블이 완전히 깨진 최후의 복구방법


- myisamchk 로 복구되지 않을 경우

1. frm 파일로 인해 복구가 되지 않는 경우

- MYI, MYD 파일의 원본 백업
- mysql 접속후 create 문을 이용하여 테이블 생성
- myisamchk 를 통해 복구 시도

2. MYI 파일로 인해 복구가 되지 않는 경우

- MYD, frm 파일의 원본을 백업
- mysql 접속후 delete 구문을 통해 해당 테이블의 모든 레코드를 삭제
- mysql 종료후 백업한 MYD, frm 파일을 원위치로 복사 후 myisamchk 시도


3. 복구 후 mysqld 새로 시작

#/usr/local/mysql/bin/mysqld_safe &

'MySQL, MariaDB' 카테고리의 다른 글

too many connections, max_connections, wait_timeout  (0) 2016.01.13
MySQL 5.7.9 root 비밀번호 재설정  (1) 2015.12.02
MSQL Locked 확인 및 죽이기  (0) 2015.07.23
MySQL 계정 만들기  (0) 2015.04.18
MySQL Innodb backup  (0) 2015.04.17
블로그 이미지

엘로드넷

,