본문 바로가기

DB/Tibero

[Tibero] Cent OS 7에 티베로 TAC(이중화) 구성 | 설치

728x90

* 설치 환경 : cent OS 7 최소 설치

 

미션 1. 포트번호 변경 

cd /etc/ssh
ls -al
cp sshd_config sshd_config_backup_240214
백업본 만들기
vi sshd_config 
포트번호 변경
semanage port -a -t ssh_port_t -p tcp 변경한포트번호
(semanage not found 오류 발생 시 > yum -y install policycoreutils-python 설치 후 재시도)
service sshd restart
netstat -an |grep LISTEN
(netstat not found 오류 발생 시 > yum -y install net-tools)
systemctl stop firewalld
systemctl disable firewalld

 

 

미션 2. nfs 공유볼륨 생성

yum -y install nfs-utils
cd /home
mkdir /shareT
mount -t nfs 공유볼륨IP:/volume/tibero /home/shareT

 

 

1. IP설정

1.1 서비스용 IP 설정

cd /etc/sysconfig/network-scripts
vi ifcfg-enp0s8

 

1.2 내부통신용 IP설정

vi ifcfg-enp0s9

 

systemctl restart network
ip addr

네트워크 재시작 후 IP를 확인하면 내가 설정한대로 바뀐걸 확인할 수 있다.

 

ping 서버2의내부통신IP

내부통신되는지 확인하기

 

 

1.3 방화벽 해제, 영구적으로 중단

systemctl stop firewalld
systemctl disable firewalld

 

2.  커널파라미터, limits.conf설정

2.1 커널 파라미터 설정

vi /etc/sysctl.conf

kernel.shmmni=4096
kernel.shmmax=1073741824
kernel.shmall=262144
kernel.sem=10000 32000 10000 100000
fs.file-max=6815744

esc:wq!

sysctl -p

 

2.2 limits.conf 설정

vi /etc/security/limits.conf

tibero soft nofile 1024
tibero hard nofile 65536
tibero soft nproc 2047
tibero hard nproc 16384

esc:wq!

 

3. 그룹, 유저 생성 | 권한 부여

groupadd dba
useradd -g dba tibero
passwd tibero

chmod -R 775 /home/tibero
chown -R tibero:dba /home/tibero

 

4. tibero 설치파일 압축 해제 후 라이센스 폴더에 라이센스 파일 추가

su - tibero
tar xvf tibero6-bin-FS07_CS_2005-linux64-186930-opt-tested.tar.gz
cp license.xml tibero6/license

5. .bash_profile파일 설정

# 노드1  ----------------------------------------
export TB_BASE=/tibero
export TB_HOME=$TB_BASE/tibero6
export TB_SID=tac1
export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
export PATH=$TB_HOME/bin:$TB_HOME/client/bin:$PATH

## CM
export CM_HOME=$TB_HOME
export CM_SID=cm1

# 노드2  ----------------------------------------
export TB_BASE=/tibero
export TB_HOME=$TB_BASE/tibero6
export TB_SID=tac2
export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
export PATH=$TB_HOME/bin:$TB_HOME/client/bin:$PATH

## CM
export CM_HOME=$TB_HOME
export CM_SID=cm2

esc:wq!로 저장하고 나와서

. .bash_profile로 환경 설정 파일 적용

 

6.tip 파일 설정

cd $TB_HOME/config
ls -al
sh gen_tip.sh
ls -al
vi tac1.tip

 

# vi tac1.tip ----------------------------------------
DB_NAME=tacdb
LISTENER_PORT=8629
CONTROL_FILES="/home/share/cl.ctl"
DB_CREATE_FILE_DEST="/home/share/"
LOG_ARCHIVE_DEST="/home/tibero/tbarch"
MAX_SESSION_COUNT=20
TOTAL_SHM_SIZE=1G
MEMORY_TARGET=2G
#### TAC ENV #####
THREAD=0
UNDO_TABLESPACE=UNDO0
CLUSTER_DATABASE=Y
LOCAL_CLUSTER_ADDR=192.168.56.108
LOCAL_CLUSTER_PORT=11029
CM_PORT=11039

 

# vi tac2.tip ----------------------------------------
DB_NAME=tacdb
LISTENER_PORT=8629
CONTROL_FILES="/home/share/cl.ctl"
DB_CREATE_FILE_DEST="/home/share/"
LOG_ARCHIVE_DEST="/home/tibero/tbarch"
MAX_SESSION_COUNT=20
TOTAL_SHM_SIZE=1G
MEMORY_TARGET=2G
#### TAC ENV #####
THREAD=1
UNDO_TABLESPACE=UNDO1
CLUSTER_DATABASE=Y
LOCAL_CLUSTER_ADDR=192.168.56.107
LOCAL_CLUSTER_PORT=11029
CM_PORT=11039

6-1.tip 파일 설정

cd $TB_HOME/config
ls -al

# 노드1 -------------------------------------------------------------------------
vi cm1.tip
CM_NAME=cm1
CM_UI_PORT=11039
CM_RESOURCE_FILE="/home/tibero/tibero6/config/cm1_res"

# 노드2 -------------------------------------------------------------------------
vi cm2.tip
CM_NAME=cm2
CM_UI_PORT=11039
CM_RESOURCE_FILE="/home/tibero/tibero6/config/cm2_res"

 

