새소식

⇥ DevOps Tech 🙋🏻‍♀️/✏️ TIBERO

[TIBERO] Tibero Active Cluster (TAC) 구성법 - CENTOS7

  • -
반응형

1. TAC 의 구조

TAC 구성은 Control file 과 Data file 을 공유하여 사용하며,

각 instance 를 관리하는데 필요한 REDO , UNDO , ARCH 등은 각각의 instance 가 가지고 있게 된다.

각각의 instance 는 CM이 관리하게 되며 Inter-Connect 를 통해 정보를 공유하게 된다.


2. TAC 구성 준비

1번 항목에서 첨부했던 사진을 포트 와 함께 이번 포스팅에서 구성할 TAC 구조로 표현해 보았다.

위 내용처럼 TAC를 구성할 것이다.


3. 프로파일 준비

* /home/tac 경로에서 설치가 진행 될 예정으로 아래는 모두 해당 경로 기준으로 작성되어 있음

- ac1.profile

PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export TB_SID=ac1
export CM_SID=cm1
export CM_HOME=/home/tac/tibero6
export TB_HOME=/home/tac/tibero6
export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin

ac1.profile
0.00MB

- ac2.profile

PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export TB_SID=ac2
export CM_SID=cm2
export CM_HOME=/home/tac/tibero6
export TB_HOME=/home/tac/tibero6
export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin

ac2.profile
0.00MB

 

TB_SID 와 CM_SID 를 다르게 해준 것을 알 수 있다.

즉 ac1 인스턴스를 생성할 때는 ac1.profile 을 사용하게 될 것이고, ac2 인스턴스를 생성할 때는 ac2.profile 을 사용

두개의 프로파일을 $HOME 경로에 준비한다.


4. 인스턴스 설정에 필요한 tip 파일 준비 ($TB_HOME/config 디렉토리에 저장)

* 위 그림에 적어놓은 포트가 어디에 적히는지 확인하면 좋을 것이다.

- ac1.tip

DB_NAME=ac
LISTENER_PORT=15100
CONTROL_FILES="/home/tac/tibero6/database/ac/c1.ctl"
MAX_SESSION_COUNT=100
TOTAL_SHM_SIZE=2G
MEMORY_TARGET=4G
CLUSTER_DATABASE=Y
THREAD=0
UNDO_TABLESPACE=UNDO1
LOCAL_CLUSTER_ADDR=192.168.17.102
LOCAL_CLUSTER_PORT=15115
CM_PORT=35100

LOG_ARCHIVE_DEST="/home/tac/arch"
WALLET_FILE="/home/tac/WALLET"

ac1.tip
0.00MB

- ac2.tip

DB_NAME=ac
LISTENER_PORT=25100
CONTROL_FILES="/home/tac/tibero6/database/ac/c1.ctl"
MAX_SESSION_COUNT=100
TOTAL_SHM_SIZE=2G
MEMORY_TARGET=4G
CLUSTER_DATABASE=Y
THREAD=1
UNDO_TABLESPACE=UNDO2
LOCAL_CLUSTER_ADDR=192.168.17.102
LOCAL_CLUSTER_PORT=25115
CM_PORT=45100

LOG_ARCHIVE_DEST="/home/tac/arch"
WALLET_FILE="/home/tac/WALLET"

ac2.tip
0.00MB

 

인스턴스 구성에 필요한 정보가 포함되어 있다.


5. Cluster Manager 설정파일인 cm.tip 파일 준비 ($TB_HOME/config 디렉토리에 저장)

- cm1.tip

CM_NAME=cm1
CM_UI_PORT=35100
CM_RESOURCE_FILE="/home/tac/tibero6/cmfile0"
CM_HEARTBEAT_EXPIRE=60
CM_WATCHDOG_EXPIRE=55

cm1.tip
0.00MB

 

- cm2.tip

CM_NAME=cm2
CM_UI_PORT=45100
CM_RESOURCE_FILE="/home/tac/tibero6/cmfile1"
CM_HEARTBEAT_EXPIRE=60
CM_WATCHDOG_EXPIRE=55

cm2.tip
0.00MB

 

Cluster Manager 구성에 필요한 정보가 포함되어 있다.


6. tbdsn.tbr 파일 준비 ($TB_HOME/client/config 디렉토리에 저장)

인스턴스가 2개이기 때문에 어떤 인스턴스에 접속할지 접속방식에 대해 작성해주어야 한다.

alias 를 ac 로 작성해주었기 때문에 tac 구성 완료 후 접속 시

tbsql sys/tibero@ac 를 입력하면 FAILOVER 및 LOAD_BALANCE 가 동작하게 된다.

