LINUX
2019.02.15 / 19:10

tibero6 싱글 설치 (linux)

hanulbit
추천 수 11

▶ 버전 : linux centos7 - 64bit
▶ DB : tibero 6

 

** 설치 전 준비사항
- Tibero를 설치하기 위해서는 각 플랫폼별로 약간의 차이가 있지만 최소 2GB 이상의 하드디스크 여유공간이 필요합니다.
- Tibero를 설치하고 나서 데이터베이스를 생성할 때 최소로 필요한 하드디스크 공간을 의미합니다.

 

1) OS CPU
[root@yeojin java]# cat /proc/cpuinfo
model name : Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz


2) physical RAM 
[root@yeojin java]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        563M        4.4G         10M        2.7G        6.7G
Swap:          3.7G          0B        3.7G


3) 패키지 확인
[root@yeojin java]# rpm -qa | grep kernel
kernel-tools-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.el7.x86_64
abrt-addon-kerneloops-2.1.11-45.el7.centos.x86_64
kernel-3.10.0-514.el7.x86_64


4) JDK version 
[root@yeojin java]# java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)


5) OS 
[root@yeojin java]# sysctl -p
kernel.sem = 10000 32000 10000 10000
kernel.shmmax = 4294967296
kernel.shmmni = 4096
fs.file-max = 6815744


6) OS version
[root@yeojin java]# uname -a
Linux yeojin 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

 

7) memory
[root@yeojin java]# top //(7자리부터 G)
mem : 7994292(7자리) : 8G 예측

 

8) disk

※ 실제 운영 환경에서는 tibero설치 시 바이너리가 패치 될 수 있기 때문에 30G이상(30G-50G) 잡고 설치합니다.

    티베로 디스크 바이너리 볼륨을 높게 잡는 것이 좋습니다.
[root@yeojin java]# df -h  
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        19G  4.5G   13G  26% /
devtmpfs        3.8G     0  3.8G   0% /dev
tmpfs           3.9G   96K  3.9G   1% /dev/shm
tmpfs           3.9G  9.1M  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda3        14G  414M   13G   4% /home
/dev/sda1       315M  138M  161M  47% /boot
tmpfs           781M     0  781M   0% /run/user/0
tmpfs           781M   28K  781M   1% /run/user/1000

 

 

1. java 버전 확인 (Tibero를 설치하기 전에 JDK 1.5.17 이상이 반드시 설치되어 있어야 합니다.)
[root@localhost ~]# java -version

** java가 없을 시 설치
 1) [root@localhost ~]# yum install -y java-1.8.0-openjdk-devel
 2) http://www.oracle.com/technetwork/java/javase/downloads/index.html  다운로드
① 파일 넣기 (jdk-6u43-linux-x64.bin)
[root@yeojin java]# cd /usr/java
[root@yeojin java]# ./jdk-6u43-linux-x64.bin
② 환경설정
[root@yeojin java]# vi /etc/profile  // 맨 밑에 추가
export JAVA_HOME="/usr/java/jdk1.6.0_43"
export PATH="JAVA_HOME/bin:$PATH"
export CLASSPATH="$JAVA_HOME/lib:$CLASSPATH"
[root@yeojin java] . /etc/profile
③ java 설치 확인
[root@yeojin java] java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)

 

2. 운영체제별 패키지 설치 
[root@localhost ~]# yum install -y gcc gcc-c++ libgcc libstdc++ libstdc++-devel compat-libstdc++ libaio libaio-devel

 

3. 운영체제 별 커널 파라미터 설정    // 맨 밑에 추가
[root@localhost ~]# vi /etc/sysctl.conf    // 여러 어플리케이션을 제어하는 역할 (자원이 한쪽으로 점유하지 않게 조정)
kernel.sem = 10000 32000 10000 10000    // semmsl, semmns, semopm, semmni 
kernel.shmmax = 1073741824    // 하드 메모리의 절반 (ex. 하드메모리 : 20GB, 10*1024*1024*1024로 byte 입력)
kernel.shmmni = 4096
fs.file-max = 6815744
[root@localhost ~]# sysctl -p    // 적용 확인
kernel.sem = 10000 32000 10000 10000
kernel.shmmax = 2147483648
kernel.shmmni = 4096
fs.file-max = 6815744

 

