솜은 코튼

[DB] 장애와 회복 본문

DB

[DB] 장애와 회복

솜.코 2023. 6. 2. 14:38

 

장애와 회복

.

 

 

회복이란 장애가 일어났을 때 데이터베이스를 장애 발생 이전의 일관된 상태로 복원시키는 것이다.

장애란 정해진 명세대로 시스템이 작동하지 않는 상태를 말한다.

 

장애는 아래 세 가지 유형으로 구분할 수 있다.

 

1. 트랜잭션 장애

 

트랜잭션내의 논리적 오류나 내부 조건(입력 데이터의 불량, 데이터의 불명 등)으로

정상적인 실행을 계속할 수 없는 상태

 

2. 시스템 장애

 

하드웨어 오작동으로 메인 메모리에 있는 정보의 손실이나 교착 상태 발생으로

더 이상 실행할 수 없는 상태

 

3. 미디어 장애

 

디스크 헤드 붕괴나 고장으로 인해

저장장치의 데이터베이스 일부 또는 전부가 손상된 상태

 

 

이러한 장애에 대한 회복을 위해 DBMS는 회복 관리자로 대비하고 있다.

회복 관리자는 장애 발생을 탐지하고 탐지된 장애로부터 데이터베이스를 복원시키는 기능이 있다.

 

 

데이터 베이스 회복은 데이터를 별도로 중복해서 저장 후

사고가 일어날 때 이 데이터를 이용하여 다시 재건한다.

 

중복 기법에는 '덤프''로그'가 있다.

 

덤프는 주기적으로 데이터베이스 전체를 다른 저장장치에 복제하는 것이고,

로그는 데이터베이스가 변경될 때마다 변경되는 데이터 아이템

옛 값과 새 값을 별도의 화일에 기록하는 것이다.

 

 

장애가 발생했을 때 회복을 취할 수 있는 조치는 두 가지 유형이 있다.

 

Redo

 

데이터베이스 내용 자체가 손상이 된 경우,

 

가장 최근의 복제본을 적재시킨 뒤 복재본 이후 일어난 변경만을

로그를 이용하여 재실행함으로써 데이터베이스를 복원

 

 

Undo

 

데이터베이스 내용 자체는 손상되지 않았지만

변경 중이거나 변경된 내용에 대한 신뢰성을 잃어버린 경우,

 

로그를 이용하여 모든 변경들을 취소시킴으로써원래의 데이터베이스 상태로 복원

 

 

회복 작업은 손상된 부분만을 포함하는 최소의 범위 내에서 최단 시간 내에 완료하여

데이터베이스 접근이 중단되는 시간을 최소한으로 줄여야 된다.

 

회복 작업의 단위는 트랜잭션이 된다.

 

 

데이터베이스 저장 연산

.

 

 

 

 

회복에 관련된 데이터 저장장치는 장애에 대한 탄력성에 따라

'소멸', '비소멸', '안정' 저장장치로 구분된다.

 

소멸 저장장치는 메인 메모리와 같이 시스템의 붕괴와 함께 저장된 데이터를 상실하게 되고,

비소멸 저장장치는 디스크나 테이프와 같이 시스템 붕괴 시에도 저장된 데이터는 손실되지 않는다.

안정 저장장치는 데이터의 손실이 발생하지 않게 여러 개의 비소멸 저장장치로 구성된 저장장치이다.

 

 

데이터베이스는 실제로 디스크에 상주하기 때문에

트랜잭션은 디스크로부터 메인 메모리로 데이터를 입력시켜 처리하고 디스크로 출력한다.

 

이때 입력과 출력 연산은 블록 단위로 수행되며,

디스크에 있는 블록을 '디스크 블록', 메인 메모리에 있는 블록을 '버퍼 블록'이라 한다.

 

 

 

 

 

 

 

 

 

 

* 해당 글은 '데이터베이스 시스템' 책을 참고하여 작성하였습니다. 출처: 데이터베이스 시스템 (이석호)

* 참고 사이트: https://velog.io/@jinh2352/