SQL/tibero 티베로 & oracle 오라클

티베로(tibero) DB 구조

삐뚤어진 개발자 2022. 6. 28.

티베로 DB는 오라클과 흡사한 구조를 가지고 있습니다. 티맥스 소프트에서 오라클을 참고해서 100% 호환을 목표로 만든 DB입니다. 어마어마한 오라클의 라이선스 비용을 줄여주는 장점이 있습니다. 그래서 오라클을 쓰는 기업들은 티베로 DB로 많이 넘어가고 있는 중입니다.

 

티베로 DB를 사용할 일이 생겨서 개발하기 전 도움이 될까 전반적인 DB 구조에  대해 나열해보았습니다.

 

 

1. 티베로(tibero) db 전체적인 구조 

티베로 디비 구조

티베로(Tibero) 인스턴스는 크게 3가지 프로세스로 구성됩니다.

1.  리스너 (Listener)

   ODBC  JDBC 드라이버는 많이 들어보셨죠? DB 인터페이스 드라이버 입니다. 리스너는 워킹 프로세스와 DB인터페이스와 통신이 가능하도록 하는 프로세스입니다. 

- 유의할 점으로 리스너만 따로 가동/종료할 수 없고, DB 프로세스와 같이 가동되고 종료됩니다. 

 

2. 워킹 프로세스 (Working Process)

실제 통신을 하며 클라이언트의 요구사항을 처리하는 프로세스 입니다. 10개(기본값)의 스레드가 할당, 1개 스레드에 1개의 DB세션이 할당됩니다.

 

3. 백그라운드 프로세스 (Background Process)

워킹 프로세스에서 받은 요청을 처리하거나, 정해놓은 주기에 따라 동작(MS SQL에서 AGENT와 비슷한..)하는 프로세스입니다. 주로 메모리와 디스크에 접근하는 동작을 합니다.

 

4. 메모리 영역

- TSM (Tibero Shared Memory)

TSM은 사용자가 요청한 쿼리의 실행계획을 저장하고, 요청한 데이터를 블록단위로 저장합니다. 

이 블록단위의 데이터를 DB 사용자간에 공유하여 DB사용 성능향상을 위한 영역입니다.

 

- PGA

PGA는 워킹 프로세스가 사용자로부터 요청 결과를 정렬하는데 주로 사용되며 DB사용자 간에 공유를 하지않는 영역입니다.

- 유의사항으로 PGA 메모리 크기를 너무 작게 설정할 경우 할당받을 메모리 공간이 부족해 사용자가 접속이 안될 수도 있습니다.

 

5. 파일

- 컨트롤 파일

 데이터베이스 자체의 메타데이터를 갖고 있는 파일입니다.

 db가 필요로 하는 파일의 정보를 갖고 있습니다.

 

- 데이터 파일

 실제 데이터를 가지고 있는 파일입니다.

 

- 로그 파일

 DB에서 수행한 모든 변경 내역을 가지고 있는 파일입니다. 

 Media/Cache Recovery 등의 복구 행위를 할때 사용 됩니다.

 

2. Single/Multi Instance 구조 

2-1. Single

하나의 서버에 하나의 DB 인스턴스를 가지는 구조입니다.

 

2-2. Multi

하나의 서버에 여러개의 서비스(디비)를 운영한다면, 위와같은 구조로 운영하는 것을 권장합니다.

 

3. HA 구성

서버장애를 대비해 Stand by 인스턴스를 준비하고 있는 방식입니다. 동작되고 있는 티베로 서버가 장애를 일으키면 Stand by 서버가 동작하는 방식입니다.

추가로 한개의 서버와 공유볼륨, 클러스터웨어가 필요합니다.

 

 

4. TAC 구성

하나의 DB에 두 개 이상의 독립적인 인스턴스를 기동하여 업무 및 부하의 분산과 가용성을 모두 확보할수 있는 구조입니다. (오라클의 RAC 기능과 비슷)

 

Windows 계열 서버에서는 지원이 안되면, 공유스토리지 필요, 양쪽 노드에서 공유 저장소에 동시접근이 가능하게 세팅이 필요합니다. 

 

 

5. 폴더 구성

  설명
$TB_HOME Tibero HOME 디렉터리로서 엔진의 위치이다.
5 버전은 tibero5 라는 이름으로 생성되며
6 버전은 tibero6 라는 이름으로 생성된다.
마이너 버전은 HOME 디렉터리 네이밍과 관계 없다.
ex) /home/tibero6 , /tibero/tibero6
bin Tibero의 실행 파일과 서버 관리를 위한 유틸리티가 위치한 디렉터리이다. 이 디렉터리에 속한 파일 중에서 tbsvr과 tblistener는 Tibero를 구성하는 실행 파일이며, tbboot와 tbdown은 각각 Tibero를 기동하고 종료하는 역할을 한다.
client Tibero 클라이언트 실행 파일, 접속정보, ODBC, OLE DB 등
Tibero 클라이언트가 Tibero 서버와 통신할 수 있는 각종 Library등의 파일이 존재한다.
config Tibero의 환경설정 파일이 위치하는 디렉터리이다.
이 위치의 $TB_SID.tip 파일이 Tibero의 환경설정을 결정한다.
database 데이터파일이 위치하는 디폴트 경로이다.
$TB_SID.tip에 DB_CREATE_FILE_DEST를 별도로 지정하지 않을 경우 본 위치가 데이터파일, 컨트롤파일, 리두로그파일, 패스워드파일의 기본 위치가 된다.
instance Tibero의 각종 시스템 로그, DBMS 로그, Listener 로그 등 각종 로그 파일들이 위치하는 경로이다.
lib Spatial과 관련된 함수를 사용하기 위한 라이브러리 파일이 위치하는 디렉터리이다.
license Tibero의 라이선스 파일(license.xml)이 위치하는 디렉터리이다.
nls Tibero에서 사용하는 시간대 파일이 위치하는 디렉터리이다.
scripts Tibero DB를 생성할 때 사용하는 가종 SQL 문장이 있는 디렉터리이다. 각종 뷰/패키지의 정의도 해당 디렉터리에 존재한다.

 

6. 라이선스

항목 설명
Standard Edition 기본 라이선스로서, Single Instance or HA 구성 시 사용된다.
Parallel, TPR(오라클의 AWR)을 포함하여 티베로의 기본 기능을 사용할 수 있다.
Core수와 상관 없이 물리적인 CPU의 개수만큼 비용이 발생한다.
Enterprise Edition 기본 기능이 제공되며, 추가로 파티션과 Compress기능을 사용할 수 있다.
Core수 만큼 비용이 발생한다.
Enterprise Edition
(TAC)
TAC(오라클의 RAC) 기능을 사용할 수 있다.
Core수 만큼 비용이 발생한다.

 

 

 

긴글 읽어 주셔서 감사합니다.

더 궁금하신 사항은 댓글로 문의해주시면 빠르게 답변드리겠습니다.

 

참고: https://hobogi.tistory.com/entry/Tibero-Architecture-%ED%8B%B0%EB%B2%A0%EB%A1%9C-%EA%B5%AC%EC%A1%B0

댓글