문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣ T6, T7
문서번호ㅣTADTI195
개요
Tibero 단일 서버내에 멀티 인스턴스를 동일한 PORT를 사용할 수 있도록 설정하는 절차를 설명합니다.
* HW 필요 요건 : Tibero Instance별 NIC CARD
방법
1. Tibero USER 생성
Tibero USER 추가 생성 및 환경설정 적용
[tibero@VM_TMAXSOFT ~]$ su - Password: [root@VM_TMAXSOFT ~]# adduser tibero -g dba [root@VM_TMAXSOFT ~]# passwd tibero Changing password for user tibero. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@VM_TMAXSOFT ~]# su - tibero [tibero@VM_TMAXSOFT ~]$ cp /home/tibero/.bash_profile ~/
2. Tibero 환경설정 수정
Profile
### JAVA ENV ### export JAVA_HOME=/usr/java/default export JDK_HOME=$JAVA_HOME export PATH=$JAVA_HOME/bin:/usr/local/bin:$PATH ######## TIBERO ENV ######## export TB_BASE=/sdiske/ps1/kkw export TB_HOME=$TB_BASE/tibero7 export TB_SID=tibero7 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 export TB_SQLPATH=$TB_HOME/config
$TB_SID.tip
DB_NAME=tibero7
LISTENER_PORT=8629
CONTROL_FILES="/sdiske/ps1/kkw/tibero7/database/tibero7/c1.ctl"
#CERTIFICATE_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/tibero7.crt"
#PRIVKEY_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/tibero7.key"
#WALLET_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/WALLET"
#ILOG_MAP="/sdiske/ps1/kkw/tibero7/config/ilog.map"
MAX_SESSION_COUNT=20
TOTAL_SHM_SIZE=2G
MEMORY_TARGET=4G
3. 1번 Tibero Instance 설정 변경
$TB_SID.tip
- 해당 Instance의 Listener가 기동할 IP를 지정해줍니다.
DB_NAME=tibero
LISTENER_PORT=8629
CONTROL_FILES="/sdiske/ps1/kkw/tibero7/database/tibero/c1.ctl"
#CERTIFICATE_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/tibero7.crt"
#PRIVKEY_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/tibero7.key"
#WALLET_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/WALLET"
#ILOG_MAP="/sdiske/ps1/kkw/tibero7/config/ilog.map"
MAX_SESSION_COUNT=20
TOTAL_SHM_SIZE=2G
MEMORY_TARGET=4G
LISTENER_IP=192.168.139.68
tbdsn.tbr
- Localhost로 되어 있는 IP를 해당 리스너가 기동하는 IP로 변경해줍니다.
tibero=(
(INSTANCE=(HOST=192.168.139.68
)
(PORT=8629)
(DB_NAME=tibero)
)
)
4. 2번 Tibero Instance 설정 변경
$TB_SID.tip
- 해당 Instance의 Listener가 기동할 IP를 지정해 준다.
DB_NAME=tibero7
LISTENER_PORT=8629
CONTROL_FILES="/sdiske/ps1/kkw/tibero7/database/tibero7/c1.ctl"
#CERTIFICATE_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/tibero7.crt"
#PRIVKEY_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/tibero7.key"
#WALLET_FILE="/sdiske/ps1/kkw/tibero7/config/tb_wallet/WALLET"
#ILOG_MAP="/sdiske/ps1/kkw/tibero7/config/ilog.map"
MAX_SESSION_COUNT=20
TOTAL_SHM_SIZE=2G
MEMORY_TARGET=4G
LISTENER_IP=192.168.139.70
tbdsn.tbr
- Localhost로 되어 있는 IP를 해당 리스너가 기동하는 IP로 변경해 준다.
tibero7=(
(INSTANCE=(HOST=192.168.139.70)
(PORT=8629)
(DB_NAME=tibero7)
)
5. Tibero Instance BOOT
1번 Tibero instance
kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$ tbboot
Change core dump dir to /sdiske/ps1/kkw/tibero7/bin/prof.
Listener port = 8629
Tibero 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Tibero instance started up (NORMAL mode).
2번 Tibero instance
kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$ tbboot
Change core dump dir to /sdiske/ps1/kkw/tibero7/bin/prof.
Listener port = 8629
Tibero 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Tibero instance started up (NORMAL mode).
정상 기동 확인됩니다.
Netstat 확인
[kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$ netstat -na|grep 192.168.139.
tcp 0 0 192.168.139.68:8808 0.0.0.0:* LISTEN
tcp 0 0 192.168.139.70:8808 0.0.0.0:* LISTEN
6. ERROR 상황
1) special port
상황 :
kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$ tbboot
Listener port = 8629
bind() failed: Address already in use.
Error: Timedout while trying to open port 8629
Check if there are any Tibero instances running.
Tibero instance startup failed!
문제 :
Listener IP의 port +1이 아닌 0.0.0.0의 port +1이 special port로 되면, 두번째 boot 되는 tibero의 instance가 special port의 충돌로 boot fail이 발생 함.
방안 :
환경설정 파일 $TB_SID.tip 에 special port의 변경이 가능한 파라미터를 추가 하여 special port를 변경해 준다.
파라미터
: _LSNR_SPECIAL_PORT=86402) SHM_KEY
상황 :
kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$ tbboot
Listener port = 8629
Change core dump dir to /sdiske/ps1/kkw/tibero7/bin/prof.
***************************************************************************
* Cannot get semaphore:
* key = 0x3f1396c2, errno=28
***************************************************************************
Tibero instance startup failed!
kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$
문제 :
먼저
기동한 Tibero 에서 SHM_KEY 값을 확보 하여 동일 값에 대한 두번째 Instance 의 SHM_KEY 값 확보 실패로 인해 발생 함
방안 :
두번째
Instance 의 SHM_KEY 변경 후 재기동
재현
kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$
Listener port = 8629
Change core dump dir to /sdiske/ps1/kkw/tibero7/bin/prof.
***************************************************************************
* Cannot get semaphore:
* key = 0x3f1396c2, errno=28
***************************************************************************
Tibero instance startup failed!
Semaphore 확인
kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$ ipcs
------Shared Memory Segments------
key shmid owner perms bytes nattch status
0x545fe9c2 917515 tibero 640 53687091213
0x63276b8c 950289 tibero7 640 536870912 0
------Semaphore Arrays------
key semid owner perms nsems
0x3f139696 13500500 tibero7 600 2
0x3f139697 13533269 tibero7 600 2
0x3f139698 13566038 tibero7 600 2
0x3f139699 13598807 tibero7 600 2
0x3f13969a 13631576 tibero7 600 2
0x3f13969b 13664345 tibero7 600 2
0x3f13969c 13697114 tibero7 600 2
0x3f13969d 13729883 tibero7 600 2
0x3f13969e 13762652 tibero7 600 2
0x3f13969f 13795421 tibero7 600 2
0x3f1396a0 13828190 tibero7 600 2
0x3f1396a1 13860959 tibero7 600 2
0x3f1396a2 13893728 tibero7 600 2
0x3f1396a3 13926497 tibero7 600 2
0x3f1396a4 13959266 tibero7 600 2
0x3f1396a5 13992035 tibero7 600 2
0x3f1396a6 14024804 tibero7 600 2
0x3f1396a7 14057573 tibero7 600 2
0x3f1396a8 14090342 tibero7 600 2
0x3f1396a9 14123111 tibero7 600 2
0x3f1396aa 14155880 tibero7 600 2
0x3f1396ab 14188649 tibero7 600 2
0x3f1396ac 14221418 tibero7 600 2
0x3f1396ad 14254187 tibero7 600 2
0x3f1396ae 14286956 tibero7 600 2
0x3f1396af 14319725 tibero7 600 2
0x3f1396b0 14352494 tibero7 600 2
0x3f1396b1 14385263 tibero7 600 2
0x3f1396b2 14418032 tibero7 600 2
0x3f1396b3 14450801 tibero7 600 2
0x3f1396b4 14483570 tibero7 600 2
0x3f1396b5 14516339 tibero7 600 2
0x3f1396b6 14549108 tibero7 600 2
0x3f1396b7 14581877 tibero7 600 2
0x3f1396b8 14614646 tibero7 600 2
0x3f1396b9 14647415 tibero7 600 2
0x3f1396ba 14680184 tibero7 600 2
0x3f1396bb 14712953 tibero7 600 2
0x3f1396bc 14745722 tibero7 600 2
0x3f1396bd 14778491 tibero7 600 2
0x3f1396be 14811260 tibero7 600 2
0x3f1396bf 14844029 tibero7 600 2
0x3f1396c0 14876798 tibero7 600 2
0x3f1396c1 14909567 tibero7 600 2
------Message Queues------
key msqid owner perms used bytes messages
SHM_KEY변경
kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$ export SHM_KEY=0x3f1396e8
Tibero Instance기동 확인
[kkw@localhost.localdomain:/sdiske/ps1/kkw/tibero7/config]$ tbboot
Change core dump dir to /sdiske/ps1/kkw/tibero7/bin/prof.
Listener port = 8629
Tibero 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.