제목
[Tibero] CentOS에 Tibero6 설치
관련 게시글
[CentOS] CentOS란? VM에 CentOS 9 설치하기(ISO 파일)
[Tibero] CentOS에 Tibero6 설치
목차
0. 들어가면서
1. 설치 전 준비사항
2. 설치
0. 들어가면서
이번 게시글에서 CentOS환경에 Tibero6를 설치할예정입니다.
Tibero 6 공식문서를 보면서,
VM - CentOS에 Tibero6를 설치하겠습니다.
한글, 영어로 구축한 CentOS 두 곳에 설치하면서 게시글을 작성하기 때문에,
UI에 한글, 영어가 혼용되어 있습니다. 양해 바랍니다.
1. 설치 전 준비사항
각 OS에 Tibero를 설치하기 위한 공통적인 요구사항은,
RAM 1GB, Swap 공간 2GB, /tmp 디렉토리 용량 500MB 이상,
디스크 용량 400MB 이상입니다.
1.1 RAM과 Swap space
RAM과 스왑공간은 주로 1 : 2 비율인 것을 확인할 수 있습니다.
스왑공간은 디스크 공간을 할당하여 RAM을 보조합니다.
RAM보다 성능이 떨어지지만,
(RAM 스펙을 높이는 것보다)스왑공간을 배정하는 것이 저렴합니다.
RAM 용량이 충분하다면, 1 : 2 비율을 준수하지 않아도 됩니다.
어떻게 할당할지는 아래 표를 참고해주세요.
RAM | Swap space | ||
2GB 이하 | 2배 | ||
2 ~ 8 GB | 1배 | ||
8 ~ 64 GB | 4GB ~ RAM 용량의 1/2 배 | ||
64GB ~ | 최소 4GB |
https://access.redhat.com/ko/solutions/744483
(윈도우의 경우, 별도의 스왑공간을 필요로 하지 않습니다)
1.2 JDK
Tibero를 설치하기 위해 JDK 1.5.17 이상이 요구됩니다.
JDK를 설치합니다.
1.2.1 설치가능한 jdk 확인하기
yum또는 dnf로 설치 가능한 jdk를 확인합니다.
dnf list java*jdk
yum list java*list
1.2.2 jdk 설치하기
yum또는 dnf로 설치 가능한 jdk를 설치합니다.
sudo dnf install <설치하고자하는 jdk 꾸러미>
sudo yum install <설치하고자하는 jdk 꾸러미>
sudo dnf install java-1.8.0-openjdk.x86_64
sudo yum install java-1.8.0-openjdk.x86_64
1.2.3 설치된 jdk 확인하기
java -version
1.3 OS별 필수 패키지
Window는 WSH 5.6 이상을 필요로 합니다.
아래는 Linux 필수 요구 패키지입니다.
gcc-3.4.6-11
gcc-c++-3.4.6-11
libgcc-3.4.6-11
libstdc++-3.4.6-11
libstdc++-devel-3.4.6-11
compat-libstdc++-33-3.2.3-47.3
libaio-0.3.105-2
libaio-devel-0.3.105-2
(해당 버전이 필수한 것이 아닌, 최소한 해당 버전 이상이 설치되어 있어야 합니다)
rpm, yum, dnf를 통해 패키지가 설치되어있는지 확인할 수 있습니다.
1.3.0 패키지 설치 확인법 - rpm, yum, dnf 차이
rpm, yum, dnf 모두 Linux 패키지 관리 도구입니다.
RPM(Red Hat Package Manager)은 네트워크 연결 없이,
로컬 패키지 파일을 다루기 때문에 상대적으로 빠릅니다.
YUM(Yellowdog Updater, Modified)과
DNF(Dandified YUM)는,
rpm 기반으로 의존성관리를 자동으로 수행합니다.
dnf는 yum의 개선판으로, 최신 시스템에서 권장되며 yum과 호환되는 명령어를 지원합니다.
1.3.1 패키지 설치 확인법 - rpm [알피엠]
rpm을 통해 해당 패키지가 설치되어있는지 확인합니다.
rpm -q <패키지이름>
rpm -q gcc
rpm -q gcc-c++
rpm -q libgcc
rpm -q libstdc++
rpm -q libstdc++-devel
rpm -q compat-libstdc++
rpm -q libaio
rpm -q libaio-devel
1.3.2 패키지 설치 확인법 - yum [얌]
yum list installed <패키지이름>
yum list installed gcc
yum list installed gcc-c++
yum list installed libgcc
yum list installed libstdc++
yum list installed libstdc++-devel
yum list installed compat-libstdc++
yum list installed libaio
yum list installed libaio-devel
1.3.3 패키지 설치 확인법 - dnf [디엔에프]
dnf list installed <패키지이름>
dnf list installed gcc
dnf list installed gcc-c++
dnf list installed libgcc
dnf list installed libstdc++
dnf list installed libstdc++-devel
dnf list installed compat-libstdc++
dnf list installed libaio
dnf list installed libaio-devel
1.3.4 패키지 설치
이제 설치되어있지 않은 필수 패키지를 설치하도록 합니다.
편의상 네트워크를 사용하여 설치할 것이므로,
rpm이 아닌 yum, dnf를 사용하도록 하겠습니다.
dnf, yum 중 선호하는 것을 사용해도 무방합니다.
sudo dnf install gcc gcc-c++ libgcc libstdc++ libstdc++-devel compat-libstdc++ libaio libaio-devel
sudo yum install gcc gcc-c++ libgcc libstdc++ libstdc++-devel compat-libstdc++ libaio libaio-devel
OS 버전에 따라 compat-libstdc++가 설치되지 않을 수 있습니다.
EPEL(Extra Packages for Enterprise Linux) 저장소를 활용하여 compat-libstdc++를 설치합니다.
sudo dnf install epel-release
sudo dnf search compat-libstdc++
마찬가지로 dnf 대신 yum을 사용할 수도 있습니다.
sudo yum install epel-release
sudo yum search compat-libstdc++
OS 버전에 따라 존재하지 않을 가능성이 있습니다.
저는 compat-libstdc++ 패키지가 존재하지 않았으므로 생략했습니다.
1.4 파라미터 설정
Linux 환경의 파라미터를 설정합니다.
1.4.1 /etc/sysctl.conf
nano 편집기로 sysctl.conf 파일을 편집합니다.
sudo nano /etc/sysctl.conf
아래 문구를 추가합니다.
kernel.sem = 10000 32000 10000 10000
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 1024 65000
sudo sysctl -p 명령어를 통해 변경된 설정을 적용합니다.
sudo sysctl -p
1.4.2 /etc/security/limits.conf
마찬가지로 nano 편집기를 사용하여 파일을 수정합니다.
(vim, vi 등 편한 편집기를 사용하셔도 됩니다)
sudo nano /etc/security/limits.conf
아래 내용을 위와 같이 추가합니다.
#nofile (열 수 있는 파일 디스크립터의 수)
* soft nofile 1024
* hard nofile 65536
#nproc (사용자가 생성할 수 있는 최대 프로세스 수)
* soft nproc 2047
* hard nproc 16384
1.4.3 /etc/systemd/logind.conf
RHEL 7.2 이상부터 추가할 항목입니다.
sudo nano /etc/systemd/logind.conf
#RemoveIPC=no
위 항목을 아래처럼 변경합니다.
RemoveIPC=no
2. 설치
2.1 tar.gz 다운로드 및 라이센스 발급
tibero6 다운로드 페이지에서,
tar.gz 파일을 다운로드 합니다.
필요에 따라 데모라이선스 신청을 진행합니다.
2.2 환경 변수 설정
tar.gz 파일과 license.xml 파일을 기반으로 환경변수를 설정합니다.
환경변수 설정 파일은 .bashrc, .bash_profile, .profile 등 사용자 요구사항에 따라 달리 적용합니다.
2.2.1 환경변수파일 선택
.bashrc
특정 사용자에 적용됩니다.
비로그인 셸(터미널을 열 때, 새로운 셸을 시작할 때)에서 적용됩니다.
alias나 명령어 설정을 위해 사용됩니다.
환경변수는 비로그인 셸에서만 적용됩니다.
.bash_profile
특정사용자에 적용됩니다.
로그인 셸(로그인 시, SSH 접속 시 등)에서 적용됩니다.
환경변수를 설정합니다.
.bash_profile에서 .bashrc를 호출하여 로그인 셸에서도 .bashrc 설정이 적용되도록 할 수 있습니다.
/etc/bash.bashrc
모든 사용자에 적용됩니다.
비로그인 셸(터미널을 열 때, 새로운 셸을 시작할 때)에서 적용됩니다.
alias나 명령어 설정을 위해 사용됩니다.
모든 사용자가 터미널을 열 때 공통 설정이 적용되도록 하려면 이 파일을 사용합니다.
/etc/profile
모든 사용자에 적용됩니다.
로그인 셸(로그인 시, SSH 접속 시 등)에서 적용됩니다.
환경변수를 설정합니다.
시스템에 로그인할 때 공통 설정이 적용되도록 하려면 이 파일을 사용합니다.
2.2.2 환경변수 적용
저는 /etc/profile 에 환경변수를 설정했습니다.
export TB_HOME=/home/tibero/Tibero/tibero6
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
설정이 적용되도록 아래 명령어를 적용합니다.
source /etc/profile
2.3 Tibero 설치
2.3.1 tar.gz 파일 압축해제 및 license.xml 파일 이동
tar.gz 파일을 home/tibero/Tibero 디렉토리에서 해제합니다.
(tar 파일은 자동완성(tap 키) 기능을 사용하도록 합니다)
sudo mkdir -p /home/tibero/Tibero && sudo tar -xzvf tibero6-bin-FS07_PS01-linux64_3.10-269987-20240327170532.tar.gz -C /home/tibero/Tibero
이후, 라이선스 파일을 $TB_HOME/license 디렉토리에 복사합니다.
아래 echo 명령어를 사용하여 $TB_HOME이 제대로 설정되어 있는지 확인합니다.
echo $TB_HOME
sudo cp license.xml $TB_HOME/license
2.3.2 $TB_HOME/config/gen_tip.sh 파일 실행
저는 일반 계정으로 gen_tip.sh 실행이 안되는 오류가 발생하여,
root 계정으로 실행해주었습니다.
su -
root계정 패스워드 입력
cd $TB_HOME/config
./gen_tip.sh
2.3.3 Tibero 서버 NOMOUNT 모드로 기동
tbboot nomount
tbsvr: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
위와 같은 오류가 발생한다면 libnsl을 설치합니다.
(yum / dnf 택1)
sudo yum install libnsl
sudo dnf install libnsl
저는 위와 같은 오류가 발생했습니다.
위에서 언급했듯이 동시에 2개의 OS로 티베로를 설치하면서,
다른 OS에서 발급받은 라이센스를 사용했기 때문이었습니다.
error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
위와 같은 오류가 발생한다면 ncurses* 패키지를 설치합니다.
(yum / dnf 택1)
sudo yum install ncurses*
sudo dnf install ncurses*
그럼에도 불구하고 동일한 문제가 발생한다면,
심볼릭 링크를 걸어줍니다.
ln -s /usr/lib64/libncurses.so.6.2 /usr/lib64/libncurses.so.5
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
ln -s /usr/lib64/libform.so.6.2 /usr/lib64/libform.so.5
위 사진에선 libncurses.so.6.1, libtinfo.so.6.1을 사용했으나,
라이브러리 확인 결과 버전이 달랐던 것으로 확인되었습니다.
심볼릭 링크를 삭제 후 다시 걸어줬습니다.
(tab을 활용한 자동완성을 사용해주도록 하여 실수를 예방합니다)
아래는 제가 오류를 해결하기 위해 심볼릭 링크를 삭제 - 재설정한 코드 중 일부입니다.
rm /usr/lib64/libncurese.so.5
ln -s /usr/lib64/libncurses.so.6.2 /usr/lib64/libcurses.so.5
2.3.4 sys 사용자로 DB 접속
tbsql sys/tibero
2.3.5 원하는 DB 생성
아래는 임시로 DB를 생성하는 문장입니다.
create database "tibero"
user sys identified by tibero
maxinstances 8
maxdatafiles 100
character set MSWIN949
national character set UTF16
logfile
group 1 'log001.log' size 100M,
group 2 'log002.log' size 100M,
group 3 'log003.log' size 100M
maxloggroups 255
maxlogmembers 8
noarchivelog
datafile 'system001.dtf' size 100M autoextend on next 100M maxsize unlimited
default temporary tablespace TEMP
tempfile 'temp001.dtf' size 100M autoextend on next 100M maxsize unlimited
extent management local autoallocate
undo tablespace UNDO
datafile 'undo001.dtf' size 100M autoextend on next 100M maxsize unlimited
extent management local autoallocate;
2.3.6 tbboot 명령어로 재기동
tbboot
2.3.7 $TB_HOME/scripts/system.sh 파일 실행
현재 디렉터리에 있는 SQL 파일이 실행됩니다.
role, system user, view, pakage 등이 생성됩니다.
sys 및 syscat 계정에 대한 기본 암호는 각각 tibero, syscat 입니다.
'DBMS' 카테고리의 다른 글
Redis(Remote Dictionary Server) 란? (0) | 2023.11.14 |
---|