본문 바로가기

지식창고/DataBase

[Maria/Mysql] 테이블 손상(crash) 복구 방법

반응형
#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명]
반응형