백그라운드 프로세스
SQL> select paddr, name, description from v$bgprocess
2 order by paddr desc;
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E4E070 QMNC
AQ Coordinator
00000000F3E4D070 FBDA
Flashback Data Archiver Process
00000000F3E4C070 SMCO
Space Manager Process
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E4B070 ARC3
Archival Process 3
00000000F3E4A070 ARC2
Archival Process 2
00000000F3E49070 ARC1
Archival Process 1
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E48070 ARC0
Archival Process 0
00000000F3E46070 CJQ0
Job Queue Coordinator
00000000F3E45070 MARK
mark AU for resync koordinator
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E42070 MMNL
Manageability Monitor Process 2
00000000F3E41070 MMON
Manageability Monitor Process
00000000F3E40070 ASMB
ASM Background
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E3F070 RBAL
ASM Rebalance master
00000000F3E3E070 RECO
distributed recovery
00000000F3E3D070 SMON
System Monitor Process
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E3C070 CKPT
checkpoint
00000000F3E3B070 LGWR
Redo etc.
00000000F3E3A070 DBWf
db writer process 15 (f)
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E39070 DBWe
db writer process 14 (e)
00000000F3E38070 DBWd
db writer process 13 (d)
00000000F3E37070 DBWc
db writer process 12 (c)
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E36070 DBWb
db writer process 11 (b)
00000000F3E35070 DBWa
db writer process 10 (a)
00000000F3E34070 DBW9
db writer process 9
...
...
...
특화된 백그라운드 프로세스
- 백그라운드 프로세스 갯수 (version : Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production)
SQL> select paddr, name, description from v$bgprocess where paddr <> '00' order by paddr desc;
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E4E070 QMNC
AQ Coordinator
00000000F3E4D070 FBDA
Flashback Data Archiver Process
00000000F3E4C070 SMCO
Space Manager Process
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E4B070 ARC3
Archival Process 3
00000000F3E4A070 ARC2
Archival Process 2
00000000F3E49070 ARC1
Archival Process 1
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E48070 ARC0
Archival Process 0
00000000F3E46070 CJQ0
Job Queue Coordinator
00000000F3E45070 MARK
mark AU for resync koordinator
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E42070 MMNL
Manageability Monitor Process 2
00000000F3E41070 MMON
Manageability Monitor Process
00000000F3E40070 ASMB
ASM Background
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E3F070 RBAL
ASM Rebalance master
00000000F3E3E070 RECO
distributed recovery
00000000F3E3D070 SMON
System Monitor Process
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E3C070 CKPT
checkpoint
00000000F3E3B070 LGWR
Redo etc.
00000000F3E3A070 DBWf
db writer process 15 (f)
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E39070 DBWe
db writer process 14 (e)
00000000F3E38070 DBWd
db writer process 13 (d)
00000000F3E37070 DBWc
db writer process 12 (c)
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E36070 DBWb
db writer process 11 (b)
00000000F3E35070 DBWa
db writer process 10 (a)
00000000F3E34070 DBW9
db writer process 9
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E33070 DBW8
db writer process 8
00000000F3E32070 DBW7
db writer process 7
00000000F3E31070 DBW6
db writer process 6
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E30070 DBW5
db writer process 5
00000000F3E2F070 DBW4
db writer process 4
00000000F3E2E070 DBW3
db writer process 3
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E2D070 DBW2
db writer process 2
00000000F3E2C070 DBW1
db writer process 1
00000000F3E2B070 DBW0
db writer process 0
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E2A070 MMAN
Memory Manager
00000000F3E29070 DIA0
diagnosibility process 0
00000000F3E28070 PSP0
process spawner 0
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E27070 DBRM
Resource Manager process
00000000F3E26070 DIAG
diagnosibility process
00000000F3E25070 VKTM
Virtual Keeper of TiMe process
PADDR NAME
---------------- -----
DESCRIPTION
----------------------------------------------------------------
00000000F3E24070 PMON
process cleanup
40 rows selected.
PMON : 프로세스 모니터
- 비 정상적으로 커넥션이 종료한 후에 정리하는 일을 담당
- 커밋되지 않은 작업에 대해서 롤백을 개시하고 락을 해제하고, 실패한 프로세스에 할당된 SGA 자원을 풀어준다.
- 다른 오라클 백그라운드 프로세스를 모니터 하고, 재시작도 한다.
- LGWR가 실패한 경우 인스턴스를 중지 시키는 일도 한다.
- 자신을 오라클 TNS 리스너에 등록한다.
- 데이터 베이스가 구동할 때 리스너가 실행 중이면 PMON은 리스너와 연동하여 인스턴스의 서비스 이름, 부하 메트릭 같은 관련 파라미터를 리스너에 전달한다.
SMON : 시스템 모니터
- 시스템 레벨의 모든 작업을 수행하는 프로세스 이다.
- 시스템 레벨 관점으로 일을 바라보며 데이터베이스를 위한 가비지 컬렉터 역할을 수행한다.
다음의 일을 수행한다.
- 임시 공간 정리
- 테이블 스페이스 내의 빈 익스텐트를 합치는 작업을 한다.
- 인스턴스를 복구하는 시점에 복구할 데이터 파일을 사용할 수 없어서 건너뛴, 실패한 트랜잭션을 복구한다.
- RAC에서 실패한 노드의 인스턴스 복구를 수행
- OBJ$ 정리하기
- 언두 세그먼트 줄이기
- 언두 세그먼트 오프라인 하기
- DBA_TAB_MONITORING 뷰에서 나타나는 모니터링 통계를 삭제
- SMON_SCN_TIME 테이블에 저장된 SCN대 타임스탬프 매핑 정보를 제거
RECO : 분산 데이터베이스 복구
- 2PC(2-phase commit)을 하는 동안 장비가 멈춰 서거나 커넥션 손실 때문에 준비 상태로 남아 있는 트랜잭션을 복구
CKPT : 체크포인트 프로세스
- 데이터 파일의 파일 헤더를 수정하여 체크포인트를 직접 수행하는 프로세스를 도와주는 프로세스 이다.
- 다른 프로세스와 함께 구동된다.
DBWn : 데이터베이스 블록 Writer
- Dirty 블록을 디스크에 기록하는 일을 담당하는 백그라운드 프로세스이다.
- 성능이 가장 중요한 프로세스
- 한개 이상의 프로세스로 구성할 수 있다. (36개까지 가능)
- 비동기 I/O 사용
LGWR : 로그 Writer
- 리두 로그 버퍼의 내용을 디스크에 작성하는 프로세스
다음과 같은 경우 작업을 수행한다.
- 매 3초마다
- 트랜잭션이 커밋을 발생할 때마다
- 리두 로그 버퍼가 1/3로 채워졌거나 버퍼에 저장된 데이터를 1MB 담고 있을 때
ARCn : 아카이브 프로세스
- LGWR가 온라인 리두 로그 파일을 채웠을 때 그 파일을 다른 위치로 복제하는 일을 하는 프로세스
- 온라인 리두 로그 파일을 최소한 2개의 다른 위치로 복제한다.
DIAG : 진단 프로세스
- 오라클 11g 부터 ADR(Advanced Diagnostic Repository) 프로세스와 함께 인스턴스의 전체적인 상태를 모니터링 하는 프로세스
- 인스턴스의 장애를 처리하는데 필요한 정보를 캡쳐한다.
FBDA : 플래시백 데이터 아카이버 프로세스
- 오라클 11g 부터 플래시백 데이터를 아카이빙 하는 새롭게 추가된 기능을 담당하는 프로세스
- 백그라운드에서 데이터에 대한 이력을 순서대로 유지 및 관리
- 트랜잭션 커밋 후에 곧바로 작업을 수행하며, 해당 트랜잭션이 생성한 언두 데이터를 읽고 변경한 내용을 롤백한다. 그 후 그 정보를 플래시백 데이터 아카이브에 기록한다.
DBRM : 데이터베이스 리소스 관리자 프로세스
- 특정한 데이터베이스의 인스턴스를 위해 설정된 자원 계획을 수행한다.
GEN0 : 일반적인 태스크 실행 프로세스
- 데이터베이스를 위한 일반적인 작업을 수행하는 스레드를 제공
- 다른 프로세스로 인해 일어날 수 있는 잠재적인 블로킹 과정을 줄이는 일을 백그라운드에서 수행한다.
나머지 특화된 프로세스
ASM 관련 프로세스
- ASMB ( 자동 스토리지 관리 백그라운드 프로세스 )
- ASM을 사용하는 데이터베이스 인스턴스에서만 실행되는 프로세스
- ASM 인스턴스와 연결하여 변경되는 통계를 제공하고, ASM이 잘 살아있는지 체크하는 일을 한다.
- RBAM ( 재균형 프로세스)
- ASM을 사용하는 데이터베이스에서만 실행되는 프로세스
- ASM 디스크 그룹에 디스크를 추가하거나 제거할 때 재균형 요청을 처리하는 책임을 맡고 있다.
RAC 관련 프로세스
- 락 모니터 프로세스
- LMON으로 인스턴스의 장애를 감지하기 위해 클러스터에 있는 모든 인스턴스를 감시한다.
- 락 관리자 데몬 (LMD0) 프로세스
- 서비스 요청을 받아서 인스턴스 간에 블록 버퍼의 일관성을 유지하면서 글로벌 캐시 서비스를 제공
- 중재자 역할을 담당
- LMSn 락 관리자 서버 프로세스
- 서로 관련된 SGA 블록 버퍼 캐쉬의 일관성을 유지하는 일을 한다.
- 인스턴스당 10개까지 LMSn 프로세스를 띄울 수 있다.
- Lock 프로세스 LCK0
- LMD와 비슷하지만, 블록 버퍼가 아닌 모든 글로벌 자원에 대한 요청을 처리한다.
그 외
- 프로세스 생성기 (PSP0)
- 가상 시간 유지기 (VKTM)
- 공간 관리 조정자(SMCO)
유틸리티 백그라운드 프로세스
- 필요에 따라 사용자가 선택할 수 있는 프로세스
CJQ0와 Jnnn 프로세스 : Job Queue
- CJQ0는 시스템에서 다양한 스냅샷을 언제 재생할 필요가 있는지를 알려주는 작업 테이블을 감시한다.
QMNC와 Qnnn : AQ 진보된 큐
- QMNC 는 AQ와 alters 경보를 감시한다.
- QMNC 가 수생할 필요가 있는 작업을 Qnnn 프로세스에 알려주면 Qnnn 프로세스는 그 작업을 처리한다.
EMNC : 이벤트 모니터 프로세스
- AQ 아키텍쳐의 일부로 EMNC는 큐 구독자(Queue subscribers)에게 그들이 관심을 두고 있는 메세지를 공지한다.
MMAN : 메모리 관리자
- 메모리를 관리하며 메모리 컴포넌트들의 크기를 설정하거나 재조정한다.
MMON, MMNL과 Mnnn : 관리 모니터
- AWR(Automatic Workload Repository)에 통계 데이터를 수집하는데 사용된다.
CTWR : 변경 추적 프로세스
- 새 변경 추적 파일을 유지하는 책임을 맡고 있다.
RVWR : 복구 Writer
- FLASHBACK DATABASE 명령어와 함께 사용되는 플래시 복구 영역에서 블록의 이전 이미지를 유지하는 책임을 담당한다.
DMnn/DWnn: 데이터 펌프 마스터/작업자 프로세스