DB/Tibero

[Tibero] 프로세스 (아키텍처)

빡상이 2023. 7. 27. 14:14
반응형

티베로 프로세스 구조

설명하기 앞서, 각각의 프로세스를 검색 할 수 있는 명령어로는 아래와 같다.

#실행 프로세스 중, tbsvr을 포함한 모든 프로세스를 출력
ps -ef |grep tbsvr

#실행 프로세스 중, 포그라운드 프로세스만 출력
ps -ef |grep FGWP

#실행 프로세스 중, 백그라운드 프로세스만 출력
ps -ef |grep BGWP

 

프로세스의 두가지 타입

포그라운드 프로세스 FGWP (워커 프로세스 또는 Working Process)

※클라이언트 프로세스와 직접 통신하며, 사용자의 요청을 처리하는 역할을 담당한다.

하나의 워킹 프로세스에는 하나의 컨트롤 스레드 + 다수의 워킹 스레드가 존재한다.

 

컨트롤 스레드

-Tibero 기동시 설정된 파라미터 값에 따라 스레드 생성

-신규(새로운) 접속 요청시 유휴한 워킹 스레드에 접속 할당

 

워킹 스레드
-클라이언트 프로세스와 1:1통신 → 메시지 처리 후 결과 반환

-SQL파싱, 최적화 등 DBMS의 대부분 작업을 처리

**※**하나의 워킹 프로세스에 존재하는 워킹 스레드 개수는 초기화 파라미터 _WTHR_PER_PROC로 조절이 가능하나, 기동 후에는 변경 불가능

**※**MAX_SESSION_COUNT = WTHR_PROC_CNT(워커 프로세스 수) * _WTHR_PER_PROC(각 워커 프로세스당 허용할 세션 수 )


백그파운드 프로세스 BGWP (Back Ground Process)

Internal Task나 Job Scheduler에 등록된 배치 작업을 수행

※클라이언트의 접속 요청을 직접 받지 않고 워커 스레드나 다른 백그라운드 프로세스가 요청할 때 또는 정해진 주기에 따라 동작하는 주로 시간이 오래 걸리는 디스크 작업을 담당하는 독립된 프로세스이다.

 

BGWP 5가지 구성

 

감시 프로세스(MONP : monitor process)

  1. 티베로 기동시, 최초로 생성되는 종료시에도 마지막에 종료된다
  2. 티베로 기동시, 리스너를 포함한 다른 프로세스를 생성, 주기적으로 각 프로세스 상태 점검
  3. 데드락 상태 검사

매니저 프로세스(MGWP : manager worker process)

  1. 시스템 관리 용도 프로세스
  2. 관리자의 접속 요청을 받아 이를 시스템 관리 용도로 예약된 워커 스레드에 접속을 할당
  3. 기본적으로 워커 프로세스와 동일한 역할을 수행하지만 리스너를 거치지 않고, 스페셜 포트를 통해 직접 접속
  4. sys 계정만 접속이 허용되며 , Local에서만 접속이 된다

에이전트 프로세스(AGNT : agent process)

  1. 시스템 유지를 위해 주기적으로 처리해야 하는 티베로 내부의 작업을 담당 : Internal Task나 Batch Job이 언제 수행되어야 하는지 판단은 AGENT 프로세스가 담당하지만, 실제 수행은 Foreground나 Background Worker Process에게 의뢰함.
  2. Multi-Thread 기반 구조로 동작하며, 서로 다른 용도의 업무를 스레드별로 나누어 수행.

데이터베이스 쓰기 프로세스(DBWR)

  1. 데이터베이스에서 변경된 내용을 디스크에 기록하는 일과 연관된 스레드들이 모여 있는 프로세스.
  2. 사용자가 변경한 블록을 디스크에 주기적으로 기록하는 스레드
  3. Redo Log를 DISK에 기록하는 스레드
  4. 두 스레드를 통해 데이터베이스의 체크포인트 과정을 관할하는 체크포인트 스레드

 

복구 프로세스(REWP)

  1. 복구 전용 프로세스
  2. Crash / Instance Recovery 수행
반응형