- tbdsn.tbr

ac=(
    (INSTANCE=(HOST=192.168.17.102)
              (PORT=15100)
              (DB_NAME=ac)
    )

    (INSTANCE=(HOST=192.168.17.102)
              (PORT=25100)
              (DB_NAME=ac)
    )
    (LOAD_BALANCE=Y)
    (USE_FAILOVER=Y)
)

ac1=(
    (INSTANCE=(HOST=192.168.17.102)
              (PORT=15100)
              (DB_NAME=ac)
    )
)

ac2=(
    (INSTANCE=(HOST=192.168.17.102)
              (PORT=25100)
              (DB_NAME=ac)
    )
)

7. TAC 구성 단계

모든 파일이 준비 되었다면 TAC 구성을 시작할 수 있다.

ac1.profile / ac2.profile

cm1.tip / cm2.tip 

ac1.tip / ac2.tip 

tbdsn.tbr 

 

TBCM 1번 구성 및 db nomount 부팅

tbcm -b
cmrctl add network --nettype private --ipaddr 192.168.17.102 --portno 31100 --name net1
cmrctl add cluster --incnet net1 --cfile "/home/tac/tibero6/c1.cls" --name cls1
cmrctl start cluster --name cls1
cmrctl add service --name ac --cname cls1
cmrctl add db --name ac1 --svcname ac --dbhome $CM_HOME --envfile $HOME/ac1.profile
cmrctl start db --name ac1 --option "-t nomount"

 

ac1 접속 및 db 생성 , 부팅

tbsql sys/tibero@ac1
CREATE DATABASE "ac" USER SYS IDENTIFIED BY TIBERO
CHARACTER SET MSWIN949
LOGFILE GROUP 0 ('log001') SIZE 1024M,
        GROUP 1 ('log011') SIZE 1024M,
        GROUP 2 ('log021') SIZE 1024M
MAXDATAFILES 1024   MAXLOGFILES 100 MAXLOGMEMBERS 8
NOARCHIVELOG
  DATAFILE 'system.dtf' SIZE 1024M
SYSSUB DATAFILE 'syssub.dtf' SIZE 100M
DEFAULT TABLESPACE USR DATAFILE 'usr.dtf' SIZE 1024M
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'temp.dtf' SIZE 100M
   AUTOEXTEND ON NEXT 8M MAXSIZE unlimited
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE
UNDO TABLESPACE UNDO1
  DATAFILE 'undo001.dtf' SIZE 100M 
  AUTOEXTEND ON NEXT 8M MAXSIZE unlimited
  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;
tbboot

 

ac1 접속하여 ac2 에서 사용할 undo, log 파일 생성 및 thread 활성화

tbsql sys/tibero@ac1
CREATE UNDO TABLESPACE UNDO2
DATAFILE '/home/tac/tbdata/undo011.dtf' SIZE 100M
AUTOEXTEND ON NEXT 8M MAXSIZE unlimited     
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 3 '/home/tac/tbdata/log031.dtf' size 1024M;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 4 '/home/tac/tbdata/log041.dtf' size 1024M;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 5 '/home/tac/tbdata/log051.dtf' size 1024M;
alter database enable public thread 1;

 

ac1 에서 system.sh 수행

exec $TB_HOME/scripts/system.sh -p1 tibero -p2 syscat -a1 y -a2 y -a3 y -a4 y

 

* ac1 에서 db 생성이 완료, 이후 과정은 ac2 를 클러스터에 등록하는 과정이다.

. ac2.profile
tbcm -b
cmrctl add network --nettype private --ipaddr 192.168.17.102 --portno 42200 --name net2
cmrctl add cluster --incnet net2  --cfile "/home/tac/tibero6/c1.cls" --name cls1
cmrctl start cluster --name cls1
cmrctl add db --name ac2 --svcname ac --dbhome $CM_HOME --envfile $HOME/ac2.profile
cmrctl start db --name ac2

 

아래와 같이 cm2 에 db 가 정상 부팅되었다면 설치가 완료되었다.

$ cmrctl show
Resource List of Node cm2
=====================================================================
  CLUSTER     TYPE        NAME       STATUS           DETAIL         
----------- -------- -------------- -------- ------------------------
     COMMON  network           net2       UP (private) 192.168.17.102/42200
     COMMON  cluster           cls1       UP inc: net2, pub: N/A
       cls1     file         cls1:0       UP /home/tac/tibero6/c1.cls
       cls1  service             ac       UP Database, Active Cluster (auto-restart: OFF)
       cls1       db            ac2 UP(NRML) ac, /home/tac/tibero6, failed retry cnt: 0
=====================================================================
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.