티베로 tac vip 확인 방법

重眀殿

Data Base

RAC 와 TAC 의 개념

앙마당 2017. 3. 20. 10:20

RAC(Real Application Cluster)

-9i RAC

  • interconnet (Private network): OPS는 데이터를 받아올때 반드시 Storage를 이용해야 한다. RAC 9i 부터는 interconnet 기능을 이용하여 인스턴스간에 데이터를 직접적으로 주고 받을수 있게 된다.

  • Public network : RAC 유지보수를 위해 접속하는 망

  • VIP network : 외부 사용자들이 접속하는 망, 서비스를 제공해주는 망

티베로 tac vip 확인 방법

-10g RAC

  • ASM 방식의 적용 : 9i 까지는 RAW device를 이용해서 storage를 구성하였으나 10g 부터는 ASM (Automatic Storage Management) 방식으로 storage를 구성한다.

-10g R2 RAC ASM 기반

RAW device로 Storage를 구성하면 각 인스턴스별로 ASM Instance 부분이 빠지게 된다
10g rac 까지는 OCR과 vote disk 를 ASM에 저장할수 없었기 때문에 별도의 RAW device를 구성해야 했다. (11g 부터는 개선되었다)

  • OCR : Oracle Cluester Repository, RAC구성의 전체 정보를 저장하고 있는 디스크이다. RAC의 핵심역할을 하고 있다.

  • Oracle이 권장하는 OCR의 최소 크기는 100MB이다.

TAC (Tibero Active Cluster)는 확장성, 고가용성을 목적으로 제공하는 Tibero의 주요 기능이다. TAC 환경에서 실행 중인 모든 인스턴스는 공유된 데이터베이스를 통해 트랜잭션을 수행하며 공유된 데이터에 대한 접근은 데이터의 일관성과 정합성 유지를 위해 상호 통제하에 이뤄진다.

큰 업무를 작은 업무의 단위로 나누어 여러 노드 사이에 분산하여 수행할 수 있기 때문에 업무 처리 시간을 단축할 수 있다.

여러 시스템이 공유 디스크를 기반으로 데이터 파일을 공유한다. TAC 구성에 필요한 데이터 블록은 노드 간을 연결하는 고속 사설망을 통해 주고받음으로써 노드가 하나의 공유 캐시(shared cache)를 사용하는 것처럼 동작한다.

운영 중에 한 노드가 멈추더라도 동작 중인 다른 노드들이 서비스를 지속하게 된다. 이러한 과정은 투명하고 신속하게 처리된다.

다음은 TAC의 구조를 나타내는 그림이다.

결론 RAC와 TAC와 거의 상동하다 내부 기술적인 차이점은 존재 하겠지만 

동적 기능면에서는 차이가 거의 없다. 

Node 1

Node 2

[root@localhost ~]# groupadd dba

[root@localhost ~]# useradd -d /home/tibero -g dba tibero

(-d : tibero 유저의 홈디렉토리 설정 , -g : dba 그룹에 속하게 함)

[root@localhost ~]# passwd tibero ##tibero 유저 비번 설정 tibero

[root@localhost ~]# su - tibero

[tibero@localhost ~]$ id

