ARIES 회복 기법: 두 판 사이의 차이

IT위키
(새 문서: ;ARIES Recovery Algorithm; ARIES Recovery method == 기본 개념 == * '''REDO 중 Repeating history''': 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위...)
 
편집 요약 없음
 
(사용자 2명의 중간 판 9개는 보이지 않습니다)
1번째 줄: 1번째 줄:
;ARIES Recovery Algorithm; ARIES Recovery method
[[분류:데이터베이스]]
; Algorithms for Recovery and Isolation Exploiting Semantics; ARIES Recovery Algorithm; ARIES Recovery method
* IBM 펠로 C. Mohan이 발명한 데이터베이스 복구 알고리즘
* [[IBM DB2]], 마이크로소프트 SQL 서버, 그리고 수많은 상용 [[DBMS]]에서 사용


== 기본 개념 ==
== 특징 ==
* '''REDO 중 Repeating history''': 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행. 붕괴가 발생했을 때 완료되지 않은 상태였던 (진행 트랜잭션)은 UNDO
{| class="wikitable"
* '''UNDO 중 Logging''': UNDO를 할 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음
|-
! 구분 !! 설명
|-
| WAL/LSN || 모든 변경사항을 선행 로그로 기록
|-
| No-Force || 트랜잭션이 커밋 되어도 변경사항을 즉시 디스크에 기록하지 않음
|-
| Steal || 트랜잭션이 커밋되지 않아도 변경사항을 디스크에 기록 가능
|}
* WAL/LSN을 기반으로 [[데이터베이스 Force와 Steal|No-Force/Steal]] 정책 하에 효율적인 복구 수행
 
== 핵심 개념 ==
* '''REDO 중 Repeating history''': 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행
* '''UNDO 중 Logging changes''': UNDO를 할 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음


== 수행 3단계 ==
== 수행 3단계 ==
10번째 줄: 26번째 줄:
! 단계 !! 동작
! 단계 !! 동작
|-
|-
| Analysis  || 붕괴가 발생한 시점에 버퍼에 있는 수정된 페이지와 진행 트랜잭션을 파악, REDO가 시작되어야 하는 로그 위치 결정
| Analysis  || REDO가 시작되어야 하는 로그 위치 결정
|-
|-
| REDO 단계 || 분석 단계에서 결정한 REDO 시작 위치의 로그로부터 로그가 끝날 때 까지 REDO를 수행, REDO 된 로그 레코드의 리스트를 관리하여 불 필요한 REDO 연산 방지
| REDO || 분석 단계에서 결정한 REDO 시작 위치의 로그부터 REDO를 수행
|-
|-
| UNDO 단계 || 로그를 역순으로 읽으며 진행 트랜잭션의 연산을 역순으로 UNDO
| UNDO || 로그를 역순으로 읽으며 미완료 트랜잭션을 UNDO
|}
|}


36번째 줄: 52번째 줄:
* 장애 시 이전의 데이터베이스 수행 기록을 모두 추적하여 REDO
* 장애 시 이전의 데이터베이스 수행 기록을 모두 추적하여 REDO
|-
|-
| UNDO Logging
| Logging Changes
||  
||  
* LSN을 이용하여 UNDO 완료된 트랙잭션 반복 수행 회비
* UNDO 완료된 트랙잭션을 기록하여 UNDO 반복 수행 회피
|}
|}

2019년 12월 12일 (목) 17:13 기준 최신판

Algorithms for Recovery and Isolation Exploiting Semantics; ARIES Recovery Algorithm; ARIES Recovery method
  • IBM 펠로 C. Mohan이 발명한 데이터베이스 복구 알고리즘
  • IBM DB2, 마이크로소프트 SQL 서버, 그리고 수많은 상용 DBMS에서 사용

특징[편집 | 원본 편집]

구분 설명
WAL/LSN 모든 변경사항을 선행 로그로 기록
No-Force 트랜잭션이 커밋 되어도 변경사항을 즉시 디스크에 기록하지 않음
Steal 트랜잭션이 커밋되지 않아도 변경사항을 디스크에 기록 가능
  • WAL/LSN을 기반으로 No-Force/Steal 정책 하에 효율적인 복구 수행

핵심 개념[편집 | 원본 편집]

  • REDO 중 Repeating history: 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행
  • UNDO 중 Logging changes: UNDO를 할 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음

수행 3단계[편집 | 원본 편집]

단계 동작
Analysis REDO가 시작되어야 하는 로그 위치 결정
REDO 분석 단계에서 결정한 REDO 시작 위치의 로그부터 REDO를 수행
UNDO 로그를 역순으로 읽으며 미완료 트랜잭션을 UNDO

구성 요소[편집 | 원본 편집]

구성 요소 설명
WAL
  • Write Ahead Logging
  • DB 변경 사항에 대한 전체 로깅
LSN
  • Log Sequence Number
  • 모든 로그에 대한 고유 순서 번호
Repeating History
  • 장애 시 이전의 데이터베이스 수행 기록을 모두 추적하여 REDO
Logging Changes
  • UNDO 완료된 트랙잭션을 기록하여 UNDO 반복 수행 회피