Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Star_project

Redo Undo 본문

Serverside-Programing/데이터베이스 SQL

Redo Undo

star빛 2022. 7. 12. 11:51

UNDO, REDO

REDO는 "다시 하다."라는 뜻을 가지고 UNDO는  "원상태로 돌리다" 라는 뜻을 가지고 있습니다. 즉 REDO는 무언가를 다시 하는 것이고 UNDO는 무언가를 되돌리는 것입니다.

REDO는 기본적으로 복구의 역할을 합니다. 오라클 서버에 무슨 작업을 하든지 모두 REDO에 기록이 됩니다. (UNDO 포함)

UNDO는 작업 롤백과, 읽기 일관성, 복구를 합니다.

REDOUNDO의 공통점은 복구를 한다는 것입니다.

 

출처 :  https://brownbears.tistory.com/181

 

[DB] 트랜잭션, REDO와 UNDO 개념

트랜잭션이란? 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위입니다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분

brownbears.tistory.com

 

■ 회복 기법

(1) 그림자 페이징(Shadow Paging) 회복

∙ 로그(Log) 파일을 이용하지 않고, 디스크에 백업받아 놓은 파일로 대체하는 방법이다.

∙ 현재 데이터베이스의 테이블에 변화된 연산들을 그대로 디스크에서도 동일하게 그림자처럼 저장한다.

∙ 장애가 발생하여 회복이 필요할 경우에 그림자처럼 저장되었던 그림자 파일로 대체한다.

∙ 연산 작업이 큰 경우에는 여러 개의 페이지 블록으로 구분하여 처리하므로 그림자 페이징 회복이라고 한다. ∙ 페이지 블록이 변경 시 현재 페이지 블록만 변경하고 그림자 페이지는 이전 값을 유지한다.

(2) 즉시 갱신(Immediate update) 회복

∙ 로그(Log) 파일을 이용하는 방법으로 처리된 작업들을 데이터베이스에 즉시 적용시킨다.

∙ 특정 데이터 값이 매번 변경되더라도 그때마다 계속적으로 데이터베이스에 적용한다.

∙ 중간에 장애가 발생한 경우에는 장애시점부터 Undo를 시행한다.

∙ 로그에 기억된 값 관리, Undo를 수행하므로 복잡하다.

(3) 지연 갱신(Deferred update) 회복

∙ 로그(Log) 파일을 이용하는 방법으로 작업이 완전히 종료될 때까지 지연시켰다가 데이터베이스에 적용시킨다.

∙ 연산으로 인하여 특정 데이터 값이 매번 변경되더라도 로그 파일에만 저장한다.

∙ 모든 작업이 완료되었을 경우에 데이터베이스에 적용시킨다.

∙ 중간에 장에가 발생할 경우에는 로그 파일만 제거하면 된다. (NoUndo)

∙ 로그에 기억된 값만 관리하므로 단순하다.

(4) 검사점(Checkpoint) 회복

∙ 검사점 이전까지는 아무런 문제없이 진행된 트랜잭션이므로 회복에서 제외한다.

∙ 검사점 존재하는 트랜잭션이 장애가 발생하기 전에 완료되었다면 검사점 이후에 발생한 연산들은 Redo를 수행한다.

∙ 검사점 존재하는 트랜잭션이 완료가 되지 않고 장애가 발생하였다면 검사점 이후에 발생한 연산들은 Undo를 수행한다.

∙ 쓸데없는 부가적인 노력을 방지하는데 목적이 있다.

[출제정보] [홀인원 6.06.03] 트랜잭션 상태 - 새롭게 출제 [난이도] 상

 

출처:컴퓨터일반 : 최희준 선생님