## 데이터베이스 복구
- 복구 유틸리티
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 |