반응형
#1. 개요
- mariadb와 mysql 에서 테이블 손상 시 복구하는 방법을 알아봅니다.
#2. 발생 원인
- 테이블 손상 발생 원인은 일반적으로 크게 네 가지라고 합니다.
- 하드디스크 용량 부족
- 서버의 예기치 못한 다운
- 하드디스크 오류
- mysql 자체 일시적인 오류
#3. 관련 쿼리
- 테이블 상태 체크(check)
db 접속
mysql> use [db명];
mysql> check table [테이블명];
- 테이블 복구(repair)
db 접속
mysql> use [db명];
mysql> repiar table [테이블명];
- 테이블 성능 향상(optimize)
db 접속
mysql> use [db명];
mysql> optimize table [테이블명];
#4. 위 방법으로 복구가 되지 않을 경우
- 위 방법으로 복구가 되지 않을 경우 myisamchk라는 Mysql 외부 툴을 이용해서 복구 시도를 해볼 수 있다.
- 다만 해당 작업은 db 중지가 필요하다.
- 혹시 모르니 진행하기 전 db full 백업을 꼭 받아놓자.
# systemctl stop mysql
# cd /[db 설치 경로]/bin/
# ./myisamchk -r [테이블명]
# systemctl start mysql
#5. 모든 테이블 체크 및 복구 명령어
- 모든 테이블에 대해 체크하고 손상 시 복구하는 명령어도 있다.
# cd /[db 설치 경로]/bin
# ./mysqlcheck -u [DB계정] -p[패스워드] --auto-repair [DB명]
- 모든 테이블 성능 향상도 가능하다.
# cd /[db 설치 경로]/bin
# ./mysqlcheck -u [DB계정] -p[패스워드] --optimize [DB명]
반응형