안녕하세요..
짧은 식견으로 몇자 적어 봅니다.
우선.. 두개의 개념과 사용처를 알아야 할것 같습니다.
사실 책에 보면 자세하게 나와 있을껀데요..
저도 공부 하는 차원에서 몇자 남겨 봅니다. ^^;
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 를 공부 하시기 바랍니다.
도움이 되셨는지 잘 모르겠네요..
덕분에.. 다시 책을 보게 되었습니다. ^^;
오늘 하루 즐거운 하루 되세요..