7.tbdsn.tbr 파일 설정

cd $TB_HOME/client/config
ls -al
vi tbdsn.tbr

#  노드1  ---------------------------------------------
tac1=(
          (INSTANCE=(HOST=localhost)
                                (PORT=8629)
                                (DB_NAME=tacdb)
           )
)

tac=(
           (INSTANCE=(HOST=192.168.137.11)
                                 (PORT=8629) 
                                 (DB_NAME=tacdb)
            )
            (INSTANCE=(HOST=192.168.137.7)
                                  (PORT=8629)
                                  (DB_NAME=tacdb)
             )
        (LOAD_BALANCE=Y)
        (USE_FAILOVER=Y)

  )

#  노드2  ---------------------------------------------
tac2=(
          (INSTANCE=(HOST=localhost)
                                (PORT=8629)
                                (DB_NAME=tacdb)
           )
)

tac=(
           (INSTANCE=(HOST=192.168.137.11)
                                 (PORT=8629) 
                                 (DB_NAME=tacdb)
            )
            (INSTANCE=(HOST=192.168.137.7)
                                  (PORT=8629)
                                  (DB_NAME=tacdb)
             )
        (LOAD_BALANCE=Y)
        (USE_FAILOVER=Y)

  )

 

8. CM 구성

tbcm -b

cmrctl show

# 1번 노드 --------------------------------------------------------------------------------
cmrctl add network --name inter1 --nettype private --ipaddr 192.168.56.108 --portno 11059
cmrctl add network --name pub1 --nettype public --ifname enp0s8
cmrctl show

# 2번 노드 --------------------------------------------------------------------------------
cmrctl add network --name inter1 --nettype private --ipaddr 192.168.56.107 --portno 11059
cmrctl add network --name pub1 --nettype public --ifname enp0s8
cmrctl show

 

# 1,2번 노드 공통 -------------------------------------------------------------------
cmrctl add cluster --name cluster1 --incnet inter1 --pubnet pub1 --cfile "/home/share/cm_cfile"
cmrctl start cluster --name cluster1
cmrctl show

cmrctl add service --name tacdb --cname cluster1 --type db

 

1번 노드에만 추가해도 2번 노드까지 자동으로 추가되어야 정상

 

# 1번 노드 ---------------------------------------------------------------------
cmrctl add db --name tac1 --svcname tacdb --dbhome $TB_HOME --envfile /home/tibero/.bash_proile

# 2번 노드 ---------------------------------------------------------------------
cmrctl add db --name tac2 --svcname tacdb --dbhome $TB_HOME --envfile /home/tibero/.bash_proile

 

*클러스터 환경 확인

cmrctl show cluster --name cluster1 

 

 

9. DB 생성

tbboot nomount
tbsql sys/tibero

CREATE DATABASE
       USER sys IDENTIFIED BY tibero
       MAXINSTANCES 2
       MAXDATAFILES 200
       CHARACTER SET MSWIN949
       LOGFILE
            group 0 'log01.log' size 100M,
            group 1 'log02.log' size 100M,
            group 2 'log03.log' size 100M
       MAXLOGFILES 50
       MAXLOGMEMBERS 3
       NOARCHIVELOG
            datafile 'system001.dtf' size 512M
       UNDO TABLESPACE undo0
            DATAFILE 'undo001.dtf' size 512M
            EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128k
       DEFAULT TEMPORARY TABLESPACE temp
             TEMPFILE 'temp001.dtf' size 512M
       DEFAULT TABLESPACE usr
             DATAFILE 'usr001.dtf' size 128M
      SYSSUB
            DATAFILE 'syssub001.dtf' size 128M;

exit 
tbboot

9-2. 2번서버 undo 및 Thread 추가

tbsql
conn sys/tibero

create undo tablespace UNDO1
   datafile 'system002.dtf' size 512M autoextend off
   extent management local UNIFORM SIZE 128K;

alter database add logfile thread 1 group 3 '/home/share/log04.log' size 100M;
alter database add logfile thread 1 group 4 '/home/share/log05.log' size 100M;
alter database enable public thread 1;

 

10. 딕셔너리 뷰 생성 

== Tibero Default 스키마 설치

※ 데이터베이스 스키마란 ? 관계형 데이터베이스에서 데이터가 구조화되는 방식을 정의함

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

 

11. 2번 서버 기동

tbboot

 

11-2. TAC확인

select instance_name, STATUS from v$instance;

 

12. 테스트

# tbsql sys/tibero -- 1번 서버
SQL> create table TB_TEST(c1 varchar2(2), c2 varchar(10));
SQL> insert into TB_TEST values('11','bonc1234');

# tbsql sys/tibero -- 2번 서버
SQL> select * from TB_TEST;

# tbsql sys/tibero -- 1번 서버
SQL> commit;

# tbsql sys/tibero -- 2번 서버
SQL> select * from TB_TEST;

 

7. VIP 추가(서버 내 vip 추가 할당 시에 가능)

su - 

1번노드
# cmrctl add vip --name tbvip1 --node cm1 --svcname tacdb --ipaddr <vip ip>/255.255.255.0

2번노드
# cmrctl add vip --name tbvip2 --node cm2 --svcname tacdb --ipaddr <vip ip>/255.255.255.0