4. 운영체제별 shell limits 설정    // 맨 밑에 추가
[root@localhost ~]# vi /etc/security/limits.conf    
tibero           soft    nofile          1024
tibero           hard    nofile          65536
tibero           soft    nproc           2047
tibero           hard    nproc           16384

 

※ 기타 확인사항
(1) 호스트명 확인 - 라이선스 호스트명과 일치
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/hosts    
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
(2) 포트번호 확인 - 기본값 : 8629    // 포트 사용 여부 체크 
[tibero@localhost slog]$ netstat -na | grep 8629
tcp        0      0 0.0.0.0:8629            0.0.0.0:*               LISTEN
[tibero@localhost slog]$ netstat -na | grep 8888    // 아무것도 안나오면 이 포트를 쓰지 않는 것으로 확인
(3) localhost 설정 확인
[root@localhost ~]# ping localhost 
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.075 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.042 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.067 ms
[root@localhost ~]# vi /etc/hosts // 제대로 설정되지 않았다면 파일 수정 or 권한 확인

 

5. 그룹/사용자 계정 추가와 권한 설정
[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -g dba tibero    // # pwd : /home/tibero
[root@localhost ~]# passwd tibero

 

6. 파일 옮기고 바이너리파일 복사하기
1) winSCP로 압축파일 이동 후 권한 수정
- tibero6-bin-FS06-linux64-147777-opt-20171010111045.tar.gz   // 티베로 설치파일
- license.xml    // 라이센스 파일 (호스트명 일치)
[root@localhost home]# chmod -R 755 tibero 
[root@localhost home]# chown -R tibero:dba tibero

2) 압축 푼 후 라이센스 복사
[root@localhost home]# su - tibero    // # pwd : /home/tibero
[tibero@localhost ~]$ tar -zxvf tibero6-bin-FS06-linux64-147777-opt-20171010111045.tar.gz
[tibero@localhost ~]$ ls    // tibero6 폴더 생성
[tibero@localhost ~]$ cp license.xml tibero6/license/.

 

7. .bash_profile 수정
[tibero@localhost ~]$ vi .bash_profile
### Tibero RDBMS 6 ENV ###
export TB_HOME=/home/tibero/tibero6
export TB_SID=tibero
export TB_PROF_DIR=$TB_HOME/bin/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
### Tibero ALIAS ###
alias tbhome='cd $TB_HOME'
alias tbbin='cd $TB_HOME/bin'
alias tblog='cd $TB_HOME/instance/$TB_SID/log'
alias tbcfg='cd $TB_HOME/config'
alias tbcfgv='vi $TB_HOME/config/$TB_SID.tip'
alias tbcli='cd ${TB_HOME}/client/config'
alias tbcliv='vi ${TB_HOME}/client/config/tbdsn.tbr'
#alias tbcliv='vi ${TB_HOME}/client/config/tbnet_alias.tbr'
#alias tbdata='cd $TB_HOME/tbdata'
alias tbi='cd ~/tbinary'
#alias clean='tbdown clean'
#alias dba='tbsql sys/tibero'
alias tm='cd ~/tbinary/monitor;monitor;cd -'
[tibero@localhost ~]$ . .bash_profile    // .bash_profile 적용
[tibero@localhost ~]$ echo $TB_HOME    // 적용 확인 : /home/tibero/tibero6

 

8. DB 환경파일 수정 
1) TB_SID.tip (환경파일)과 tbdsn.tbr, psm_commands 파일 생성하기
[tibero@localhost ~]$ cd $TB_HOME/config
[tibero@localhost config]$ ./gen_tip.sh    // sh 파일 실행
Using TB_SID "tibero"
/home/tibero/Tibero/tibero6/config/tibero.tip generated
/home/tibero/Tibero/tibero6/config/psm_commands generated
/home/tibero/Tibero/tibero6/client/config/tbdsn.tbr generated.
Running client/config/gen_esql_cfg.sh
Done.

 

