로그 기반 회복 기법
From CS Wiki
굵은 글씨
- 상위 문서 데이터베이스 회복
지연 갱신 회복 기법[edit | edit source]
- Deferred Update
- 트랜잭션이 부분 완료 상태에 이르기까지 발생한 모든 변경 내용을 로그 파일에만 저장하고, 데이터베이스에는 Commit이 발생할 때까지 저장을 지연하는 기법
특징[edit | edit source]
- 데이터베이스 회복 과정에서 UNDO는 필요 없음 : 트랜잭션 복구 시 로그 파일 내용만 폐기
- UNDO가 필요 없기 때문에 로그 레코드는 <트랜잭션 id, 데이터 아이템, 이후 값> 형식을 가짐
구현[edit | edit source]
- 트랜잭션 단위가 종료될 때까지 디스크에 기록하는 출력 연산을 지연시키고, 데이터베이스 변경 내역을 로그에 보관
- 트랜잭션 완료(Commit) 시 로그를 이용해 지연된 출력 연산(Redo) 수행
- 트랜잭션이 실패할 경우 Undo 없이 로그 단순 폐기
즉시 갱신 회복 기법[edit | edit source]
- Immediate Update
- 트랜잭션 수행 도중 데이터를 변경하면 변경 정보를 로그 파일에 저장하고, 트랜잭션이 부분 완료되기 전이라도 모든 변경 내용을 즉시 데이터베이스에 반영하는 기법
특징[edit | edit source]
- 트랜잭션 완료 이전에 수행한 갱신 연산은 미완료 갱신(Uncommitted Update)이라 함
- 회복 시 로그 파일을 참조하여 Redo와 Undo 연산을 모두 실행해야 하기 때문에, 로그 레코드는 <트랜잭션 id, 데이터 아이템, 이전 값, 이후 값>형식을 가짐
구현[edit | edit source]
- 트랜잭션 활성 상태에서 데이터 변경 결과를 로그와 데이터베이스에 반영
- 회복 시 트랜잭션 실행 이전의 상태로 복구
- 로그 파일을 참조하여 미완료된 변경에 대해 Undo를 우선 실행한 후, 완료된 변경에 대해 Redo 실행