- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/display/CORE/2.5+Physiological+Loggings?
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
데이터베이스의 변경사항을 저장하는 방법에는 크게 3가지가 가능함
1) logical logging
- 설명: operation logging이라고 불리며 insert, delete, update, select for update 와 같은 오퍼레이션을 저장하는 방법
- 장점: 오퍼레이션만을 저장하므로, 저장되는 리두의 양이 적음
- 단점: 복구 시에 보잡한 절차를 거쳐 수행된다는 점
2) physical logging
- 설명: 변경된 모든 블록의 이전, 이후 이미지를 저장하는 방법
- 장점: 블록단위의 저장 방식이므로 복구시에 간단한 절차를 거쳐 수행된다는 점
- 단점: 저장되는 리두의 양이 많다는 점
3) physiolgical logging
- 설명: 오퍼레이션 코드와 블록의 변경사항을 저장하는 방법
- 장점: 오라클은 logical logging 방식과 physical logging 방식의 장점을 취합한 방식인 physiolgical logging 사용함
- physiological logging의 저장방법 몇가지 예
Statement Undo Redo INSERT INTO t1 VALUES (1,'ABC', 100); Delete row 1 Row1 c1 := 1 c2 := 'ABC' c3 := 100 UPDATE t1 SET c2='DEF' WHERE c1=1; Row1 c2 := 'ABC' Row1 c2 := 'DEF' DELETE FROM t1 WHERE c1 = 1; Row1 c1 := 1 c2 := 'DEF' Delete row 1 SELECT c2 FROM t1 WHERE c1 = 1 FOR UPDATE; Unlock row 1 Lock row 1
문서정보
- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/display/CORE/2.5+Physiological+Loggings?
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
Comments (1)
5월 30, 2011
장태길 says:
로그 마이너 분석 결과 ㅇ.ㅇ 로그마이너를 통해서 REDO 분석 결과 1. SQL_REDO, SQL_UNDO 문장 중 DELETE, UPDATE...로그 마이너 분석 결과 ㅇ.ㅇ
로그마이너를 통해서 REDO 분석 결과
1. SQL_REDO, SQL_UNDO 문장 중 DELETE, UPDATE 에서는 항상 ROWID 가 추가 된다.
EX ) - delete from "OPS$ORACLE"."CHECK_T_MINER" where "A1" = '4' and "A2" = TO_DATE('30-MAY-11', 'DD-MON-RR')
and ROWID = 'AACQVVAAEAAC7VGAAD';
2. Multi Row DML(Update, Delete ) 시에 Row 단위로 SQL_REDO, SQL_UNDO 가 발생 된다.
3. Update ( 한 row), Update ( 한 row), Commit 시에는 SCN 으로 Ordering 되고, XID(Transaction ID) 를 통해서 하나의 Transaction 으로 묶임을 확인 할 수 있다.