티스토리 뷰
ORACLE BACKGROUND PROCESS
ORACLE BACKGROUND PROCESS :
ORACLE 서버와 관련된 프로세스 종류는 user process(sql 문장을 서버프로세스로 전달 해주고 결과를 가져오는 프로세스),
server process(user process가 전해준 sql문장을 실제 수행하는 프로세스), backgroud process(oracle 서버가 시작되면 자
동으로 시작되며 운영과 유지를 담당하는 프로세스) 오라클서버의 시작과 종료와 같고 호빗과 같은 존재이다
필수 ORACLE BACKGROUND PROCESS :
- DBWR, LGWR, PMON, SMON, CKPT, MMON & MMNL, RECO
선택 ORACLE BACKGROUND PROCESS :
- ARCN, CJQO & FDBA
DBWR ( DATABASE WRITER ) :
DBC 에서 변경완료된 DIRTY BUFFER 들을 데이터 파일로 저장하는것. 이유는 데이터파일로 내려쓰지 않으면 DBC 에있는 데이터가 손실되기 때문.
DBWR 이 실행되는 경우는
1.checkpoint
2.더티버퍼가 임계값(오라클이 정해놓은 최대 더티버퍼의 양)이 지났을때
3. time out될때
4. rac ping일어날때
5. 테이블스페이스가 read only상태로 변경될때
6. 테이블스페이스가 오프라인될때
7. 테이블스페이스가 begin backup될때
8. 드롭테이블이나 truncate 테이블 될때
DBWR은 기본값이 하나지만 필요에 의해서 추가가 가능하며 단일 프로세스의 시스템에서는 사용되지 못한다.
LGWR ( LOG WRITER )
역활은 데이터 변경후 서버프로세스가 CHANGE VECTOR를 REDO LOG BUFFER 에 기록하고 LGWR이 REDO LOG FILE에 저장한다.
실행되는 경우는
1.commit이 발생했을때
2. 1/3이 찼을때
3. 변경량이 1M가 되었을때
4. 3초마다
5. dbwr이 내려쓰기 전에
LOG AHEAD METHOD와 WRITE-AHEAD은 데이터가 변경되는 경우 항상 REDO LOG BUFFER에 먼저 기록한다.
COMMIT은 데이터를 REDO LOG에 저장하는것이지 DATAFILE에 저장은아니다
LOG AHEAD METHOD 나 WRITE-AHEAD 하는 이유는 REDO LOG BUFFER 블록 사이즈가 DBC보다 작고, DBC 에서
해당 블록의 원래 위치를 찾기보다 REDO LOG FILE에는 순서대로 쓰기때문에 기록시간은 단축시켜준다.
만약 여러 사용자가 동시에 COMMIT 하는경우 LGWR은 동시에 GROUP COMMIT기법을 사용해서 redo log file에 기록한
다. 만약 COMMIT후 REDO LOG FILE이 없을 경우 ALTER LOG FILE 에 해당에러내용을 기록후 LGWR은 COMMIT요
청을 수행하지 않고 대기한다.
PMON ( PROCESS MONITOR )
역활은 모든 서버프로세스들을 감시하고, 비정상 종료된 프로세스 관련복구 작업을 수행한다.
비정상 종료된 TRANSACTION TABLE의 내용을 다시 RESET하고, LOCK해제, 서버프로세스의 TRANSACTIONAL ID
를 시스템에서 제거한다.
INSTANCE 시작때 정보를 LISTENER에 등록 및 관리 한다.
SMON ( SYSTEM MONITOR )
1. 비정상 종료(INSTANCE CRASH)후 인스턴스 다시시작때 CLEAN UP(인스턴스 복구)해주고
2. 파일에러나 테이블스페이스 오프라인 때 인스턴스 복구 과정에서 누락된 TRANSACTION을 복구하는 역활을하고
3. dictionary managed tablespace에서 free extents들을 모아주는 역활.
4. 비정상 종료된 TRANSACTION이 사용중이던 TEMPORARY 세그먼트를 복구하는 CLEAN UP ( INSTANCE
RECOVERY )하는 역활.
예) CREATE INDEX 하던중 해당 TRANSACTION이 비정상 종료되면 그세션이 사용중이던 TEMPORARY SEGMENT 은 CLEAN UP(INSTANCE RECOVERY) 된다. 과정은 파라미터파일을 읽어서 NO MOUNT단계에서 인스턴스 생성하고 MOUNT 단계에서 CONTROL FILE내용 확
인해서 INSTANCE CRASH 상황을 확인한다. REDO LOG FILE에서 ROLL FORWARD하고 DB를 오픈시킨다.
* ONLINE REDO LOG FILE 만 읽고 진행되고, ARCHIVED REDO LOG FILE에 있으면 DBA가 수동으로 MEDIA RECOVERY 를 수행해야한다
CKPT (CHECKPOINT PROCESS)
역활은 DBWR에게 CHECKPOINT신호를 전달해주며 체크포인트정보를 CONTROL FILE과 DATA FILE HEADER에 기록
한다. 체크포인트 정보는 체크포인트 위치, SCN, 해당내용의 REDO LOG 위치값등을 포함하고 있다.
MMON & MMNL (MANAGEBILITY MONITOR PROCESS)은 10g 이후부터 추가되었다.
역활은 AWR (AUTOMATIC WORKLOAD REPOSITORY)와 관련된 다양한 작업을 수행하고, MMNL은 ASH (ACTIVE
SESSION HISTORY) 정보를 DISK FILE 로 기록하는 역활을한다.
RECO ( RECOVER PROCESS)
역활은 분산 DATABASE환경에서 TRANSACTION처리 도중에 장애가 발생할경우 해당 TRANSACTION을 자동으로 복
구해주는 역활을 한다.
ARCN (ARCHIVER PROCESS)
역활은 ONLINE REDO LOG FILE을 ARCHIVING 해주는 역활이다.
'ORACLE DB > Oracle DB Admin' 카테고리의 다른 글
SQL 문장 실행 원리 (0) | 2013.03.11 |
---|---|
UPDATA 실행 원리 (0) | 2013.03.11 |
ORACLE 시작, 단계별 INSTANCE OPEN (0) | 2013.03.11 |
ORACLE INSTANCE 종료 (0) | 2013.03.11 |
초기 PARAMETER FILE (0) | 2013.03.11 |