728x90

원인을 정확하게 모르겠는데 MariaDB 테이블이 깨진 증상으로 인해서 평소 백업 스크립트를 잘 만들어둬야겠다는 생각이 들었다.


### DB 콜드 백업
# which mysql 을 하면 mariadb가 설치된 경로를 반환한다.
cd /var/lib
tar cvf mysqldb_20200902.tar ./mysql

# 콜드 백업 복구
rm -rf mysql/
tar xvf mysqldb_20200902.tar
systemctl restart mariadb

# Mysql DB 가 깨졌을때 복구 방법
mysql -uroot -p
check table 테이블명;
analyze table 테이블명;
repair table 테이블명;
check table 테이블명;


# 위 방법으로 해결이 안될 경우
각 테이블 하나에 3개의 파일이 생성되어 해당 테이블의 데이터가 실제로 저장
*.MYD : 실제 데이터가 저장되는 데이터파일
*.MYI : 테이블의 인덱스 정보를 저장하는 인덱스 파일
*.frm : 테이블의 구조가 저장되는 스키마파일

systemctl stop mariadb
또는
ps -ef | grep mysqld
kill -9 프로세스번호

cd /var/lib/mysql/
# 테이블 파일이 있는 디렉토리까지 이동하면 *.MYI 된 파일이 보인다.
# 이상유무 점검 방법
myisamchk -s 테이블명.MYI
myisamchk -v 테이블명.MYI
myisamchk -i 테이블명.MYI

# 테이블 상태 점검
myisamchk -ev 테이블명.MYI
# 안전모드로 복구
myisamchk -o 테이블명.MYI
# 테이블 파일 복구
myisamchk -r 테이블명.MYI



블로그 이미지

Link2Me

,