2) TB_SID.tip, tbdsn.tbr 수정
[tibero@localhost config]$ vi tibero.tip     // TB_SID.tip
DB_NAME=tibero
LISTENER_PORT=8629
CONTROL_FILES="/home/tibero/tibero6/database/tibero/c1.ctl", "/home/tibero/tbdata/c2.ctl"
#CERTIFICATE_FILE="/home/tibero/tibero6/config/svr_wallet/tibero.crt"
#PRIVKEY_FILE="/home/tibero/tibero6/config/svr_wallet/tibero.key"
#WALLET_FILE="/home/tibero/tibero6/config/svr_wallet/WALLET"
#ILOG_MAP="/home/tibero/tibero6/config/ilog.map"

DB_CREATE_FILE_DEST="/home/tibero/tbdata"
LOG_ARCHIVE_DEST="/home/tibero/tb_arch"  // archive log 경로

MAX_SESSION_COUNT=20

TOTAL_SHM_SIZE=2G
MEMORY_TARGET=3G
** DB_NAME 변경, LISTENER_PORT 변경, CONTROL_FILES 추가, 아카이브 경로 추가, DB 파일 경로 추가,
     MAX_SESSION_COUNT, TOTAL_SHM_SIZE, MEMORY_TARGET 수정 시 TB_SID.tip 수정


[tibero@localhost config]$ cd ..
[tibero@localhost tibero6]$ cd client/config
[tibero@localhost config]$ vi tbdsn.tbr        
tibero=(
    (INSTANCE=(HOST=localhost)
              (PORT=8629)
              (DB_NAME=tibero)
    )
)
** DB_NAME 변경, PORT 변경 시 tbdsn.tbr 수정    // 접속 정보와 관련된 것들을 설정 (= oracle : tnsname.ora)

 

 

9. tibero 서버 nomount 모드로 기동
[tibero@localhost config]$ tbboot nomount
Change core dump dir to /home/tibero/tibero6/bin/prof.
Listener port = 8629
Tibero 6
TmaxData Corporation Copyright (c) 2008-. All rights reserved.         

Tibero instance started up (NOMOUNT mode).

 

10. 데이터베이스 생성
[tibero@localhost config]$ cd /home/tibero   
[tibero@localhost ~]$ mkdir work    // DB 생성 SQL을 저장할 폴더
[tibero@localhost ~]$ cd work
[tibero@localhost work]$ vi cre_db.sql
create database "tibero"    // 이름을 적지 않으면 "TB_SID"이름으로 DB 생성 
user sys identified by tibero
maxinstances 8 
maxdatafiles 512
character set MSWIN949    // 처음 등록하면 변경 불가, 변경 시 티베로 재설치
national character set UTF16
logfile 
group 0 ('redo01.log','redo02.log') size 300M, 
group 1 ('redo11.log','redo12.log') size 300M,
group 2 ('redo21.log','redo22.log') size 300M 
maxloggroups 255 
maxlogmembers 8
noarchivelog
datafile 'system001.dtf' size 2G 
autoextend on next 100M maxsize unlimited 
default temporary tablespace TEMP
tempfile 'temp001.dtf' size 2G
autoextend on next 100M maxsize unlimited 
extent management local autoallocate
undo tablespace UNDO
datafile 'undo001.dtf' size 2G 
autoextend on next 100M maxsize unlimited 
extent management local autoallocate;

** ① 트랜잭션 양이 많다면 redo size를 늘인다.
     ② 대량의 데이터 작업을 정렬하기 위해선 temp size를 늘인다.
     ③ 대량의 데이터를 insert, update, delete (DML) 작업을 한다면 undo size를 늘인다.

 

 

11. sys 사용자로 접속 후 DB 생성 
[tibero@localhost work]$ tbsql sys/tibero
tbSQL 6
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Connected to Tibero.
SQL> @/home/tibero/work/cre_db.sql
Database created.    // DB 생성 후 자동으로 DB가 내려감
SQL> exit
Disconnected.

 

