ARIES 회복 기법: Difference between revisions

From IT Wiki
No edit summary
No edit summary
 
(3 intermediate revisions by one other user not shown)
Line 9: Line 9:
! 구분 !! 설명
! 구분 !! 설명
|-
|-
| WAN 기반 || 모든 변경사항을 선행 로그로 기록
| WAL/LSN || 모든 변경사항을 선행 로그로 기록
|-
|-
| No-Force || 트랜잭션이 커밋 되어도 변경사항을 즉시 디스크에 기록하지 않음
| No-Force || 트랜잭션이 커밋 되어도 변경사항을 즉시 디스크에 기록하지 않음
Line 15: Line 15:
| Steal || 트랜잭션이 커밋되지 않아도 변경사항을 디스크에 기록 가능
| Steal || 트랜잭션이 커밋되지 않아도 변경사항을 디스크에 기록 가능
|}
|}
* WAN/LSN을 통하여 No-Force/Steal 정책 하에 효율적인 복구 수행
* WAL/LSN을 기반으로 [[데이터베이스 Force와 Steal|No-Force/Steal]] 정책 하에 효율적인 복구 수행


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

Latest revision as of 17:13, 12 December 2019

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

특징[edit | edit source]

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

핵심 개념[edit | edit source]

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

수행 3단계[edit | edit source]

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

구성 요소[edit | edit source]

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