Post

DB - 장애 회복

데이터베이스 스터디 5주차에서 학습하고 정리한 내용입니다.

1. DB 회복

여러 하드웨어, 소프트웨어적 원인으로 하드웨어 장애가 발생했을 때 DB를 이전 상태로 회복하는 것을 DB 장애 복구라고 한다. 장애가 발생하였을 때 데이터가 손상되거나 일부분만 업데이트되지 않고 장애가 발생하기 전의 일관된 상태로 롤백할 수 있어야 한다.

회복 연산

데이터 회복의 핵심 원리는 데이터 중복이다. 주기적으로 데이터를 별도의 장소에 미리 복사해두고 문제가 발생했을 때는 복사본을 이용해 원래의 상태로 복원한다. 데이터베이스 전체를 별도로 저장하는 덤프나 데이터베이스 연산이 실행될 때마다 연산의 초기값, 결과값 등을 별도의 파일에 기록하는 로그를 사용할 수 있다.

REDO

REDO는 말 그대로 마지막 복사본을 불러와 사용자가 수행했던 연산을 다시 수행하는 방법이다. 다시 연산을 수행하여 장애가 발생하기 직전의 데이터베이스 상태로 복구한다.

UNDO

UNDO는 사용자가 수행했던 연산을 취소하고 마지막 저장 상태로 되돌리는 방법이다. 변경 중이거나 변경된 내용이 신뢰성을 잃은 경우에 이 데이터를 삭제하기 위해 사용한다.

회복 기법의 종류

데이터베이스 회복 기법의 종류는 로그 회복 기법, 검사 시점(Checkpoint) 회복 기법, 미디어 회복 기법이 존재한다.

로그 회복 기법

데이터 변경 연산을 로그 파일에 기록하는 방법으로 장애에 대비한다. 장애가 발생시 로그 파일에 기록된 트랜잭션 연산을 바탕으로 REDO나 UNDO를 수행한다.

체크포인트 회복 기법

로그 회복 기법은 모든 트랜잭션을 대상으로 회복 연산의 수행 여부를 결정한다. 따라서 이 경우 데이터베이스 회복에 너무 많은 리소스가 소모될 수 있다.

체크포인트 회복 기법은 모든 트랜잭션이 아닌 일정 시간 간격으로 체크포인트를 생성한다. 장애가 발생 시 모든 트랜잭션을 고려하지 않고 체크포인트 이후 트랜잭션만 회복 작업을 수행한다.

미디어 회복 기법

전체 데이터베이스 내용을 일정 주기마다 덤프하는 방식을 이용한다. 장애가 발생 시 복사해 두었던 덤프를 다시 불러옴으로써 일관된 상태를 유지한다. 전체 데이터베이스를 덤프하는 방법은 로그 기반 회복 기법에 비해 많은 비용이 들 수 있다.


Reference

https://chonchony.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%ED%9A%8C%EB%B3%B5%EA%B3%BC-%EB%B3%91%ED%96%89%EC%A0%9C%EC%96%B4-%ED%9A%8C%EB%B3%B5-%EA%B8%B0%EB%B2%95

This post is licensed under CC BY 4.0 by the author.