2014. 12. 15. 18:18

1 사용자가 특정 데이터의 변경을 요청하는 쿼리를 수행


2 유저프로세스로 부터 해당 sql을 받은 서버프로세스는 원하는 block가 있는지 없는지 확인


   원하는 파일이 없을 경우 해당 블록을 데이터 파일에서 찾아 복사 후 메모리로 가지고 옴


3 해당 블록의 해당 row부분을 다른 사용자가 바꿀 수 없도록 블록에 lock를 설정 - page fix


4 PGA 영역에서 Server process가 redo change vector 를 생성 후 redo log buffer 에서 필요한 용량을 계산함 


redo change vector : 변경된 데이터를 복구 할 목적으로 redo log에 기록할 변경된 데이터에 대한 모든 정보의 세트

undo 관련 내용도 들어있음 ( rollback 데이터를 복구할 경우

commit 후 checkpoint 발생 전에 DB 강제종료가 일어나서 

DB가 강제 종료 되었을 때도 rollback 해야할 때 이전 데이터가 필요하기 때문) 

changer vector 들은  redo record 라는 형태의 row  단위로 redo log buffer 에 복사 됨


5 Change vector 를 redo log buffer에 복사하기 위해 필요한 redo copy latch를 획득해야 하며, 

   change vector 를 redo buffer 에 복사하는 작업의 전 과정동안 redo copy를 보유해야 함. 


latch : 일종의 번호표 개념, 한정된 메모리 자원을 여러 사용하자 사용할 때 순서를 정리해 주는 역할

    여러개의 Server process가 동시에 데이터를 변경하면, 

    Redo copy latch를 획득하는 과정에서 경합( latch : redo copy 이벤트 대기 ) 이 발생됨

    경합이 발생하면 성능이 저하됨



6 Redo copy latch 를 확보한 Server process는 Redo log buffer에 내용을 기록하기 위해 Redo allocation latch를 확보 해야 함


oracle 8i : Redo allocation latch 1개, 많은 경합이 생겨 성능이 저하됨


oracle 9i : Shared Redo Strand 기능 - Redo log buffer를 여러 개의 공간으로 나누어 각 공간 별로 Redo allocation latch를 할당

               여러 서버 프로세스가 동시에 작업이 가능해 성능이 높아짐 

   Redo log buffer 를 몇 개로 나누는 가가 성능에 영향을 미침 

   Strands : 여러 개로 분할된 영역을 의미

   기본값 LOG_PARALLELISM = 1

  

oracle 10g : LOG_PARALLELISM 가 히든파라미터 _LOG_PARALLELISM 로 바뀜 

oracle 이 동적으로 관리하도록 _LOG_PARALLELISM_DYNAMIC 파라미터가 추가됨

이 값을 TRUE로 설정하면 Oracle 이 해당 Strand 개수를 자동으로 제어함, 권장값은 ( CPU개수 / 8)


Private Redo Strand 기능 - 9i 의 Shared Redo Strand 보다 확장된 개념이 도입됨

        각 Server process 는 Shared pool 에 자신 만의 독립적인 Private Strand 공간을 만들어  

        이 곳에 Change vector 을 생성 후 필요할 경우 LGWR 이 Redo log file 에 바로 기록함

        latch를 거치지 않기 때문에 성능이 향상됨, 그래서 'zero copy redo' 라고도 함 



 7 Redo log buffer에 기록 된 내용( Change 

 


'DB > oralce' 카테고리의 다른 글

sql trace 실행원리 보는 방법  (0) 2014.12.17
mts 관련 정보 링크  (0) 2014.12.16
oracle 저장 구조  (0) 2014.12.11
scan ip  (1) 2014.12.09
rac 백업  (0) 2014.11.26
Posted by 성장하는yw