[답변]롤백세그먼트에 대해!! 0 0 1,894

by 이병훈 [2006.07.12 10:08:01]


안녕하세요..

 

짧은 식견으로 몇자 적어 봅니다.

 

우선.. 두개의 개념과 사용처를 알아야 할것 같습니다.

 

사실 책에 보면 자세하게 나와 있을껀데요..

 

저도 공부 하는 차원에서 몇자 남겨 봅니다. ^^;

 

Rollback Segment

- 순환 구조로 되어 있다.

- Transaction 에 의해 변화가 생긴 데이터 즉 변경되기 전의

   데이터가 저장된다.

 

Redo Log buffer

- 순환 구조로 되어 있다.

- Database 에서 일어난 모든 변화를 저장한다.

- LGWR 에 의해 주기적으로 Redo Log file 에 저장된다.

 

위와 같이 비슷하지만 용도가 틀립니다.

 

일 예를 들어서 Update 문이 발생했다고 칩시다.

 

1. Data Block 을 Database Buffer Cache 에 올린다.

2. Rollback Block 을 Database Buffer Cache 에 올린다.

3. SQL 을 처리하려는 Data 행에 Exclusive Row Lock 을 실행한다.

4. SGA 에 Rollback Segment Buffer 에 Before Image 와 After Image 를 구별하기

   위하여 Rollback Segment Record 를 생성 하고 Rollback Segment 에 SQL 문에

   의해 변경되기 전의 Data 를 기록.

5. SGA 에 Redo Log Buffer 에 Redo Log 입력 항목을 생성.

6. SGA 에 Database Buffer 에도 변경 작업을 수행.

 

이런 순서.. 순서라고 하기는 좀 모하지만.. 이렇게 처리 됩니다.

 

좀더 깊게 들어가면 더 복잡해 지죠..

 

DML 이 일어날때 Oracle 은 정말 많은 일을 합니다.

 

지면을 통해 이런 모든것을 말 하기는 어려우리라 생각이 드네요..

 

Oracle Architecture 를 공부 하시기 바랍니다.

 

도움이 되셨는지 잘 모르겠네요..

 

덕분에.. 다시 책을 보게 되었습니다. ^^;

 

오늘 하루 즐거운 하루 되세요..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입