ARIES | [정의] 데이터베이스의장애발생시 WAL(로그선행기법) 통해기록된 LSN(로그순차번호) 이용한회복기법 [특징] 로그순번기록, 논리/물리적 REDO연산, 연산최적화 [회복알고리즘 3단계] 분석-Redo-Undo [회복알고리즘데이터구조] Log(LSN할당-write,commit,abort,end 레코드에 LSN부여) Transaction Table(트랜젝션 ID,state 가장최신 LSN), Dirty Page Table(버퍼의오손페이지 LSN) [원칙] write ahead logging(모든변화기록), Repeating history during redo(crash 후모든재실행), Logging changes during undo(동일 action 최소화) |
토픽 이름 (중) | ARIES (Algorithms for Recovery and Isolation Exploiting Semantics) |
분류 | DB > 기타 |
키워드(암기) | 데이터 회복 기법, 회복 3단계(분석, REDO, UNDO), 필요정보(로그, 트랜잭션 테이블, 오손 페이지 테이블) |
암기법(해당경우) |
기출문제
번호 | 문 제 | 회 차 |
1 | 8. 데이터베이스 회복기법에서의 REDO와 UNDO, ARIES 회복기법에 대해 설명하시오. | 합숙_2019.08.공통.Day-3 |
2 | 10. ARIES(Algorithms for Recovery and Isolation Exploiting Semantics) 회복 알고리즘에 대해 설명하시오. | 합숙_2016.01.관리.Day-2 |
3 | 2. 다음은 ARIES 회복 기법에 의해 남겨진 DBMS 의 log 내용들이다. ARIES 회복기법에 대해 설명하고 다음 log 내용을 이용하여 회복 과정을 서술하시오. | 모의_2018.10.관리.2 |
4 | ARIES회복 알고리즘에 대해 설명하시오. | 모의_2013.07.관리.1 |
I. 빠른 데이터베이스 복구를 위한 ARIES 회복 알고리즘
가. ARIES의 정의
- REDO 중 역사 반복(Repeating history) 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행하는 알고리즘
나. ARIES의 특징
UNDO | 붕괴가 발생했을 때 완료되지 않은 상태였던 진행 트랜잭션은 UNDO 됨 |
UNDO 중 로깅하여 도중 실패 시 반복 하지 않음 | UNDO를 할 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음 |
II. ARIES 회복 알고리즘의 3단계와 필요한 정보
가. ARIES 회복 알고리즘의 3단계
단계 | 이 름 | 내 용 |
1단계 | 분석단계 | 붕괴가 발생한 시점에 버퍼에 있는 수정된 페이지와 진행 트랜잭션을 파악, REDO가 시작되어야 하는 로그의 위치를 결정 |
2단계 | REDO단계 | 분석 단계에서 결정한 REDO 시작 위치의 로그로부터 로그가 끝날 때 까지 REDO를 수행, REDO 된 로그 레코드의 리스틀 관리하여 불 필요한 REDO 연산이 수행되지 않도록 함 |
3단계 | UNDO단계 | 로그를 역순으로 읽으면서 진행 트랜잭션의 연산을 역순으로 UNDO 함 |
나. ARIES 회복 알고리즘에서 필요한 정보
구 분 | 내 용 | 핵 심 |
로그(LOG) | 페이지에 대한 갱신(write), 트랜잭션 완료(commit), 트랜잭션 철회(abort), 갱신에 대한 UNDO, 트랜잭션 종료(end) 시 기록, 각 로그 레코드마다 로그 순차번호(LSN)가 할당 (LSN: 디스크에 저장된 로그 레코드의 주소로서 단조 증가 – Log Sequence Number) |
LSN할당 |
트랜잭션 테이블 | 진행 트랜잭션에 대한 정보(트랜잭션 식별자, 트랜잭션 상태, 해당 트랜잭션의 가장 최근 로그레코드의 LSN 관리 | 진행 트랜잭션에 대한 정보 |
오손 페이지 테이블 | 버퍼에 있는 오손 페이지에 대한 정보(페이지 식별자, 해당 페이지에 대한 가장 최근 로그 레코드 LSN 관리 | 버퍼에 있는 오손 페이지에 대한 정보 |
III. ARIES에서의 검사점 기록
기록내용 | - 로그에 BEGIN_CHECKPOINT, END_CHECKPOINT 레코드를 기록 - 특수 파일에 BEGIN_CHECKPOINT 레코드의 LSN을 기록 |
다중 데이터베이스에서 회복 및 다중 데이터베이스 트랜잭션 |
여러 개의 데이터베이스를 액세스하는 트랜잭션으로 이 때 각각의 DBMS들은 서로 다른 회복 기법과 트랜잭션 관리자를 사용할 수 있음 |
원자성 유지 2단계 완료 프로토콜 |
- 모든 참여 데이터베이스가 트랜잭션을 완료하도록 하거나 또는 어느 하나도 완료하지 않도록 한다 - 어떤 참여 데이터베이스에 고장이 발생하더라도 트랜잭션이 완료된 상태 또는 철회된 상태로의 회복은 항상 가능 |
IV. 참고
구 분 | 설 명 |
역사반복 (Roll Forward) |
- REDO 중 역사 반복(Repeating history): 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행. 붕괴가 발생했을 때 완료되지 않은 상태였던 (진행 트랜잭션)은 UNDO 됨 - UNDO 중 로깅하여 도중 실패시 반복 하지 않음: UNDO를 할 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음 |
LSN (Long Sequence Number) |
- 로그 레코드의 식별자 (로그 레코드는 고유의 식별자를 가짐) - 로그는 로그파일에 변경된 사항을 덧붙이는(append) 방식으로 기록 - 로그 스위치마다 증가하는 특징 |
반응형
'정보관리기술사 > DB_데이터분석' 카테고리의 다른 글
2PL or 2PLP(2 Phase Locking) (0) | 2023.08.04 |
---|---|
동시성 제어 (0) | 2023.08.03 |
그림자페이지(Shadow Paging) 기법 (0) | 2023.08.01 |
체크포인트(Checkpoint) 회복기법 (0) | 2023.07.31 |
로그기반 회복 기법 (0) | 2023.07.28 |