내용 목차
본 장에서는 Tibero를 설치하기에 앞서 필요한 하드디스크의 용량 확인 및 JDK 설치, 운영체제별 커널 파라미터(Kernel parameters)의 설정을 설명한다.
Tibero를 설치하기 전에 확인하고 설정해야 할 준비사항은 다음과 같다.
Tibero를 설치하기 위해서는 각 플랫폼별로 약간의 차이가 있지만 최소 2GB 이상의 하드디스크 여유공간이 필요하다. 이는 Tibero를 설치하고 나서 데이터베이스를 생성할 때 최소로 필요한 하드디스크 공간을 의미하기도 한다.
하드웨어 요구사항에 대한 자세한 내용은 “1.3. 시스템 요구 사항”을 참고한다.
하드디스크 용량을 확인하는 방법은 여러 가지가 있다. UNIX 계열 시스템에서는 df 명령어로 확인할 수 있고, Windows 계열 시스템에서는 설치할 하드디스크의 속성 항목을 통해 확인이 가능하다.
Tibero를 설치하기 전에 JDK 1.5.17 이상이 반드시 설치되어 있어야 한다.
다음 위치에서 JDK를 다운로드할 수 있다.
http://www.oracle.com/technetwork/java/javase/downloads/index.html
만약 시스템이 Oracle사의 JDK를 사용하지 않는다면 각각의 시스템에 적합한 JDK를 찾아 설치한다. 예를 들어 AIX는 IBM에서 JDK를 다운로드받아 설치한다.
각 시스템별 JDK 설치 방법은 다음 위치에서 확인할 수 있다.
http://www.oracle.com/technetwork/java/index.html
1. 현재 JDK 1.9 이상은 지원하지 않는다.
2. 벤더별 JDK 설치 방법은 각 벤더에서 제공하는 설치 안내서를 참고한다.
본 절에서는 운영체제별로 요구하는 패키지에 대해 설명한다.
각 패키지들은 반드시 해당 버전 이상의 패키지가 설치되어 있어야 하며, 각 OS 및 버전별로 패키지명이나 버전이 상이할 수 있다.
Platform | Packages |
---|---|
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 libaio-0.3.105-2 libaio-devel-0.3.105-2 pstack glibc |
Windows | WSH 5.6 |
Solaris | libCrun.so.1 (SUNW_1.6) pstack |
AIX | procstack |
[참고]
RHEL 8.1 이상 버전부터는 아래 패키지가 설치되어 있어야 한다.
Platform | Packages |
---|---|
Linux | libnsl.so.1 libncurses.so.5 |
본 절에서는 운영체제별로 설정해야 할 커널 파라미터와 Shell Limits 파라미터를 설명한다. 운영체제별로 커널 파라미터의 값을 변경한 경우에는 반드시 시스템을 다시 기동시켜야 한다.
세마포어는 Tibero만 사용하는 것이 아니기 때문에, 추가로 각 항목별로 여유분(OS의 다른 프로세스용)도 추가해 주어야 한다. (예. 각각 +1000)
Tibero 전체 Thread 수는 대략 아래와 같다.
MAX_SESSION_COUNT + (MAX_SESSION_COUNT/WTHR_PER_PROC) + 500
Linux 환경에서 설정할 커널 파라미터와 Shell Limits 파라미터는 다음과 같다.
설정 파일
/etc/sysctl.conf
설정값
커널 파라미터 | 값 |
---|---|
kernel.sem | 순서대로 SEMMSL, SEMMNS, SEMOPM, SEMMNI 최소 설정값은 아래와 같다.
max값을 높게 설정해도 큰 문제가 없기에 여유롭게 설정하는 것을 권장한다. |
kernel.shmall | ceil(shmmax/PAGE_SIZE) |
kernel.shmmax | 물리적인 메모리의 절반 (byte) |
kernel.shmmni | 4096 |
fs.nr_open | nofile 파라미터 이상으로 설정한다. |
fs.file-max | (nofile 파라미터) x (WTHR_PROC_CNT + PEP_PROC_CNT) 또는 67108864 으로 설정한다. |
fs.aio-max-nr | 1048576 |
net.ipv4.ip_local_port_range | 1024 65000 |
net.core.rmem_default | 262144, OS 기존 설정값 중 최댓값 |
net.core.wmem_default | 262144, OS 기존 설정값 중 최댓값 |
net.core.rmem_max | 67108864, OS 기존 설정값, TCP_RCVBUF_SIZE, _INC_TCP_RCVBUF_SIZE 중 최댓값 |
net.core.wmem_max | 67108864, OS 기존 설정값, TCP_SNDBUF_SIZE, _INC_TCP_SNDBUF_SIZE 중 최댓값 |
설정 파일
/etc/security/limits.conf
설정값
파라미터 | 설명 |
---|---|
nofile | (WTHR_PER_PROC * ((total data files in db) + 15)) + (tbsvr process count + 5) + 100 또는 크게 3,000,000 으로 설정한다. |
nproc | MAX_SESSION_COUNT+10000 이상으로 설정한다.
|
[참고]
RHEL 7.2 이상 버전부터는 아래 커널 파라미터 설정이 필요하다.
설정 파일
/etc/systemd/logind.conf
설정값
커널 파라미터 | 값 |
---|---|
RemoveIPC | No |
SELinux를 enforce mode로 사용할 경우 프로세스가 비정상적인 동작을 할 수 있어 Tibero를 사용하는 경우 enforce mode로 설정하는 것을 권장하지 않는다.
Solaris 환경에서 설정할 커널 파라미터와 Shell Limits 파라미터는 다음과 같다.
설정 파일
/etc/system
설정값
커널 파라미터 | 값 |
---|---|
project.max-sem-ids | (Tibero 전체 Thread 수) x 2 |
process.max-sem-nsems | 10000 |
process.max-sem-ops | 200 |
project.max-shm-memory | 4294967295 (물리적인 메모리의 절반) |
project.max-shm-ids | 100 |
project.max-lwps | MAX_SESSION_COUNT+10000 이상 |
설정 파일
/etc/system
설정값
커널 파라미터 | 값 |
---|---|
nofile | (WTHR_PER_PROC * ((total data files in db) + 15)) + (tbsvr process count + 5) + 100 또는 크게 3,000,000 으로 설정한다. |
nproc |
|
[참고]
Solaris 10부터는 프로젝트를 이용하여 각 사용자 단위로 파라미터를 관리하는 것을 권장한다.
다음은 사용자 단위로 파라미터를 적용하는 예제이다.
프로젝트를 생성한다.
# projadd -c "tibero" 'user.tibero'
파라미터를 설정한다.
# projmod -sK "project.max-shm-memory=(privileged,4294967295,deny)" user.tibero
해당 유저로 재접속한다.
아래와 같은 방법으로 변경된 파라미터 내역에 대해 확인이 가능하다.
# prctl -n project.max-shm-memory -i project user.tibero project: 100: user.tibero NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.max-shm-memory privileged 4.00GB - deny - system 16.0EB max deny -
AIX 환경에서 설정할 커널 파라미터와 Shell Limits 파라미터는 다음과 같다.
AIX 환경에서 변경이 필요한 유일한 커널 파라미터는 maxuproc이다. 해당 파라미터는 smitty 또는 chdev 명령어를 통해 아래와 같이 변경한다. AIX 커널은 필요에 따라 자원을 사전 정의된 한계까지 동적으로 할당 및 재할당하기 때문에 그 외 별도의 커널 파라미터 설정은 필요하지 않다.
# 현재 설정된 값 확인 # lsattr -E -l sys0 -a maxuproc maxuproc 1024 Maximum number of PROCESSES allowed per user True # maxuproc 값 변경 # chdev -l sys0 -a maxuproc=16384
파라미터 | 설명 |
---|---|
maxuproc | Tibero를 부팅할 때 기동하는 프로세스 개수와 연관된다. 따라서 DB 설치 유저에서 기동할 프로세스 개수 보다 큰 값으로 설정해야 한다. (권장 설정: 16384) [참고] 운영 환경에 따라 적절한 값을 계산할 때는 아래 내용을 참고한다. 사용자 설정 : 워커 프로세스 개수 + 백그라운드 프로세스 개수 + 시스템 프로세스 개수 + 여유분(100) |
설정 파일
/etc/security/limits
설정값
파라미터 | 권장 값 |
---|---|
Soft FILE size | -1 (Unlimited) |
Soft CPU time | -1 (Unlimited) |
Soft DATA segment | -1 (Unlimited) |
Soft STACK size | -1 (Unlimited) |
Soft Real Memory size | -1 (Unlimited) |
데이터베이스 운영 중에 xntpd 데몬에 의해 시스템 시간이 거꾸로 가게 되어 데이터가 잘못 출력되는 현상을 방지하기 위하여 시스템 시간을 동기화한 후에 "-x" 옵션을 주어 데몬을 재시작한다.
# stopsrc -s xntpd # startsrc -s xntpd -a "-x"
시스템을 재시작할 때에도 해당 옵션을 적용하고자 한다면 "/etc/rc.tcpip"에서 아래의 내용에 대한 주석을 해제한다.
start /usr/sbin/xntpd "$src_running" "-x"
Tibero의 설치를 시작하기 전에 호스트명과 포트 번호, 시스템 계정, localhost를 확인한다.
호스트명
라이선스를 요청할 때 필요한 호스트명을 확인한다. /etc/hosts 파일을 확인하거나 콘솔 화면에서 다음의 명령어를 입력하여 확인한다.
uname –n
포트 번호
Tibero가 기동할 때 부여될 포트 번호를 확인한다. (기본값: 8629)
시스템 계정
Tibero를 설치하고 운영할 시스템 계정을 확인한다.
localhost
locahost가 제대로 설정되어 있는지 ping 명령을 통해 확인한다. 만약 제대로 설정되어 있지 않다면 /etc/hosts 파일을 수정한다.
ping localhost