- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/display/CORE/Commit+Mechanism?
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
1. Commit 실행순서
1) Transaction Table에 해당 Transaction에 대한 Commit 적용
2) Commit 메세지를 Redo Log Buffer에 기록
3) Redo Log Buffer의 내용을 Disk에 기록
4) LOCK 정보 해제(TX 락, Lock BYTE등...)
2. Commit Operation
1) Redo Buffer의 내용이 모두 Redo Log에 쓰여진 후에 Commit이 완료
- User가 Commit명령을 수행하게 되면 Transaction Table에 해당 Transaction에 대한 Commit을 적용하고 나서 Commit 메시지를 Redo Buffer에 기록함
- 그 후에 Redo Buffer의 내용을 Disk에 기록하고 나서야 모든 관련된 Lock의 정보를 해제 하게 되는데, 이때 주의할 것은 Redo Buffer의 모든 내용이 Redo Log File에 기록된다는 점
2) 사례
- 만약 Session 1과 Session 2가 각기 다른 대상에 대해 DML을 수행한다고 가정할 경우, Session 1이 Row 1의 값을 2로 변경하는 작업을 하게 되면 Redo Buffer에는 Before 1, After 2라고 기록이 됨
- 그리고 Session 2가 Row 5의 값을 6으로 변경하는 작업을 수행하면 Redo Buffer에는 Session 1의 작업 내용 바로 뒤에 Before 5, After 6이라고 기록이 됨
- 그 이후 Session 1이 Commit을 수행하면 Commit 메시지가 Redo Buffer에 기록되고 Before 1, After 2라는 기록하는 것뿐만 아니라 Before 5, After 6, Commit이라는 기록 모두가 Redo Log File에 기록이 되고 나서 Lock을 해제하고 Commit이 완료됨
3. Commit Mechanism
- 그림 보고 이해가 안되어 차후 올릴 예정
문서에 대하여
- 최초작성자 : 강정식
- 최초작성일 : 2010년 10월 23일
- 이 문서는 오라클클럽 코어 오라클 데이터베이스 스터디 모임에서 작성하였습니다.
- 이 문서의 내용은 (주)엑셈에서 출간한 'PRACTICAL OWI IN ORACLE 10G'와 엑셈위키를 참고하였습니다.
문서정보
- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/display/CORE/Commit+Mechanism?
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.