오라클 전체 구조
컴포넌트별 설명
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
- 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저장완료)