uid=1000(tibero) gid=1000(dba) groups=1000(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[tibero@localhost ~]$ exit

logout

[root@localhost ~]# reboot

[root@localhost ~]# groupadd dba

[root@localhost ~]# useradd -d /home/tibero -g dba tibero

(-d : tibero 유저의 홈디렉토리 설정 , -g : dba 그룹에 속하게 함)

[root@localhost ~]# passwd tibero ##tibero 유저 비번 설정 tibero

[root@localhost ~]# su - tibero

[tibero@localhost ~]$ id

uid=1000(tibero) gid=1000(dba) groups=1000(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[tibero@localhost ~]$ exit

logout

[root@localhost ~]# reboot

이제 Tibero5 설치 파일과 라이선스 파일을 각 Node에 옮겨주어야 합니다.

[root@localhost ~]# su - tibero

WinSCP를 이용하여 /home/tibero/ 디렉토리에 리눅스 설치 전 다운받은 tibero5 압축파일과 라이선스를 복사해 넣는다.

[tibero@localhost ~]$ pwd

/home/tibero

[tibero@localhost ~]$ ls -l

total 199096

-rw-r--r--. 1 root root 487 Feb 24 18:09 license.xml

-rw-r--r--. 1 root root 203870160 Feb 17 16:53 tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

##WinSCP를 이용할 때 root 유저로 로그인 해서 파일을 복사했다면 소유권은 root 유저에게 있다. 소유권을 tibero:dba로 변경해보자.(tibero 유저로 로그인해서 복사했다면 소유권은 tibero에게 있다.)

[tibero@localhost ~]$ exit

logout

[root@localhost ~]# chown -R tibero:dba /home/tibero

[root@localhost ~]# chmod 755 /home/tibero/license.xml /home/tibero/tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

[root@localhost ~]#

[root@localhost ~]# ls -l /home/tibero

total 199096

-rwxr-xr-x. 1 tibero dba 487 Feb 24 18:09 license.xml

-rwxr-xr-x. 1 tibero dba 203870160 Feb 17 16:53 tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

[root@localhost ~]# su - tibero

Last login: Wed Mar 4 23:01:53 KST 2020 on pts/0

* tibero5 압축 풀기

/home/tibero에 복사했던 파일을 압축파일이다. (라이선스 제외)

[tibero@localhost ~]$ tar xvzf tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

[tibero@localhost ~]$ ls -l

total 199096

-rwxr-xr-x. 1 tibero dba 487 Feb 24 18:09 license.xml

drwxr-xr-x. 8 tibero dba 86 Mar 4 23:11 tibero5

-rwxr-xr-x. 1 tibero dba 203870160 Feb 17 16:53 tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

[tibero@localhost ~]$ rm –rf tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

압축을 해제하였으니 불필요한 압축파일을 삭제한다.

[tibero@localhost ~]$ mv license.xml tibero5/license/

라이선스 파일은 /home/tibero/tibero5/license/ 디렉토리로 옮겨주어야 한다. 티베로 설치시 라이선스를 확인하는 디렉토리이다.

[root@localhost ~]# su - tibero

WinSCP를 이용하여 /home/tibero/ 디렉토리에 리눅스 설치 전 다운받은 tibero5 압축파일과 라이선스를 복사해 넣는다.

[tibero@localhost ~]$ pwd

/home/tibero

[tibero@localhost ~]$ ls -l

total 199096

-rw-r--r--. 1 root root 487 Feb 24 18:09 license.xml

-rw-r--r--. 1 root root 203870160 Feb 17 16:53 tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

##WinSCP를 이용할 때 root 유저로 로그인 해서 파일을 복사했다면 소유권은 root 유저에게 있다. 소유권을 tibero:dba로 변경해보자.(tibero 유저로 로그인해서 복사했다면 소유권은 tibero에게 있다.)

[tibero@localhost ~]$ exit

logout

[root@localhost ~]# chown -R tibero:dba /home/tibero

[root@localhost ~]# chmod 755 /home/tibero/license.xml /home/tibero/tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

[root@localhost ~]#

[root@localhost ~]# ls -l /home/tibero

total 199096

-rwxr-xr-x. 1 tibero dba 487 Feb 24 18:09 license.xml

-rwxr-xr-x. 1 tibero dba 203870160 Feb 17 16:53 tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

[root@localhost ~]# su - tibero

Last login: Wed Mar 4 23:01:53 KST 2020 on pts/0

* tibero5 압축 풀기

/home/tibero에 복사했던 파일을 압축파일이다. (라이선스 제외)

[tibero@localhost ~]$ tar xvzf tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

[tibero@localhost ~]$ ls -l

total 199096

-rwxr-xr-x. 1 tibero dba 487 Feb 24 18:09 license.xml

drwxr-xr-x. 8 tibero dba 86 Mar 4 23:11 tibero5

-rwxr-xr-x. 1 tibero dba 203870160 Feb 17 16:53 tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

[tibero@localhost ~]$ rm –rf tibero5-bin-5_rel_S1419-linux64-86442-tested-opt.tar.gz

압축을 해제하였으니 불필요한 압축파일을 삭제한다.

[tibero@localhost ~]$ mv license.xml tibero5/license/

라이선스 파일은 /home/tibero/tibero5/license/ 디렉토리로 옮겨주어야 한다. 티베로 설치시 라이선스를 확인하는 디렉토리이다.

tibero 계정 bash_profile 설정(각 Node의 설정이 살짝 다르니 주의해서 기입한다.)

tibero의 profile을 vi로 열어서 아래 내용을 추가한다.

[tibero@localhost ~]$ vi /home/tibero/.bash_profile

### JAVA ENV ###

export JAVA_HOME=/usr/java/jdk1.6.0_45

export PATH=$JAVA_HOME/bin:$PATH

### User ENV ###

export PS1="[`whoami`@`hostname`:\$PWD]$ "

### Tibero 5 ENV ###

export TB_BASE=/home/tibero

export TB_VER=tibero5

export TB_HOME=$TB_BASE/$TB_VER

export TB_SID=TBTAC1

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의 profile을 vi로 열어서 아래 내용을 추가한다.

[tibero@localhost ~]$ vi /home/tibero/.bash_profile

### JAVA ENV ###

export JAVA_HOME=/usr/java/jdk1.6.0_45

export PATH=$JAVA_HOME/bin:$PATH

### User ENV ###

export PS1="[`whoami`@`hostname`:\$PWD]$ "

### Tibero 5 ENV ###

export TB_BASE=/home/tibero

export TB_VER=tibero5

export TB_HOME=$TB_BASE/$TB_VER

export TB_SID=TBTAC2

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 유저 프로파일 적용

[tibero@localhost ~]$ echo $TB_HOME

[tibero@localhost ~]$ source /home/tibero/.bash_profile

[tibero@localhost ~]$ echo $TB_HOME

/home/tibero/tibero5

##tibero 유저 프로파일 적용

[tibero@localhost ~]$ echo $TB_HOME

[tibero@localhost ~]$ source /home/tibero/.bash_profile

[tibero@localhost ~]$ echo $TB_HOME

/home/tibero/tibero5

* 라이선스 파일 적용

(위에서 미리 라이선스를 이동했지만 절차상 확인해본다.)

# 라이선스 파일(llicense.xml)을 /home/tibero/tibero5/license/ 에 넣는다.

[tibero@localhost ~]$ ls -l $TB_HOME/license

total 4

-rwxr-xr-x. 1 tibero dba 487 Feb 24 18:09 license.xml

drwxr-xr-x. 2 tibero dba 117 Mar 4 23:11 oss_licenses

* 라이선스 파일 적용

(위에서 미리 라이선스를 이동했지만 절차상 확인해본다.)

# 라이선스 파일(llicense.xml)을 /home/tibero/tibero5/license/ 에 넣는다.

[tibero@localhost ~]$ ls -l $TB_HOME/license

total 4

-rwxr-xr-x. 1 tibero dba 487 Feb 24 18:09 license.xml

drwxr-xr-x. 2 tibero dba 117 Mar 4 23:11 oss_licenses

Tibero Tip File 생성

* Gen Tip 실행 및 설정

[tibero@localhost ~]$ sh $TB_HOME/config/gen_tip.sh

Using TB_SID "TBTAC1"

/home/tibero/tibero5/config/TBTAC1.tip generated

/home/tibero/tibero5/config/psm_commands generated

/home/tibero/tibero5/client/config/tbdsn.tbr generated.

Running client/config/gen_esql_cfg.sh

Done.

또는

[tibero@localhost ~]$ cd /home/tibero/tibero5/config

[tibero@localhost config]$ ./gen_tip.sh

* Gen Tip 실행 및 설정

[tibero@localhost ~]$ sh $TB_HOME/config/gen_tip.sh

Using TB_SID "TBTAC2"

/home/tibero/tibero5/config/TBTAC1.tip generated

/home/tibero/tibero5/config/psm_commands generated

/home/tibero/tibero5/client/config/tbdsn.tbr generated.

Running client/config/gen_esql_cfg.sh

Done.

또는

[tibero@localhost ~]$ cd /home/tibero/tibero5/config

[tibero@localhost config]$ ./gen_tip.sh

Tibero Tip File 수정

* tip 파일 수정

$ vi $TB_HOME/config/$TB_SID.tip

[tibero@localhost config]$ vi $TB_HOME/config/TBTAC1.tip

(이미 설정되어있는 값을 주석처리 해준다. _USGMT~ 이 값 제외)

#DB_NAME

#LISTENER_PORT

#CONTROLFILES

#MAX_SESSION_COUNT

#TOTAL_SHM_SIZE

#MEMORY_TARGET

_USGMT_UNIFORM_EXTSIZE=1024 (이 값은 주석처리 하지 않는다.)

###########################################

### Database Identification

############################################

DB_NAME=TBTAC ##Node1 과 Node2의 DB_NAME은 같아야 한다.

LISTENER_PORT=8629 ##리스너포트 설정(기본설정임)

############################################

### File Configuration

############################################

DB_CREATE_FILE_DEST="/home/tibero/tbdata"

CONTROL_FILES="/dev/raw/rvg1-vol_control_001","/dev/raw/rvg2-vol_control_002"

############################################

### Memory &Session

############################################

MAX_SESSION_COUNT=50

TOTAL_SHM_SIZE=1024M

MEMORY_TARGET=2048M

DBMS_LOG_TOTAL_SIZE_LIMIT=120M

TRACE_LOG_TOTAL_SIZE_LIMIT=300M

############################################

### Undo and Rollback Segments

############################################

##node1과 node2의 UNDOTBS는 달라야 한다.

UNDO_TABLESPACE="UNDOTBS0"

############################################

### Cache and I/O

############################################

DB_BLOCK_SIZE=8192

###########################################

### Archive Log Mode

############################################

LOG_ARCHIVE_FORMAT="arcTAC%t_%s_%r.arc"

LOG_ARCHIVE_DEST="/home/tibero/tibarch"

############################################

### Cluster Database

############################################

CLUSTER_DATABASE=Y

THREAD=0 ##node1과 node2는 THREAD번호는 달라야 한다.

LOCAL_CLUSTER_ADDR=10.10.1.101 ##Private IP

LOCAL_CLUSTER_PORT=8631

LOCAL_CLUSTER_VIP=10.131.109.150 ## Virtual IP(VIP)

LOCAL_CLUSTER_NIC=enp0s8

############################################

### TBCM Parameter

############################################

CM_CLUSTER_MODE=ACTIVE_SHARED

CM_FILE_NAME="/dev/raw/rvg1-vol_tbcm_001","/dev/raw/rvg2-vol_tbcm_002"

CM_PORT=8632

CM_HEARTBEAT_EXPIRE=60

CM_WATCHDOG_EXPIRE=50

#CM_NET_EXPIRE_MARGIN=10

CM_AUTO_VIP_FAILBACK=N

CM_ENABLE_CM_DOWN_NOTIFICATION=Y

CM_ENABLE_FAST_NET_ERROR_DETECTION=Y

CM_FENCE=Y

#_CM_ENABLE_VIP_ALIAS_CHECK=N

#_CM_ENABLE_VIP_ALIAS_RETRY=N

#_CM_REBOOT_RETRY_COUNT=3

############################################

### Miscellaneous

############################################

#ACTIVE_SESSION_HISTORY=Y

USE_NET_KEEPALIVE=Y

USE_RECYCLEBIN=Y

NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS"

#BIND_VARIABLE_CAPTURE=Y

#JOB_HISTORY_LOG=Y

AUTHENTICATION_TIMEOUT=100

* tip 파일 수정

$ vi $TB_HOME/config/$TB_SID.tip

[tibero@localhost config]$ vi $TB_HOME/config/TBTAC1.tip

(이미 설정되어있는 값을 주석처리 해준다. _USGMT~ 이 값 제외)

#DB_NAME

#LISTENER_PORT

#CONTROLFILES

#MAX_SESSION_COUNT

#TOTAL_SHM_SIZE

#MEMORY_TARGET

_USGMT_UNIFORM_EXTSIZE=1024 (이 값은 주석처리 하지 않는다.)

##########################################

### Database Identification

############################################

DB_NAME=TBTAC ##Node1 과 Node2의 DB_NAME은 같아야 한다.

LISTENER_PORT=8629 ##리스너포트 설정(기본설정임)

############################################

### File Configuration

############################################

DB_CREATE_FILE_DEST="/home/tibero/tbdata"

CONTROL_FILES="/dev/raw/rvg1-vol_control_001","/dev/raw/rvg2-vol_control_002"

############################################

### Memory &Session

############################################

MAX_SESSION_COUNT=50

TOTAL_SHM_SIZE=1024M

MEMORY_TARGET=2048M

DBMS_LOG_TOTAL_SIZE_LIMIT=120M

TRACE_LOG_TOTAL_SIZE_LIMIT=300M

############################################

### Undo and Rollback Segments

############################################

##node1과 node2의 UNDOTBS는 달라야 한다.

UNDO_TABLESPACE="UNDOTBS1“

############################################

### Cache and I/O

############################################

DB_BLOCK_SIZE=8192

###########################################

### Archive Log Mode

############################################

LOG_ARCHIVE_FORMAT="arcTAC%t_%s_%r.arc"

LOG_ARCHIVE_DEST="/home/tibero/tibarch"

############################################

### Cluster Database

############################################

CLUSTER_DATABASE=Y

THREAD=1 ##node1과 node2는 THREAD번호는 달라야 한다.

LOCAL_CLUSTER_ADDR=10.10.1.201 ##Private IP

LOCAL_CLUSTER_PORT=8631

LOCAL_CLUSTER_VIP=10.131.109.151 ## Virtual IP(VIP)

LOCAL_CLUSTER_NIC=enp0s8

############################################

### TBCM Parameter

############################################

CM_CLUSTER_MODE=ACTIVE_SHARED

CM_FILE_NAME="/dev/raw/rvg1-vol_tbcm_001","/dev/raw/rvg2-vol_tbcm_002"

CM_PORT=8632

CM_HEARTBEAT_EXPIRE=60

CM_WATCHDOG_EXPIRE=50

#CM_NET_EXPIRE_MARGIN=10

CM_AUTO_VIP_FAILBACK=N

CM_ENABLE_CM_DOWN_NOTIFICATION=Y

CM_ENABLE_FAST_NET_ERROR_DETECTION=Y

CM_FENCE=Y

#_CM_ENABLE_VIP_ALIAS_CHECK=N

#_CM_ENABLE_VIP_ALIAS_RETRY=N

#_CM_REBOOT_RETRY_COUNT=3

############################################

### Miscellaneous

############################################

#ACTIVE_SESSION_HISTORY=Y

USE_NET_KEEPALIVE=Y

USE_RECYCLEBIN=Y

NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS"

#BIND_VARIABLE_CAPTURE=Y

#JOB_HISTORY_LOG=Y

AUTHENTICATION_TIMEOUT=100

tbdsn.tbr 수정(listener 수정)

[tibero@localhost config]$ vi $TB_HOME/client/config/tbdsn.tbr

TBTAC1=(

(INSTANCE=(HOST=10.131.109.140)

(PORT=8629)

(DB_NAME=TBTAC)

)

)

TBTAC=(

(INSTANCE=(HOST=10.131.109.150) ## 1번 노드 VIP

(PORT=8629)

(DB_NAME=TBTAC)

)

(INSTANCE=(HOST=10.131.109.151) ## 2번 노드 VIP

(PORT=8629)

(DB_NAME=TBTAC)

)

(LOAD_BALANCE=Y)

(USE_FAILOVER=Y)

)

[tibero@localhost config]$ vi $TB_HOME/client/config/tbdsn.tbr

TBTAC2=(

(INSTANCE=(HOST=10.131.109.141)

(PORT=8629)

(DB_NAME=TBTAC)

)

)

TBTAC=(

(INSTANCE=(HOST=10.131.109.151) ## 2번 노드 VIP

(PORT=8629)

(DB_NAME=TBTAC)

)

(INSTANCE=(HOST=10.131.109.150) ## 1번 노드 VIP

(PORT=8629)

(DB_NAME=TBTAC)

)

(LOAD_BALANCE=Y)

(USE_FAILOVER=Y)

)

Root 유저 환경 설정

* root user 접속

* root user의 profile을 수정하는 작업입니다.

[root@localhost ~]# vi .bash_profile

### JAVA ENV ###

export JAVA_HOME=/usr/java/jdk1.6.0_45

export PATH=$JAVA_HOME/bin:$PATH

### Tibero 5 ENV ###

export TB_BASE=/home/tibero

export TB_VER=tibero5

export TB_HOME=$TB_BASE/$TB_VER

export TB_SID=TBTAC1 #각 node는 달라야한다.

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

* .bash_profile 적용

[root@localhost ~]# source .bash_profile

* root user 접속

* root user의 profile을 수정하는 작업입니다.

[root@localhost ~]# vi .bash_profile

### JAVA ENV ###

export JAVA_HOME=/usr/java/jdk1.6.0_45

export PATH=$JAVA_HOME/bin:$PATH

### Tibero 5 ENV ###

export TB_BASE=/home/tibero

export TB_VER=tibero5

export TB_HOME=$TB_BASE/$TB_VER

export TB_SID=TBTAC2 #각 node는 달라야한다.

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

* .bash_profile 적용

[root@localhost ~]# source .bash_profile

방화벽 설정

* 방화벽 정지

[root@localhost ~]# systemctl stop firewalld

# 재부팅 시 실행 안되게끔

[root@localhost ~]# systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

* 방화벽 정지

[root@localhost ~]# systemctl stop firewalld

# 재부팅 시 실행 안되게끔

[root@localhost ~]# systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

ens34 활성화(Private IP)

*ens34(Private IP)어댑터를 활성화해준다.

*아래 명령어로 들어가서 ONBOOT=yes 로 수정해준다.

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34

...

ONBOOT=yes

...

[root@localhost ~]# service network restart

Restarting network (via systemctl): [ OK ]

[root@localhost ~]# ping -c 3 10.10.1.101

PING 10.10.1.101 (10.10.1.101) 56(84) bytes of data.

64 bytes from 10.10.1.101: icmp_seq=1 ttl=64 time=0.030 ms

64 bytes from 10.10.1.101: icmp_seq=2 ttl=64 time=0.041 ms

64 bytes from 10.10.1.101: icmp_seq=3 ttl=64 time=0.041 ms

--- 10.10.1.101 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 1999ms

rtt min/avg/max/mdev = 0.030/0.037/0.041/0.007 ms

*ens34(Private IP)어댑터를 활성화해준다.

*아래 명령어로 들어가서 ONBOOT=yes 로 수정해준다.

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34

...

ONBOOT=yes

...

[root@localhost ~]# service network restart

Restarting network (via systemctl): [ OK ]

[root@localhost ~]# ping -c 3 10.10.1.201

PING 10.10.1.201 (10.10.1.201) 56(84) bytes of data.

64 bytes from 10.10.1.201: icmp_seq=1 ttl=64 time=0.030 ms

64 bytes from 10.10.1.201: icmp_seq=2 ttl=64 time=0.041 ms

64 bytes from 10.10.1.201: icmp_seq=3 ttl=64 time=0.041 ms

--- 10.10.1.201 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 1999ms

rtt min/avg/max/mdev = 0.030/0.037/0.041/0.007 ms

TBCM 초기화

* tbcm -c : 노드1 에서만 실행. !!!!! 2번 노드에서는 실행하면 안됨

####################

#1번노드 만, 1번노드 만

####################

[root@localhost ~]# tbcm -c

This will erase all contents in [/dev/raw/rvg1-vol_tbcm_001, /dev/raw/rvg2-vol_tbcm_002], and cannot be recovered. Proceed? (y/N) y

SUCCESS

TBCM boot (root 계정으로 boot하여야 한다.)

[root@localhost ~]# tbcm -b

TBCM-guard demon started up.

I/O fence enabled.

Tibero 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Tibero cluster manager TBCM started up.

Local node name is (:8632).

[root@localhost ~]# tbcm –s

* root로 tbcm 수행하여 tibero 계정으로 tibero5 directory 소유권 변경

[root@localhost ~]# chown -R tibero:dba /home/tibero

[root@localhost ~]# tbcm -b

TBCM-guard demon started up.

I/O fence enabled.

Tibero 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Tibero cluster manager TBCM started up.

Local node name is (:8632).

[root@localhost ~]# tbcm –s

* root로 tbcm 수행하여 tibero 계정으로 tibero5 directory 소유권 변경

[root@localhost ~]# chown -R tibero:dba /home/tibero

Node1 nomount mode

* os tibero 계정 접속

[root@localhost ~]# su - tibero

NOMOUNT 모드로 Tibero를 기동( tbboot -t nomount)한 후 tbsql로 접속( tbsql sys/tibero)한다.

[tibero@localhost ~]$ tbboot -t nomount

Listener port = 8629

Change core dump dir to /home/tibero/tibero5/bin/prof.

Tibero 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Tibero instance started up (NOMOUNT mode).

저는 여기서 오류가 났습니다. 오류가 안났다면 아래로 지나가셔도 됩니다.

$ tboot -t nomount 명령어를 치고 혹시 TBR-2004: DSN file format is invalid. 라는 오류가 나면 Node1, Node2 둘 다

$ vi $TB_HOME/client/config/tbdsn.tbr

위의 명령어로 들어가셔서 리스너 설정을 복붙하지 마시고, 지우고 다시 작성 해주시기 바랍니다. 리스너 format 오류인 것 같아서 다 지우고 새로 작성하니 정상적으로 nomount 까지 올라왔습니다.

그리고 혹시 모르니 다시 node1 node2을 root유저에서 tbcm -d 명령어를 치셔서 cm을 죽이고

node1에서 다시 tbcm -c

node1 에서 tbcm -b

node2 에서 tbcm -b

node1 : su - tibero

node2 : su - tibero

node1 : tbboot - t nomount

여기까지 오시면 됩니다. DB생성은 node1에서만 진행합니다.

DATABASE 생성

[tibero@localhost ~]$ tbsql sys/tibero

tbSQL 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

############TBTAC Database를 생성할 것이다.############

[노드1만][노드1만][노드1만][노드1만][노드1만][노드1만][노드1만][노드1만]

create database "TBTAC"

user sys identified by tibero

character set MSWIN949

logfile group 0 ('/dev/raw/rvg1-vol_128m_001','/dev/raw/rvg2-vol_128m_001') size 127M,

group 1 ('/dev/raw/rvg1-vol_128m_002','/dev/raw/rvg2-vol_128m_002') size 127M,

group 2 ('/dev/raw/rvg1-vol_128m_003','/dev/raw/rvg2-vol_128m_003') size 127M,

group 3 ('/dev/raw/rvg1-vol_128m_004','/dev/raw/rvg2-vol_128m_004') size 127M,

group 4 ('/dev/raw/rvg1-vol_128m_005','/dev/raw/rvg2-vol_128m_005') size 127M

maxdatafiles 100

maxlogfiles 20

maxlogmembers 8

archivelog

datafile '/dev/raw/rvg1-vol_512m_001' size 511M autoextend off

default tablespace USR

datafile '/dev/raw/rvg1-vol_128m_013' size 127M autoextend off

default temporary tablespace TEMP

tempfile '/dev/raw/rvg1-vol_512m_004' size 511M autoextend off

extent management local AUTOALLOCATE

undo tablespace UNDOTBS0

datafile '/dev/raw/rvg1-vol_512m_002' size 511M autoextend off

extent management local UNIFORM SIZE 128K

;

Database created.

SQL> q

Disconnected.

##DATABASE를 생성하면 Tibero는 자동으로 down 됩니다.

Node2를 위한 Tread / Undo / Redo 정보 추가

* Normal Mode tbboot

[tibero@localhost config]$ tbboot

Listener port = 8629

Change core dump dir to /home/tibero/tibero5/bin/prof.

Tibero 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Tibero instance started up (NORMAL mode).

* Tibero 기동 후 Thread 1 의 UNDO &REDO 를 추가

[tibero@localhost config]$ tbsql sys/tibero

tbSQL 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

SQL> create undo tablespace UNDOTBS1

datafile '/dev/raw/rvg1-vol_512m_003' size 511M autoextend off

extent management local UNIFORM SIZE 128K;

Tablespace 'UNDOTBS1 ' created.

alter database add logfile thread 1 group 5 ('/dev/raw/rvg1-vol_128m_006','/dev/raw/rvg2-vol_128m_006') size 127m;

alter database add logfile thread 1 group 6 ('/dev/raw/rvg1-vol_128m_007','/dev/raw/rvg2-vol_128m_007') size 127m;

alter database add logfile thread 1 group 7 ('/dev/raw/rvg1-vol_128m_008','/dev/raw/rvg2-vol_128m_008') size 127m;

alter database add logfile thread 1 group 8 ('/dev/raw/rvg1-vol_128m_009','/dev/raw/rvg2-vol_128m_009') size 127m;

alter database add logfile thread 1 group 9 ('/dev/raw/rvg1-vol_128m_010','/dev/raw/rvg2-vol_128m_010') size 127m;

SQL> alter database enable public thread 1;

##Node2가 사용할 Thread 1 활성화

APM Tablespace 추가

SQL> create tablespace SYSSUB

datafile '/dev/raw/rvg1-vol_128m_014' size 127m autoextend off;

Tablespace 'SYSSUB' created.

system.sh 실행 (tibero / syscat / y / y / y / n)

SQL> exit

$TB_HOME/scripts 디렉터리에서 system.sh 실행

[tibero@localhost ~]$ cd $TB_HOME/scripts

[tibero@localhost scripts]$ sh system.sh

Enter SYS password:

tibero

Enter SYSCAT password:

syscat

Create default system users & roles?(Y/N):

y

Create system tables related to profile?(Y/N):

y

Register dbms_stats job to Job Scheduler?(Y/N):

y

Create APM tables?(Y/N):

n

===>APM table을 만들 경우 node1의 홈 디렉토리에 APM테이블이 만들어진다. 그러면 node2에서 티베로를 부팅시킬 때 APM table을 못 찾게 된다. node2는 이러한 오류로 open 되지 못한다.

(이전에 TAC를 설치하면서 APM table관련 오류로 고생을 해봐서 이번에는 n을 선택했다.

만약 Create APM tables?(Y/N) : y 를 선택했다면 node2에서 tbboot를 해본뒤 APM table 오류가 나면 노드 1으로 들어가서 APMtable을 삭제해주면 된다. 아직까진 1차원적인 오류 해결밖에 못하겠다.)

Node 2 티베로 실행

[tibero@localhost ~]$ tbsql sys/tibero

tbSQL 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

SQL> select 1 from dual;

1

----------

1

1 row selected.

SQL> select instance_number, instance_name, db_name, status

2 from v$instance;

INSTANCE_NUMBER INSTANCE_NAME DB_NAME STATUS

--------------- ---------------------------------------- ----------------------------------------

0 TBTAC1 TBTAC NORMAL

1 row selected.

[tibero@localhost ~]$ tbboot

Listener port = 8629

Change core dump dir to /home/tibero/tibero5/bin/prof.

Tibero 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Tibero instance started up (NORMAL mode).

[tibero@localhost config]$ tbsql sys/tibero

tbSQL 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

SQL> select 1 from dual;

1

----------

1

SQL> select instance_number, instance_name, db_name, status

2 from v$instance;

1 row selected.

INSTANCE_NUMBER INSTANCE_NAME DB_NAME STATUS

--------------- ---------------------------------------- ----------------------------------------

1 TBTAC2 TBTAC NORMAL

오류가 나지 않았다면 지나가셔도 됩니다. 설치를 잘 진행하신 것 입니다.

저는 여기서 2번째 오류가 났습니다.

node2에서 [tibero@localhost ~]$ tbboot 를 하고

문제는 ? node2에서 사용해야할 UNDOTBS1을 UNDO테이블로 지정할 수 없다는 오류였습니다.

[tibero@localhost ~]$ tbboot

Listener port = 8629

Change core dump dir to /home/tibero/tibero5/bin/prof.

********************************************************

* Critical Warning : Tibero Boot failed. The reason is

* TBR-21020 : Unable to specify undo tablespace UNDOTBS1 as default undo tablespace.

* Process shutdown.

********************************************************

Tibero instance startup failed!

해결방안> Node1은 정상적으로 부팅이 되니까 Node1의 sys유저로 접속해서 문제를 해결했습니다.

현재 tablespace undotbs1이 어떤 파일을 차지하고 있는지 확인해본다.

SQL> select a.file_name, a.file_id, a.tablespace_name, b.status

2 from dba_data_files a, dba_tablespaces b

3 where a.tablespace_name = b.tablespace_name;

해당 파일들을 조사해봤다. /dev/raw/ , /dev/mapper 등..

파일 권한은 이상이 없다.

NODE2의 TBTAC2.tip 파일에도 undotablespace undotbs1을 사용하겠다고 파라미터 값을 지정해놓았다.

...

UNDO_TABLESPACE="UNDOTBS1“

...

위의 값인데 분명 에러메시지는 UNDOTBS1를 UNDOTABLESPACE로 지정할 수 없다고 나온다.

[[해결방법]] [[NODE1]]에서 작성

: NODE1에서 UNDOTBS2를 만들어서 NODE2에서 UNDOTBS2를 사용해본다.

SQL> create undo tablespace UNDOTBS2

2 datafile '/dev/raw/rvg1-vol_512m_005' size 511M autoextend off

3 extent management local UNIFORM SIZE 128K;

Tablespace 'UNDOTBS2' created.

SQL> select tablespace_name

2 from dba_tablespaces;

TABLESPACE_NAME

--------------------------------------------------------------------------------

SYSTEM

UNDOTBS0

TEMP

USR

UNDOTBS1

SYSSUB

UNDOTBS2

7 rows selected.

[[노드2]] UNDOTBS2로 수정한다.

[tibero@localhost ~]$ vi $TB_HOME/config/TBTAC2.tip

############################################

### Undo and Rollback Segments

############################################

UNDO_TABLESPACE="UNDOTBS2"

[[노드2]] tbboot를 해본다.

[tibero@localhost config]$ tbboot

Listener port = 8629

Change core dump dir to /home/tibero/tibero5/bin/prof.

Tibero 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Tibero instance started up (NORMAL mode).

[tibero@localhost config]$ tbsql sys/tibero

tbSQL 5

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

SQL> select 1 from dual;

1

----------

1

1 row selected.

해결이 잘되었다. 왜 UNDOTBS1을 UNDOTABLESPACE로 지정할 수 없는지 이해는 가지 않지만 일단은 실행되었으니 나중에 티베로를 더 배우면 해결해봐야겠다.

끝으로 TAC 설치를 마치면서 아마 다른 오류가 있을 거라고 생각하는데

예를 들면 RAW device가 갑자기 죽는다거나 , 볼륨파일을 사용할 수 없다는 오류 등 ...

정말 TAC를 계속 설치하면서 오류 내역을 다 찍고 싶었지만 당시에는 해결만 하자라는 마음가짐이었기 때문에 위 오류 말고도 이것을 따라하시는 분도 오류가 생길거라고 생각합니다.. 근데 그런 오류를 잡고나면 뭔가 리눅스랑 tibero에 대해 더 이해가 가는 느낌입니다.~

아무튼 오류 없이 설치하셨으면 정말 잘하신 것 입니다.