이번 프로젝트를 하면서 DB가 깨지는 현상이 발생했다.
그 후에 mysql server자체가 켜지지 않고 오류 로그를 봐도 이해 되지 않는 현상 발생..
그럼 mysql server가 켜지지 않을떄는 innodb_force_recovery를 해봐야한다.
/etc/mysql/mysql.conf.d/mysqld.cnf파일 안에 추가를 해야하며 각 레벨마다 다른 점이 있다.
레벨0이 기본 모드이고 1부터 6까지 순서대로 해보기를 추천한다(레벨이 올라갈수록 데이터 유실률이 올라갈 수 있다는것)
https://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
나의 경우에는 레벨4에서 mysql-server가 켜졌고, 테이블들을 점검해봤다.
테이블 오류 점검 명령 : check table 테이블명
테이블 오류 수정 명령 : repair table 테이블명(나의 경우에는 시도했지만 불가능했다...)
다행히 다른 테이블들은 오류가 없었는데 세션을 관리하는 테이블에 오류가 있었다.
그래서 저 테이블만 삭제를 하고 어떻게 하면 되겠지라는 생각으로 다양한 방법으로 해봤으나...가장 추천하는것은 mysql server가 켜진 시점에 깨진 테이블을 제외한 나머지라도 백업을 하는것이다.
그리고 mysql을 지우고 다시 설치 후 dump뜬거를 복원(...)
일단 나의 경우에는 이게 괜찮았다(깨진게 세션 테이블이니깐 다행이지 정말...)
mysql 삭제 명령어 : sudo apt-get remove --purge mysql*
남은 패키지 확인 명령어 : dpkg -l | grep mysql
이번에 DB가 깨지고 느낀건데 정말 지옥 같았다. 해결을 해야하니..
게다가 ssh로 리붓을 시켰는데 서버가 안 켜지는 현상까지 아오...정말 다사다난한 이틀이었다.
'DATABASE' 카테고리의 다른 글
sql mode 임시로 변경 (0) | 2022.03.02 |
---|---|
ubuntu mysql 자동 로그인 (0) | 2021.09.01 |
MySQL deterministic에 대해서(with function) (0) | 2021.07.29 |
MySQL ogr2ogr(공간정보 저장에 대해서) (0) | 2021.07.28 |
varchar타입에 order by를 써야하는 경우 (0) | 2021.07.20 |
댓글