이번 프로젝트를 하면서 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
MySQL :: MySQL 8.0 Reference Manual :: 15.21.3 Forcing InnoDB Recovery
15.21.3 Forcing InnoDB Recovery To investigate database page corruption, you might dump your tables from the database with SELECT ... INTO OUTFILE. Usually, most of the data obtained in this way is intact. Serious corruption might cause SELECT * FROM tbl_
dev.mysql.com
나의 경우에는 레벨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 |
댓글