728x90
개발망을 구축하는 과정에서 Tibero DB를 활용해야 했는데, 정부나 국내 스타트업에서 사용을 많이 하고 있는 걸로 알고 있었는데 실제로 처음 써보게 되어서, 과정을 기록해보려고 합니다.
우선 리눅스 / 윈도우 버전이 있는데 저는 윈도에 설치해야 했지만 우선 테스트를 위하여 개발망 PC m2 chip에 설치를 해야 했습니다.
이것만 보면 제 PC와 동일하다면 바로 따라칠 수 있게끔 기록해 두었습니다.
우선 홈페이지에 가입 후 티베로 Linux(x86) 64bit를 다운로드합니다. 2개를 다운로드 해야합니다. 하나는 메인 홈페이
2개를 다운로드 합니다. 데모 라이선스는 신청 후 메일로 xml 파일이 다운로드가 될 것입니다.
1. Docker 컨테이너 생성
# Ubuntu 20.04 버전으로 컨테이너 생성
docker run -i -t -p 8629:8629 --name [원하는 도커이름] --platform linux/amd64 --hostname [호스트명 ex: kdb] ubuntu:20.04 /bin/bash
## RHEL 8.10 컨테이너 생성 및 실행
docker run -i -t -p 8629:8629 --name tdb_rhel --platform linux/amd64 --hostname kdb registry.access.redhat.com/ubi8/ubi:8.10 /bin/bash
24 버전으로 처음에 도커 컨테이너 생성을 하였으나 error 가 자꾸 나서 20 버전으로 바꾸었습니다. 라이브러리 관련해서 호환이 되지 않는 디펜던시 문제가 있는 걸로 보입니다. 저는 레드햇 버전으로 했습니다.
2. 기본패키지 설치
# EPEL 저장소 추가
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# 필요한 패키지 설치
dnf update -y
dnf install -y sudo vim libaio ncurses-compat-libs libnsl2 compat-openssl10
3. 환경변수 설정 (도커 꺼지면 계속 설정해야 하니 등록)
cat << EOF >> ~/.profile
export TB_HOME=/usr/local/tibero6
export TB_SID=tibero
export TB_PROF_DIR=\$TB_HOME/instance/prof
export PATH=\$TB_HOME/bin:\$TB_HOME/client/bin:\$PATH
export LD_LIBRARY_PATH=\$TB_HOME/lib:\$TB_HOME/client/lib:\$LD_LIBRARY_PATH
EOF
source ~/.profile
Vi 편집기 사용 시 사용하는 키
- i : insert
:wq : 저장하고 종료
4. 바이너리 및 라이선스 파일 복사
# 호스트에서 실행
docker cp ./tibero_data/tibero6-bin-FS07_PS02-linux64_3.10-277759-20240826115837.tar.gz tdb_rhel:/usr/local/
# 컨테이너에서 압축 해제
docker exec -it tdb_rhel bash -c "cd /usr/local && tar -xzvf tibero6-bin-FS07_PS02-linux64_3.10-277759-20240826115837.tar.gz"
# 라이센스 디렉토리 생성 및 파일 복사
docker exec -it tdb_rhel mkdir -p /usr/local/tibero6/license
docker cp ./tibero_data/license.xml tdb_rhel:/usr/local/tibero6/license/
5. 데이터베이스 생성
5.1 데이터베이스 생성 스크립트 작성
# 컨테이너에 접속
docker exec -it tdb_rhel bash
# db_c.sql 파일 생성
cat << 'EOF' > /usr/local/tibero6/db_c.sql
create database
user sys identified by tibero
character set UTF8
national character set UTF16
logfile group 0 ('redolog001.log','redolog011.log') size 200M,
group 1 ('redolog002.log','redolog012.log') size 200M,
group 2 ('redolog003.log','redolog013.log') size 200M
maxdatafiles 1024
maxlogfiles 100
maxlogmembers 8
archivelog
datafile 'system001.dtf' size 1G autoextend off
default tablespace USR
datafile 'usr001.dtf' size 128M autoextend off
default temporary tablespace TEMP
tempfile 'temp001.dtf' size 1G autoextend off
extent management local AUTOALLOCATE
undo tablespace UNDO
datafile 'undo001.dtf' size 1G autoextend off
extent management local AUTOALLOCATE;
EOF
5.2 데이터베이스 생성 스크립트 작성
# 설정 파일 생성
cd $TB_HOME
sh $TB_HOME/config/gen_tip.sh
# AIO 옵션 추가
echo "_DBWR_USE_AIO=N" >> $TB_HOME/config/tibero.tip
5.3 데이터베이스 생성 스크립트 작성
# Tibero 시작 (nomount 모드)
tbboot nomount
# 데이터베이스 생성
tbsql sys/tibero @db_c.sql
# Tibero 재시작
tbdown
tbboot
# 시스템 스크립트 실행
sh $TB_HOME/scripts/system.sh -p1 tibero -p2 syscat -a1 y -a2 y -a3 y -a4 y
6. 테이블 데이터 생성(test)
-- tbsql 접속
tbsql sys/tibero
-- 테스트 사용자 생성
CREATE USER test_user IDENTIFIED BY test123;
-- 권한 부여
GRANT CONNECT, RESOURCE TO test_user;
-- test_user로 전환
CONNECT test_user/test123
-- 테이블 생성
CREATE TABLE employees (
emp_id NUMBER PRIMARY KEY,
emp_name VARCHAR2(100),
email VARCHAR2(200),
hire_date DATE,
salary NUMBER(10,2)
);
-- 테스트 데이터 입력
INSERT INTO employees VALUES (1, '김철수', 'kim@example.com', SYSDATE, 5000000);
INSERT INTO employees VALUES (2, '이영희', 'lee@example.com', SYSDATE, 5500000);
-- 변경사항 저장
COMMIT;
-- 데이터 확인
SELECT * FROM employees;
6. 확인사항
- 데이터베이스가 정상적으로 생성되었는지 확인
- 사용자 생성 및 테이블 생성이 정상적으로 되었는지 확인
- 데이터 입력 및 조회가 정상적으로 되는지 확인
이렇게 하면 M1/M2 Mac 환경에서 Docker를 사용하여 Tibero 데이터베이스를 설치하고 기본적인 테이블까지 생성하는 과정이 완료됩니다.
주의사항
- M1/M2 Mac에서는 반드시 --platform linux/amd64 옵션을 사용해야 합니다.
- _DBWR_USE_AIO=N 설정은 M1/M2 Mac에서 필수입니다.
- 환경변수 설정 후에는 반드시 source ~/. profile 명령어로 적용해야 합니다.
결과
가상의 테이블을 테스트해보니 자세히 나오는 모습입니다. 처음 해보는 거라 어려웠지만 천천히 따라 해보시면서 디버깅을 GPT한테 물어보면서 하면 금방 하는 것 같습니다.
728x90
'data(SQL)' 카테고리의 다른 글
[머신러닝] 데이터와 인공지능 (0) | 2022.10.19 |
---|---|
2일차 SQL 셀렉션 (0) | 2022.09.07 |
[data분석] 1일차 SQL 강좌정리 및 설치 기본 (0) | 2022.09.05 |