오늘부터 공부한다
2단계 Commit(Two Phase Commit) 본문
트랜잭션에서 추가로 설명한다.
2단계 Commit
데이터베이스에 업데이트 하는 방법 중 하나
업데이트 준비 단계와 수행 단계로 나뉜다.
1단계 : 응용 프로그램이 업데이트 처리 마지막 단계에서 'commit'명령을 내림
2단계 : 'commit'명령을 받은 마스터 컴퓨터는 업데이트 대상의 모든 서버에 'commit' 준비 지시를 보냄
3단계 : 각 서버가 업데이트 준비가 됬으면 마스터 컴퓨터에게 '준비 완료'를 보냄
4단계 : 모든 서버에게 완료를 받으면 commit동작 수행
// 한 서버라도 이상이 있으면 commit 명령 취소, rollback(복원)
UNDO와 REDO
UNDO
해당 트랜잭션이 정상 종료 할 수 없을 때, 변경 중이거나 변경된 내용에 대한 신뢰성을 잃어버린 경우에
변경을 모두 취소 하는 것 (원자성을 제공한다)
REDO
DB 자체가 손상 된 경우 가장 최근 복제본을 적재 시킨 뒤 로그를 이용하여 재실행 하면서 복원 시키는 것
(지속성을 제공한다)
데이터 베이스 갱신 기법
즉시 갱신 기법(Immediate Update)
트랜잭션 수행 도중 데이터를 변경하면 변경 정보를 로그 파일에 저장하고,
트랜잭션이 부분 완료 되기 전, 모든 변경 내용을 즉시 데이터베이스에 반영하는 기법이다.
(회복시 로그 파일을 참조하여 REDO와 UNDO 연산을 모두 실행해야함)
자연 갱신 회복
트랜잭션이 완료 상태에 이르기까지 발생한 모든 변경 내용을 로그 파일에만 저장하고
db커밋이 발생 할 때 까지 저장을 지연하는 기법
(회복 시 UNDO 필요하다. 원자송 보장)
검사점 기법 (Check Point)
Checkpoint 이후만 즉시 또는 지연 갱신을 수행한다.
(회복시 로그 파일의 정보를 모두 검사, 반영된 변경에 대해서 REDU연산을 안해도됨)
그림자 페이지 대체 기법 (Shadow Paging)
트랜잭션이 실행되는 동안 현재 페이지 테이블과 그림자 페이지 2개를 유지하여 관리하는 회복 기법
트랜잭션을 취소할 때 그림자 페이지를 이용하여 회복
로그를 기록하지 않음
즉 로그(Log), 취소(Undo), 재시도(Redo)할 필요가 없다
'데이터베이스' 카테고리의 다른 글
데이터베이스 정규화 (0) | 2019.10.15 |
---|---|
무결성 제약조건 (0) | 2019.10.11 |
트랜잭션(Transaction) 내용 추가 및 기타 (0) | 2019.10.08 |
데이터베이스 모델링 (0) | 2019.10.08 |
트랜잭션이란? (0) | 2019.10.07 |