Tibero Architecture_1. 티베로 인스턴스

jisu park·2023년 8월 28일
0

Tibero

목록 보기
1/2

티베로 인스턴스

Tibero 전체구조

Tibero instance 프로세스

  • Tibero Instance 구조는 크게 리스너, 워커프로세스, 백그라운드 프로세스로 나누어 볼 수 있다.
tibero1    7463      1  0 13:18 pts/1    00:00:14 tbsvr          -t NORMAL -SVR_SID sixth
tibero1    7465   7463  0 13:19 pts/1    00:00:00 tbsvr_MGWP     -t NORMAL -SVR_SID sixth
tibero1    7466   7463  0 13:19 pts/1    00:00:00 tbsvr_FGWP000  -t NORMAL -SVR_SID sixth
tibero1    7467   7463  0 13:19 pts/1    00:00:25 tbsvr_FGWP001  -t NORMAL -SVR_SID sixth
tibero1    7468   7463  0 13:19 pts/1    00:00:00 tbsvr_PEWP000  -t NORMAL -SVR_SID sixth
tibero1    7469   7463  0 13:19 pts/1    00:00:00 tbsvr_PEWP001  -t NORMAL -SVR_SID sixth
tibero1    7470   7463  0 13:19 pts/1    00:00:00 tbsvr_PEWP002  -t NORMAL -SVR_SID sixth
tibero1    7471   7463  0 13:19 pts/1    00:00:00 tbsvr_PEWP003  -t NORMAL -SVR_SID sixth
tibero1    7472   7463  0 13:19 pts/1    00:00:19 tbsvr_AGNT     -t NORMAL -SVR_SID sixth
tibero1    7473   7463  0 13:19 pts/1    00:00:22 tbsvr_DBWR     -t NORMAL -SVR_SID sixth
tibero1    7474   7463  0 13:19 pts/1    00:00:01 tbsvr_RCWP     -t NORMAL -SVR_SID sixth

ps -ef|grep tbsvr 로 확인해본 티베로 서버 프로세스.
kill -9 <프로세스 id> 를 했을떄 db가 죽는다면 백그라운드 프로세스이다.
리스너는 ps -ef|grep tblistener 로 확인가능하다.

리스너

  • 클라이언트가 ODBC, JDBC와 같은 DB 접속 API를 통해서 요청을 보내면 Tibero 리스너가 이를 받아 유휴한 워커 프로세스(작업프로세스)에 할당한다.

워커프로세스

  • 워커 프로세스 내 CTHR(Control Thread)는 자기자신의 WTHR(Woker Thread) 상태를 체크하여 일하지 않는 WTHR에게 할당한다. WTHR는 Client와 인증절차를 거쳐 세션을 시작한다. 하나의 클라이언트 접속은 하나의 세션과 같다. 클라이언트-워커스레드는 1:1로 통신 [아래 그림 참고]

백그라운드 프로세스

  • 백그라운드 프로세스는 워커프로세스가 요청한 작업 및 배치 작업 수행. 주로 시간이 오래걸리는 디스크 작업을 담당한다. 사용자의 요청과 비동기적으로 동작한다. [아래그림 참고]

Tibero instance 메모리

  • 인스턴스가 사용가능한 메모리는 PGASGA 영역으로 이루어진다.
    PGA : Program Global Area (Private Global Area). 각각의 서버 프로세스가 독자적으로 사용하는 데이터베이스의 비공유 메모리 영역이다. 프로세스에 대한 데이터와 제어정보가 포함된다. 서버 프로세스가 시작될 때 생성되며, 종료될 때 해제된다. join, index 등의 정보 담고 있음. (티베로의 경우 thread 기반의 DB이기 때문에 세션단위로 PGA가 구분됨)
    SGA : System Global Area . 인스턴스에 대한 데이터와 제어정보를 가지는 공유 메모리 영역. 사용자가 동시에 데이터를 공유한다.

    참고자료 :
    https://blog.naver.com/93hyuna/220638901109
    https://dataonair.or.kr/db-tech-reference/d-lounge/technical-data/?mod=document&uid=236107

TSM(Tibero Shared Memory)

  • 티베로 인스턴스 내 공유메모리(==SGA)TSM(Tibero Shared Memory)라고도 부른다. 인스턴스에 대한 데이터와 제어정보를 가지고 있다. TSM을 통해 사용자는 데이터를 동시에 공유할 수 있으며, 자주 요청되는 정보를 메모리에 저장하여 사용하므로 디스크 I/O가 감소하여 성능을 높일 수 있다.

    이렇게 크게 네부분으로 나뉜다.
    SQL 캐시 (SQL Cache) : SQL 문장이 입력되었을 때 파싱, 문법 체크, 최적화 수행, 실행 계획을 작성하는 일련의 과정에 대한 정보를 저장한 메모리 영역
    데이터 사전 캐시 (Data Dictionary Cache) : 데이터 사전에 대한 정보가 있는 메모리 영역
    데이터베이스 버퍼 (Database Buffer) : 최근에 사용된 데이터 블록을 저장하는 메모리 영역. 티베로 서버 프로세스에 의해 사용되어 (client에 의해 데이터 변경 등) free buffer가 dirty buffer가 되면 (그림에서 어두운 부분) DBWR(데이터베이스 쓰기 프로세스)가 이를 찾아 디스크에 기록하고 다시 free buffer로 만든다.
    Redo 로그 버퍼 (Redo Log Buffer) : 데이터가 변경되기 전과 후의 정보를 저장하는 메모리 영역

    참고자료 : https://otsteam.tistory.com/126

  • 실제로 티베로 접속해서 조회해보면 아래와 같이 공유메모리와 버퍼 사이즈를 확인해볼 수 있다.

    참고자료 :
    https://technet.tmaxsoft.com/download.do?filePath=/nas/technet/technet/upload/kss/tbook/tibero/2014/09/&fileName=FILE-20140901-000005_140901120202_1.pdf


프로세스와 메모리 관련하여 티베로 서버에서 확인해보는 실습을 추가로 적을 예정이다. 티베로 화이팅!

profile
DB MASTER⭐

2개의 댓글

comment-user-thumbnail
2023년 11월 15일

화이팅!!!

답글 달기
comment-user-thumbnail
2024년 1월 19일

글이 잘 읽히네요~

답글 달기