[DB] Tibero 배포 하는 법 (with. docker)

2025. 8. 12. 21:32·Infra

Tibero DB를 Docker로 배포하는 방법에 대해 알아보자

# 먼저 tibero란 무엇인가?

Tibero를 간단하게 말하자면 티맥스데이터에서 개발한 Oracle과 호환성 높은 한국에서 개발한 데이터베이스이다.

장점은 오라클과 비슷하고, 오라클 유지비용의 가격이 절반이다.

단점은,, 노코멘트 하겠다.

 

# 배포 과정

 

## 라이센스 발급 및 tibero7 압축파일 다운

먼저 tibero를 쓰기 위해 license.xml을 발급 받아야한다. 처음에는 한달 정도 사용해볼 수 있는 무료 라이센스를 준다.

그 후 tibero 설치를 위한 압축파일을 다운받고, 압축을 풀어줘야 한다.

위 과정은 홈페이지에서 설명이 충분하기에 생략하겠다.

https://docs.tmaxtibero.com/tibero/topics/installation/database-installation-on-linux/for-all/installation

 

## 배포 환경

배포 환경은 아무 서버에서나 구축할 수 있도록 Docker를 활용한다.

필자는 rocky linux 기반의 Docker에서 구축을 해야 했기에, image를 rocky linux로 설정해서 docker 배포를 했다.

 

### 압축파일 풀기

`tibero7~~~.tar.gz`로 다운 받은 걸 아래 명령어로 압축을 푼다.

여기서 Docker volume으로 연결할 것이기에, 연결될 폴더에 압축을 풀면 좋다.

필자는 `./test/volumn/tibero/tibero`에 넣어두었다.

tar -xvzf 파일명.tar.gz

그러면 tibero7이란 폴더가 보일 텐데, 여기서 license의 폴더에 라이센스 파일 `license.xml` 을 추가한다.

 

### ./tibero/Dockerfile

tibero를 설정할때, java가 필요하기에 설치를 해준다.

FROM rockylinux/rockylinux:8.10

RUN dnf install -y \
    gcc gcc-c++ libaio-devel \
    passwd which tar make unzip wget gdb \
    && dnf clean all

RUN wget --no-cookies --no-check-certificate \
    --header "Cookie: oraclelicense=accept-securebackup-cookie" \
    "https://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz" \
    -O /tmp/jdk-8u131-linux-x64.tar.gz

RUN mkdir -p /usr/java && \
    tar -xzf /tmp/jdk-8u131-linux-x64.tar.gz -C /usr/java && \
    ln -s /usr/java/jdk1.8.0_131 /usr/java/default

ENV JAVA_HOME=/usr/java/default
ENV PATH=$PATH:$JAVA_HOME/bin

EXPOSE 8629

CMD tail -f /dev/null

 

### ./docker-compose.yml

여기서 hostname은 license를 설정할때 세팅한 license-host 이름으로 설정하면 된다.

tibero:
      build:
        context: ./tibero
        dockerfile: Dockerfile
      image: rocky-tibero:7
      container_name: db-tibero
      hostname: license-host
      ports:
        - "19000:8629"
      volumes:
        - ./test/volume/tibero/db:/db
        - ./test/volume/tibero/tibero:/tibero
      networks:
        - test-network
      restart: unless-stopped

 

docker 배포 후 접속한다.

 

docker compose up -d tibero

docker exec -it db-tibero bash

 

### tibero 세팅

환경변수를 세팅한다

vi ~/.bash_profile

 

맨 아래에 이 데이터들을 추가한다.

export TB_HOME=/tibero/tibero7
export TB_SID=tibero
export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin

 

환경변수 설정 완료한다.

source ~/.bash_profile

 

TB config를 아래 명령어로 설정한다.

cd $TB_HOME/config
./gen_tip.sh

 

tbboot를 nomount로 실행한뒤 tbsql로 접속한다.

tbboot nomount

tbsql sys/tibero

 

아래 명령어로 SQL> 에 초기 DB를 설정해준다.

CREATE DATABASE 
USER sys IDENTIFIED BY tibero
MAXDATAFILES 256
CHARACTER SET UTF8
NATIONAL CHARACTER SET UTF16
LOGFILE 
GROUP 0 '/db/t1019d/redo1/redo01.log' SIZE 50M,
GROUP 1 '/db/t1019d/redo1/redo11.log' SIZE 50M,
GROUP 2 '/db/t1019d/redo1/redo21.log' SIZE 50M
MAXLOGFILES 100
MAXLOGMEMBERS 2
NOARCHIVELOG
DATAFILE '/db/t1019d/dbfile/system01.dtf' SIZE 300M
DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE '/db/t1019d/dbfile/temp01.dtf' SIZE 300M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128k
UNDO TABLESPACE UNDO
DATAFILE '/db/t1019d/dbfile/undo01.dtf' SIZE 300M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128k
DEFAULT TABLESPACE USR
DATAFILE '/db/t1019d/dbfile/usr01.dtf' SIZE 300M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128k
SYSSUB
DATAFILE '/db/t1019d/dbfile/syssub.dtf' SIZE 300M
;

 

Nomal 모드로 다시 부팅을 한다/

tbboot

 

tibero studio에서 제대로 확인하기 위한 아래 명령어를 수행한다.

cd $TB_HOME/script
/system.sh -p1 tibero -p2 syscat -a1 y -a2 y -a3 y -a4 y

 

이렇게 설정하면 DB를 접속할 수 있을 것이다.

Docker로 19000을 외부로 열어놨기에,
ID: sys, PW: tibero, Port: 19000, DB: tibero 로 접속이 가능할 것이다.

 

추가적으로 데이터를 덤프 뜰때, table space 설정 및 유저 추가 등은 추가로 작성하겠습니다.

---

필자는 공공기관 SI 개발을 하며 현재 신입 시절 두번째 프로젝트때 사내 테스트용 인프라 구축을 진행했는데, 회사에서 tibero에 대해 아는 사람이 없어서 혼자 끙끙 앓으며 찾아 개발해보았는데, 다른 분들은 이걸 보고 시간을 절약했으면 하는 바람에 블로깅을 한다.

'Infra' 카테고리의 다른 글

[책] 도메인 주도 개발 시작하기(1)  (1) 2024.12.24
'Infra' 카테고리의 다른 글
  • [책] 도메인 주도 개발 시작하기(1)
ckm7907
ckm7907
  • ckm7907
    백엔드 잘하고 싶어요!
    ckm7907
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • BACKEND (13)
        • Spring (13)
      • FRONTEND (1)
        • React (1)
      • Infra (10)
        • CICD (1)
        • 네트워크 (5)
        • Docker (2)
      • DBMS (2)
        • MySQL (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 글관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DockerHub
    Salt
    github
    self-hosted
    servlet
    SVC
    github Actions
    CICD
    tibero
    runners
    spring boot
    sha-256
    EC2
    Docker
    tibero studio
    단방향암호화
    비밀번호
    docker-compose
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
ckm7907
[DB] Tibero 배포 하는 법 (with. docker)
상단으로

티스토리툴바