본문 바로가기
Error

[Error] Table '테이블명(table name)' is marked as crashed and should be repaired 해결방법!!(테이블 깨짐 현상)

by Life-Journey 2021. 11. 11.
반응형

관리자의 통계 페이지가 나오지 않는 현상이 있어서 확인해봤더니 아래와 같은 에러가 발생하였습니다.

 

Table '테이블명(table name)' is marked as crashed and should be repaired

 

 

처음보는 에러... 또 다른 시험이군요 ㅜㅜㅜㅜㅜㅜㅜ

이런식으로 데이터베이스의 테이블이 뷰 표시로 나타나게됩니다.

 

확인해보기 위해서 mysql에 들어가 테이블을 체크해보았습니다.

 

명령어 : check table 테이블명;

예) check table tbl_menu_log; 

영어를 몰라 번역기로 확인해보니..

크기가 초과로 인해서 테이블이 충돌된 원인으로 에러가 발생하였네요!!

확실히 로그 테이블이라서 데이터가 많다보니 발생한 에러였습니다..

 

| cbdamoa.tbl_menu_log | 확인 | 경고 | 테이블이 충돌로 표시됨 |
| cbdamoa.tbl_menu_log | 확인 | 오류 | 데이터 파일의 크기는 1878683648이어야 합니다. 1878683912 |
| cbdamoa.tbl_menu_log | 확인 | 오류 | 부정한

 


 

이젠 테이블을 복구 시켜야겠죠!!

 

명령어 : repair table 테이블명;

예) repair table tbl_menu_log;

2분 9초나 걸리네요... 전 고장난줄 알고 엔터 엄청 눌렀습니다...ㅜㅜ

번역기를 돌려보니


+----------------------+--------+----------+------ -------------------------------------------------- -+
| cbdamoa.tbl_menu_log | 수리 | 정보 | 1878683592에서 데이터 파일 외부를 가리키는 블록을 찾았습니다. |
| cbdamoa.tbl_menu_log | 수리 | 상태 | 확인 |

 

머 어째꺼나 블록 찾았다면서 ok가 되었군요!

 


 

이젠 용량을 늘려주는 작업을 진행합니다!

 

명령어 : alter table 테이블명 max_rows=레코드수 avg_row_length=원하는 테이블용량;

예) alter table tbl_menu_log max_rows=100000000 avg_row_length=20240000000;

 

 

저는 20GB로 늘려주었습니다.

그리고 데이터베이스를 재접속하면 뷰표시가 아닌 테이블 표시로 변환되면서

정상적으로 작동하는 것을 볼 수 있습니다!!

 

 

 

반응형

댓글

Life-Journey님의
글이 좋았다면 응원을 보내주세요!