문서유형ㅣ기술정보
분야ㅣ설치
적용제품버전ㅣTibero 7.2.2
문서번호ㅣTINTI041
개요
본 가이드는 Tibero Cluster Manager를 사용하여 TAS상에 TAC구성을 하는 방법에 대해 설명합니다.
VirtualBox를 활용하여 Virtual Machine 2대를 사용하고 공유 디스크를 구성합니다.
테스트 시 사용한 OS는 Rocky Linux 8.10입니다.
방법
1. 설치 전 준비 사항
1.1. 바이너리 업로드 및 압축 해제
본 테스트에서는 Tibero 7.2.2(tibero7-bin-FS02_PS02-linux64_4.18-285045-20250107070637.tar.gz)를 사용합니다.
Virtual Machine 2대에 업로드 후 tar 명령어를 통해 압축을 해제합니다.
$ tar -xvzf tibero7-bin-FS02_PS02-linux64_4.18-285045-20250107070637.tar.gz
1.2. 라이선스 설정
$ mv license.xml $TB_HOME/license/
1.3. OS 커널 파라미터 설정
$ vi /etc/sysctl.conf
# MEMORY 9G 기준
kernel.sem = 10000 32000 10000 10000
kernel.shmmax = 5092931584
kernel.shmall = 1243391
kernel.shmmni = 4096
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 1024 65500
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
$ sysctl -p
$ ulimit -n 65536
$ vi /etc/security/limits.conf
tibero soft nproc 16384
tibero hard nproc 16384
tibero soft nofile 65536
tibero hard nofile 65536
tibero soft core 0
tibero hard core 0
$ vi /etc/systemd/logind.conf
# RemoveIPC = no
$ systemctl restart systemd-logind
2. 설치
2.1. 설정 내역
아래와 같은 정보로 TAS-TAC를 구성합니다.
| 항목 | NODE 1 | NODE 2 | |
| OS | Hostname | rocky | rocky |
| User | tibero | tibero | |
| TAS | SID | tas1 | tas2 |
| DB NAME | tas | ||
| Listener PORT | 18629 | 18629 | |
| Inter-connect PORT | 19629 | 19629 | |
| TAC | SID | DBPIW1 | DBPIW2 |
| DB NAME | DBPIW | ||
| Listener PORT | 8629 | 8629 | |
| Inter-connect PORT | 11019 | 11019 | |
| CM | SID | cm0 | cm1 |
| Listener PORT | 11029 | 11029 | |
| CM_UI_PORT | 11039 | 11039 | |
| TAS/TAC | LOCAL_CLUSTER_ADDR | 10.10.10.1 | 10.10.10.2 |
2.2. 네트워크 설정
interconnect: 10.10.10.1 / 10.10.10.2
RIP: 192.168.56.51 / 192.168.56.52
VIP: 192.168.56.55 / 192.168.56.56
| NODE 1 | NODE 2 |
2.3. 환경변수 설정
$ vi .bash_profile
| NODE 1 | NODE 2 |
# .bash_profile # Get the aliases and functions # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin # Java ENV ### Tibero 7 ENV ### ######## TIBERO alias ######## ### TEST ENV ### ### TIBERO CLUSTERE MANAGER ### ### Alias For tbcm ### tac(){ tas(){ | # .bash_profile # Get the aliases and functions # User specific environment and startup programs # Java ENV ### Tibero 7 ENV ### ######## TIBERO alias ######## ### TEST ENV ### ### TIBERO CLUSTERE MANAGER ### ### Alias For tbcm ###
tac(){ tas(){ |
2.4. TAS tip파일 생성 및 수정
TAS SID 적용을 위해 tas를 수행합니다. (.bash_profile에 alias로 적용)
| NODE 1(tas1.tip) | NODE 2(tas2.tip) |
### DATABASE ###
| ### DATABASE ###
|
2.5. TAC tip파일 생성 및 수정
TAC SID 적용을 위해 tac를 수행합니다. (.bash_profile에 alias로 적용)
| NODE 1(DBPIW1.tip) | NODE 2(DBPIW2.tip) |
# tip file generated from /home/tibero/jb/tibero7/config/tip.template (Mon Sep 1 16:54:32 KST 2025) DB_NAME=DBPIW DB_CREATE_FILE_DEST="+DS_DATA/DBPIWDBF" MAX_SESSION_COUNT=20 TOTAL_SHM_SIZE=2G ##TAC # TAS ##CM USE_TS_QUOTA=N _ENABLE_LOG_MINER=Y | # tip file generated from /home/tibero/jb/tibero7/config/tip.template (Mon Sep 1 18:11:00 KST 2025) DB_NAME=DBPIW DB_CREATE_FILE_DEST="+DS_DATA/DBPIWDBF" MAX_SESSION_COUNT=20 TOTAL_SHM_SIZE=2G ##TAC # TAS ##CM USE_TS_QUOTA=N _ENABLE_LOG_MINER=Y |
2.6. CM tip파일 생성
| NODE 1(cm0.tip) | NODE 2(cm1.tip) |
CM_UI_PORT=11039 CM_HEARTBEAT_EXPIRE=90 | CM_UI_PORT=11039 CM_HEARTBEAT_EXPIRE=90
|
2.7. tbdsn.tbr 수정
| NODE 1 | NODE 2 |
DBPIW1=( tas1=( DBPIW=( | DBPIW2=( tas2=( DBPIW=(
|
2.8. tbcm 기동
NODE1에서 수행
$ tbcm -b
2.9. CM에 network 등록
NODE1에서 수행
$ cmrctl add network --name inter0 --nettype private --ipaddr 10.10.10.1 --portno 11019
$ cmrctl add network --name pub0 --nettype public --ifname enp0s8
$ show
2.10. CM에 cluster 등록
NODE1에서 수행
$ cmrctl add cluster --name cls --incnet inter0 --pubnet pub0 --cfile "+/dev/tas/*"
$ cmrctl start cluster --name cls
$ show
2.11. TAS Instance 기동
NODE1에서 수행
$ echo $TB_SID -> tas1 확인
$ tbboot nomount
2.12. Diskspace 생성
NODE1에서 수행
$ tbsql sys/tibero@tas1
SQL> CREATE DISKSPACE DS_DATA force
EXTERNAL REDUNDANCY
FAILGROUP DFG1
DISK '/dev/tas/disk01' NAME disk1 SIZE 20G
attribute 'AU_SIZE'='4M';
2.13. Cluster 기동
NODE1에서 수행
$ cmrctl start cluster --name cls
$ cmrctl show
2.14. CM에 TAS Service 등록
NODE1에서 수행
$ cmrctl add service --name tas --cname cls --type as
2.15. CM에 TAS Instance 등록
NODE1에서 수행
$ cmrctl add as --name tas1 --svcname tas --dbhome $TB_HOME
2.16. TAS Instance 기동
NODE1에서 수행
$ cmrctl start as --name tas1
2.17. NODE2 TAS Instance를 위한 Thread 추가
NODE1에서 수행
$ tbsql sys/tibero@tas1
SQL> alter diskspace DS_DATA add thread 1;
2.18. CM에 TAC Service 및 DB instance 등록
NODE1에서 수행
$ cmrctl add service --name DBPIW --cname cls --type db
$ cmrctl add db --name DBPIW1 --svcname DBPIW --dbhome $TB_HOME
2.19. TAC 기동
NODE1에서 수행
$ tbboot nomount
2.20. Database 생성
NODE1에서 수행
$ tbsql sys/tibero@tac
SQL> create database
user sys identified by tibero
character set UTF8 -- UTF8, EUCKR, ASCII, MSWIN949
logfile group 0 ('+DS_REDO/redo1/redo00A.redo','+DS_REDO/redo2/redo00B.redo') size 100M,
group 1 ('+DS_REDO/redo1/redo01A.redo','+DS_REDO/redo2/redo01B.redo') size 100M,
group 2 ('+DS_REDO/redo1/redo02A.redo','+DS_REDO/redo2/redo02B.redo') size 100M
maxdatafiles 4096
maxlogfiles 100
maxlogmembers 8
archivelog
datafile '+DS_DATA/DBPIWDBF/system001.dtf' size 1G autoextend off --system
default tablespace USR
datafile '+DS_DATA/DBPIWDBF/usr001.dtf' size 1G autoextend off --usr
default temporary tablespace TEMP
tempfile '+DS_DATA/DBPIWDBF/temp001.dtf' size 1G autoextend off -- temp
undo tablespace UNDO0
datafile '+DS_DATA/DBPIWDBF/undo001.dtf' size 1G autoextend off --undo
syssub datafile '+DS_DATA/DBPIWDBF/tpr_ts.dtf' size 1G autoextend off; --syssub
2.21. NODE2 TAC Instance를 위한 Thread의 undo, redo 추가
NODE1에서 수행
$ cmrctl show
$ tbsql sys/tibero@tac
SQL> create undo tablespace UNDO1 datafile '+DS_DATA/DBPIWDBF/undo002.dtf' size 1G autoextend off;
SQL> alter database add logfile thread 1 group 3 ('+DS_REDO/redo1/redo03A.redo','+DS_REDO/redo2/redo03B.redo') size 100M;
SQL> alter database add logfile thread 1 group 4 ('+DS_REDO/redo1/redo04A.redo','+DS_REDO/redo2/redo04B.redo') size 100M;
SQL> alter database add logfile thread 1 group 5 ('+DS_REDO/redo1/redo05A.redo','+DS_REDO/redo2/redo05B.redo') size 100M;
SQL> alter database enable public thread 1;
2.22. system.sh 실행
NODE1에서 수행
$ sh $TB_HOME/scripts/system.sh -p1 tibero -p2 syscat -a1 y -a2 y -a3 y -a4 y
2.23. tbcm 기동
NODE2에서 수행
$ tbcm -b
2.24. CM에 network 등록
NODE2에서 수행
$ cmrctl add network --name inter1 --nettype private --ipaddr 10.10.10.2 --portno 11019
$ cmrctl add network --name pub1 --nettype public --ifname enp0s8
$ show
2.25. CM에 cluster 등록
NODE2에서 수행
$ cmrctl add cluster --name cls --incnet inter1 --pubnet pub1 --cfile "+/dev/tas/*"
$ show
2.26. Cluster 기동
NODE2에서 수행
$ cmrctl start cluster --name cls
$ show
2.27. CM에 TAS Instance 등록
NODE2에서 수행
$ cmrctl add as --name tas2 --svcname tas --dbhome $TB_HOME
$ show
2.28. TAS Instance 기동
NODE2에서 수행
$ cmrctl start as --name tas2
$ show
2.29. CM에 TAC Instance 등록
NODE2에서 수행
$ cmrctl add db --name DBPIW2 --svcname DBPIW --dbhome $TB_HOME
$ show
2.30. TAC 2번 기동
NODE2에서 수행
$ tbboot
2.31. VIP 등록
os root 계정으로 기동 후 tibero계정 .bash_profile 적용
$ tbcm -b
$ cmrctl add vip --name vip1 --node cm0 --svcname DBPIW --ipaddr 192.168.56.55
$ cmrctl add vip --name vip2 --node cm1 --svcname DBPIW --ipaddr 192.168.56.56
정상화면