본문 바로가기

데이터베이스

Undo 와 Redo 의 차이점

Undo와 Redo의 차이점은 무엇일까?

비슷 하지만 전혀 다른 두가지의 개념을 나름의 생각으로 정리해 보았다.

기본적으로

Redo는 re + do 의 합성어 인듯하며 뜻풀이를 하면 이렇다. "다시 하다."

Undo는 un + do 의 합성어 인듯하며 뜻풀이를 하면 이렇다. "원상태로 돌리다"

뜻에서 풍겨져 나오는 기본의미로는 Redo는 무언가를 다시 하는 것

Undo는 무언가를 되돌리는 것이다.

 

그럼 다시 다른 방향에서 살펴보자

Redo는 오라클에서 무슨 역할을 하는가?

기본적으로 복구의 역할을 한다. 오라클 서버에 무슨작업을 하든지 모두 리두에 기록이 된다.

Undo는 무슨역할을 하는가?

작업 롤백과, 읽기 일관성, 복구를 한다.

 

이렇게 봤을때 둘의 같은점은 복구를 한다는 것이다.

하지만 둘의 복구 방법은 차이가 있다.

리두는 복구를 할때 사용자가 했던 작업을 그대로 다시 하지만

언두는 사용자가 했던 작업을 반대로 한다. 즉 사용자가 작업을 원상태로 돌린다.

 

예를 들어 아래와 같은 작업을 했을때 세션이 비정상 종료 되었다고 가정해보자

 

update t1

set no = no + 1

where id = 1;

 

세션이 복구 되는 과정에 SMON이 리두를 이용해 아래의 작업을 한다.

 

update t1

set no = no + 1

where id = 1;

 

 하지만 만일 세션이 비정상 종료가 되기전 COMMIT을 하지 않았다면

Undo를 이용하여 아래와 같은 작업을 이어서 하게된다

 

update t1

set no = no - 1

where id = 1;

 

그렇게 되면 마치 다시 하지 않는 것처럼 된다.

간단히 말하자면 복구와 되돌리기인 것이다.

 

Undo vs. Redo (오라클 10g교재 9-8에서 발췌함)

 

 

 Undo


Redo

기록하는 내용

되돌리기 위한 변화


재생하기 위한 변화

용도

롤백, 읽기 일관성, 플래쉬 백


복구

저장소

언두 세그먼트


리두 로그 파일

보호하는것

멀티 유저의 읽기 일관성을 보호한다.


데이터의 손실을 방지한다.

'데이터베이스' 카테고리의 다른 글

ASM(Automatic Storage Management)  (0) 2010.04.29
HWM(High Water Mark)  (0) 2010.04.29
Online Tools :: SQL Injection Vulnerability Test  (1) 2010.04.29