오라클 전체 구조

컴포넌트별 설명

INSTANCE

  • SGA
    • Shared pool
      • Library cache : parse code와 해당 SQL/PLSQL문, 실행계획이 저장 (LRU알고리즘)
      • Dictionary cache : parse 과정이나 옵티마이저가 실행계획 생성시 사용되는 주요 Dictionary 저장
      • 크기 shared_pool_size 파라미터 (온라인변경가능, 그레뉼 단위 인지필요)
    •  DB buffer cache
      • 디스크에서 로드된 블록 보관
      • 일관성 제어를 위한 Block 상태
        • Free (Unused or Checkpoint 발생 Block)/Dirty (Block 변경후 Checkpoint 발생전)/ Pinned (Used)
      • LRU (Least Recently) /LRUW (Dirty) List
        • LRU : 메인 ( Dirty (Cold)+ Pinned (Hot)) / 보조 (Free list)
        • LRUW : 메인 (변경된 버퍼 리스트) / 보조 (Checkpoint 발생중인 리스트)
      • 데이터 로드시 버퍼 확보 동작
        • LRU 내 보조영역 free 버퍼 SCAN-> 부족시, CKPT에게 CheckPoint 요청 -> DBWR의 메인영역 Cold: Dirty 버퍼를 Disk 내림-> LRU 보조리스트 확보
    • Redo log buffer
      • DML/DDL 발생시 redo entry기록
  • Background Proecess
    • DBWR
      • DB Buffer cache -> Data file 저장
      • 동작 기준
        • Checkpoint / Dirty buffer 임계 초과 / TableSpace Begin Backup or Read only/ Drop or Truncate table 등
    • LGWR
      • Redo Log buffer -> Redo log file 저장
      • 동작 기준
        • Commit / 30%초과 / Checkpoint 발생전 / 3초마다 등
    • PMON
      • Server Process 비정상 종료시 후속처리 (rollback, Lock 해제,리소스 반환 등)
    • SMON
      • 비정상종료시 Instance Recovery 수행
      • Dirty 데이터(Checkpoint X) 에 대한 복원 과정
        • Redo log file 내용 전체 Data File 적용 (Roll Forward) -> DBOpen -> Undo Segment 확인 후 uncommit 데이터는 취소 (rollback)
    • CKPT
      • DBWR에게 checkpoint Signal 발생 / data&control file에 checkpoint 정보 기록
      • 동작 기준
        • log switch / alter system checkpoint

DATABASE

  • Data files
    • parameter file ($ORACLE_HOME/dbs, spfile우선순위 높음)
      • SGA 속성, controlfile 설정 등
      • pfile : 일반 텍스트파일 / initSID.ora, 파라미터 직접 수정 가능
      • spfile :바이너리파일 /spfileSID.ora, 서버프로세스를 통해 수정
    • control files 
      • DB, 리두로그, 파일, 체크포인트,테이블스페이스,RMAN,아카이브로그 등에 대한 상태정보 포함
      • 운영중 상기 대상 상태 업데이트 및 장애상황시 복구에 활용
    • redo log files
      • LGWR에 의해 redo log buffer -> redo log file 저장 후 buffer 지움
      • 그룹과 맴버 다중화 : 멤버간 파일 동일 내용 저장, 그룹단위로 log switch 발생
        • log switch 발생시, DBWR 은 DB buffer ->file 저장 / CKPT는 데이터파일과 컨트롤파일 반영 (SCN)
      • 상태 Current (현재 작성중)/ Active (commit내용이 data file 저장중)/ Inactive (datafile저장완료)

+ Recent posts