ARIES 회복 기법: Difference between revisions
From IT Wiki
No edit summary |
No edit summary |
||
(5 intermediate revisions by one other user not shown) | |||
Line 5: | Line 5: | ||
== 특징 == | == 특징 == | ||
* [[ | {| class="wikitable" | ||
|- | |||
! 구분 !! 설명 | |||
|- | |||
| WAL/LSN || 모든 변경사항을 선행 로그로 기록 | |||
|- | |||
| No-Force || 트랜잭션이 커밋 되어도 변경사항을 즉시 디스크에 기록하지 않음 | |||
|- | |||
| Steal || 트랜잭션이 커밋되지 않아도 변경사항을 디스크에 기록 가능 | |||
|} | |||
* WAL/LSN을 기반으로 [[데이터베이스 Force와 Steal|No-Force/Steal]] 정책 하에 효율적인 복구 수행 | |||
== | == 핵심 개념 == | ||
* '''REDO 중 Repeating history''': 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행 | |||
* '''REDO 중 Repeating history''': 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행 | * '''UNDO 중 Logging changes''': UNDO를 할 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음 | ||
* '''UNDO 중 Logging''': UNDO를 할 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음 | |||
== 수행 3단계 == | == 수행 3단계 == | ||
Line 19: | Line 26: | ||
! 단계 !! 동작 | ! 단계 !! 동작 | ||
|- | |- | ||
| Analysis || | | Analysis || REDO가 시작되어야 하는 로그 위치 결정 | ||
|- | |- | ||
| REDO || 분석 단계에서 결정한 REDO 시작 위치의 | | REDO || 분석 단계에서 결정한 REDO 시작 위치의 로그부터 REDO를 수행 | ||
|- | |- | ||
| UNDO || 로그를 역순으로 읽으며 | | UNDO || 로그를 역순으로 읽으며 미완료 트랜잭션을 UNDO | ||
|} | |} | ||
Line 45: | Line 52: | ||
* 장애 시 이전의 데이터베이스 수행 기록을 모두 추적하여 REDO | * 장애 시 이전의 데이터베이스 수행 기록을 모두 추적하여 REDO | ||
|- | |- | ||
| | | Logging Changes | ||
|| | || | ||
* | * UNDO 완료된 트랙잭션을 기록하여 UNDO 반복 수행 회피 | ||
|} | |} |
Latest revision as of 17:13, 12 December 2019
- Algorithms for Recovery and Isolation Exploiting Semantics; ARIES Recovery Algorithm; ARIES Recovery method
특징[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 |
|
LSN |
|
Repeating History |
|
Logging Changes |
|