12. tibero DB 재기동
[tibero@localhost work]$ tbboot
Change core dump dir to /home/tibero6/tibero6/bin/prof.
Listener port = 25010
Tibero 6  
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL mode).

 

13. SQL 파일 수행    //  role, System user, view, package 등이 생성
[tibero@localhost work]$ sh /home/tibero/tibero6/scripts/system.sh
Enter SYS password:
tibero
Enter SYSCAT password:
syscat
Creating the role DBA...
create default system users & roles?(Y/N):
y
Creating system users & roles...
Creating virtual tables(1)...
Creating virtual tables(2)...
Granting public access to _VT_DUAL...
Creating the system generated sequences...
Creating internal dynamic performance views...
Creating outline table...
Creating system package specifications:
    Running /home/tibero/Tibero/tibero6/scripts/pkg/pkg_standard.sql...
    Running /home/tibero/Tibero/tibero6/scripts/pkg/pkg_dbms_output.sql...
    Running /home/tibero/Tibero/tibero6/scripts/pkg/pkg_dbms_lob.sql...
    Running /home/tibero/Tibero/tibero6/scripts/pkg/pkg_dbms_utility.sql...
 ......중간 생략......
Creating spatial meta tables and views ...
Creating internal system jobs...
Creating internal system notice queue ...
Done.
For details, check /home/tibero6/tibero6/instance/tibero/log/system

 

** log 확인하기 (tibero 5버전 : tail -f /home/tibero/tibero5/instance/$TB_SID/log/tblog/trace.log)
[tibero@localhost work]$ tblog    // pwd : /home/tibero/tibero6/instance/$TB_SID/log
[tibero@localhost log]$ cd slog   
[tibero@localhost slog]$ tail -f sys.log

 

14. tibero 프로세스 확인
[tibero@localhost slog]$ ps -ef | grep tbsvr
tibero     2328      1  0 14:56 pts/0    00:00:07 tbsvr          -t nomount -SVR_SID tibero
tibero     2330   2328  0 14:56 pts/0    00:00:00 tbsvr_TBMP     -t nomount -SVR_SID tibero
tibero     2331   2328  0 14:56 pts/0    00:00:00 tbsvr_WP000    -t nomount -SVR_SID tibero
tibero     2332   2328  0 14:56 pts/0    00:00:00 tbsvr_WP001    -t nomount -SVR_SID tibero
tibero     2333   2328  0 14:56 pts/0    00:00:00 tbsvr_PEP000   -t nomount -SVR_SID tibero
tibero     2334   2328  0 14:56 pts/0    00:00:00 tbsvr_PEP001   -t nomount -SVR_SID tibero
tibero     2335   2328  0 14:56 pts/0    00:00:00 tbsvr_PEP002   -t nomount -SVR_SID tibero
tibero     2336   2328  0 14:56 pts/0    00:00:00 tbsvr_PEP003   -t nomount -SVR_SID tibero
tibero     2337   2328  0 14:56 pts/0    00:00:00 tbsvr_DBWR     -t nomount -SVR_SID tibero
tibero     2338   2328  0 14:56 pts/0    00:00:00 tbsvr_RECO     -t nomount -SVR_SID tibero
tibero     2544   2151  0 15:33 pts/0    00:00:00 grep --color=auto tbsvr

 

15. archive log 모드 변경

[tibero@localhost slog]$ tbdown

[tibero@localhost slog]$ tbboot mount

[tibero@localhost slog]$ tbsql sys/tibero

SQL> alter database archivelog;

SQL> exit

[tibero@localhost slog]$ tbdown

[tibero@localhost slog]$ tbboot

[tibero@localhost slog]$ tbsql sys/tibero

SQL> archive log list;

SQL> select log_mod from v$database;

SQL> alter system switch logfile;    // 로그 파일로 스위칭 수행

 

<자주 실수하는 부분>
1. TB_SID.tip 오타
2. .bash_profile 오타
3. system.sh 의 syscat 패스워드 오류    // :v$로 만들어지는 것은 sys쪽이다.
SQL> select * from v$database;    // 되는지 확인