본문 바로가기
Error

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

by GoodDayDeveloper 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로 늘려주었습니다.

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

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

 

 

 

반응형

댓글