전문가를 위한 오라클 데이터베이스 아키텍처 (2014년)
백그라운드 프로세스 0 0 92,161

by 구루비스터디 백그라운드 프로세스 v$bgprocess PMON SMON CKPT RECO [2018.09.27]


백그라운드 프로세스




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: 데이터 펌프 마스터/작업자 프로세스
  • 데이터 펌프 작업 진행
"데이터베이스 스터디모임" 에서 2014년에 "전문가를 위한 오라클 데이터베이스 아키텍처 " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4015

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입