YUMSERV
Published 2019. 5. 27. 23:10
MYSQL 복구 설정 LINUX/DB
반응형

InnoDB에서는 데이터를 복구할 수 있는 옵션이 있습니다.

 

# vi /etc/my.cnf
innodb_force_recovery = 1

해당 옵션에 대해 1 부터 6까지 설정해줄 수 있으며, 1부터 숫자를 상승시키면서 올리는 것이 좋다. 또한 recovery 옵션을 통해 복구한 경우 db를 덤프뜬 다음에, recovery옵션을 지우고 다시 데이터를 넣어주는 것이 좋다.

아래는 옵션에 대한 설명입니다.

 

1 ( SRV_FORE_IGNORE_CORRUPT ) : 손상된 페이지가 발견되어도 무시하고 mysql를 가동합니다. 가동되면 테이블을 덤프하여 복구시키거나 다른데이터베이스로 이전하는것이 좋다. (손상된 레코드와 페이지는 모두 건너뛰게 됨으로 데이터를 잃게 됨.)

 

2 ( SRV_FORCE_NO_BACKGROUND ) : 메인 쓰레드가 구동되지 못하도록 한다. 만일 퍼지 연산(purge operation)이 진행되는 동안 크래시가 발생한다면, 이 복구 값은 퍼지 연산이 실행되는 것을 막게 된다.

 

3 ( SRV_FORCE_NO_TRX_UNDO ) : mysql 종료하던 시점에 진행중인 트랙잭션이 있다면, mysql 단순히 그 연결을 끊는다. 다시 실행 후 innodb엔진이 롤백을 실행하는데 데이터가 손상된경우 롤백을 실행할 수 없기 때문에 이경우 사용되는 복구모드입니다.

 

4 ( SRV_FORCE_NO_IBUF_MERGE ) : INSERT, UPDATE, DELETE 연산자를 실행하지 않도록 한다. 테이블 통계값을 계산하지 않도록 한다.

 

5 ( SRV_FORCE_NO_UNDO_LOG_SCAN ) : 데이터베이스를 시작할 때 UNDO LOG를 검사하지 않는다. InnoDB는 완벽하지 않은 트랜젝션도 실행된 것으로 다루게 된다.

 

6 ( SRV_FORCE_NO_LOG_REDO ) : mysql이 재시작전 가장 뒤에 발생한 체크포인트 이후 모든 트랜직션을 버리고 복구시키는 모드이다 복구 연결에서 로그 롤-포워드(roll-forward)를 실행하지 않고 강제복구한다.

 

[복구 진행 시 작업 진행 절차]

1. recovery 옵션을 my.cnf 파일에 넣고, mysql DB를 시작합니다.

2. 정상적으로 실행이 되었을 때, DB를 alldump 뜹니다.

3. my.cnf 파일에 recovery 옵션을 뺀 뒤, 다시 mysql 데몬을 시작해줍니다.

4. alldump 뜬 sql 파일을 다시 넣어줍니다.

5. 해당 데이터 확인 후 테이블이 깨져있는경우 recovery 옵션을 올려서 진행합니다.

( recovery 옵션 3이상 넘어갔을 때에는, 데이터가 망실될 가능성이 크며, 중요 데이터가 아니라면 mysql를 재설치 하거나, DB를 새로 생성하는 것이 좋습니다. )

반응형

'LINUX > DB' 카테고리의 다른 글

MYSQL 백업 및 복구  (0) 2019.05.29
MySQLTuner 설치  (0) 2019.05.28
Mariadb 10.1 소스설치  (0) 2019.05.27
MYSQL 설정 - 사용자 생성 및 권한 설정  (0) 2019.05.27
Mysql 8.0 소스설치  (0) 2019.05.27
profile

YUMSERV

@lena04301

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!