Appendix A. tbdsn.tbr

내용 목차

A.1. tbdsn.tbr 구조
A.2. 이중화 서버 설정
A.3. 로드 밸런싱 설정
A.4. Failover 설정

tbdsn.tbr 파일은 클라이언트가 Tibero의 데이터베이스에 접속하기 위해 필요한 정보를 가지고 있는 환경설정 파일이다. 기본적으로 tbdsn.tbr 파일에는 SID, 호스트, 포트 번호 등의 정보가 포함되어 있다.

예를 들면 다음과 같다.

tb=(
    (INSTANCE=(HOST=168.1.1.33)
              (PORT=8629)
              (DB_NAME=tibero)
    )
)

A.1. tbdsn.tbr 구조

tbdsn.tbr 파일은 다음과 같은 구조로 이루어져 있다.

SID_1=(
       (INSTANCE=(항목1=값1)
                 (항목2=값2)
        ...
       )
)

SID_2=(
       (INSTANCE=(항목1=값1)
                 (항목2=값2)
        ...
      )
)

TB_NLS_LANG=EUCKR

TBCLI_LOG_LVL=TRACE

TBCLI_LOG_DIR=/home/test/log

...

SID는 클라이언트에서 해당 서버를 식별하기 위한 고유한 이름으로 위 구조와 같이 세부 항목이 포함되어 있으며 병렬 구조의 형태를 띤다.

tbdsn.tbr에서 SID로 사용할 수 있는 표준문자는 문자(A ~ Z, a ~ z), 숫자(0 ~ 9) 및 언더라인(_)이며 대소문자를 구별한다.

SID의 세부 항목은 다음과 같다.

항목설명
HOST

서버의 IP 주소이다.

(예: HOST=168.1.1.33)

PORT

서버의 포트 번호이다.

(예: PORT=8629)

DB_NAME

데이터베이스의 이름이다.

(예: DB_NAME=tibero)

SID 외에 클라이언트 환경설정도 할 수 있다. 이 설정들은 환경변수로도 지정 가능하며 양쪽 다 설정되어 있을 경우 tbdsn.tbr 파일 설정을 우선적으로 따른다.

항목설명
TB_NLS_LANG

클라이언트에서 사용하는 캐릭터 셋을 지정할 수 있다.

(예: TB_NLS_LANG=EUCKR)

TBCLI_LOG_LVL

CLI의 로그 레벨을 지정할 수 있다.

(예: TBCLI_LOG_LVL=TRACE)

TBCLI_LOG_DIR

CLI의 로그를 저장할 디렉터리를 지정할 수 있다.

디폴트 디렉터리는 Windows 계열이 c:\ 이고, UNIX 계열은 /tmp이다.

(예: TBCLI_LOG_DIR=/home/test/log)

A.2. 이중화 서버 설정

이중화 서버(Replication server)는 물리적으로 독립된 여러 개의 서버를 동일하게 복제한 것을 의미한다. 동일하게 복제된 서버를 임의로 접속할 수 있고, 하나의 서버가 정지했을 때에도 다른 서버 대신 접속하여 같은 작업을 수행할 수 있다.

tbdsn.tbr 파일에서 이중화 서버를 구성하려면 다음과 같이 하나의 SID로 이중화 서버를 INSTANCE 항목으로 설정하면 된다. 이중화 서버로 설정된 SID에 대해서는 항상 CTF(Connection Time Failover)를 지원한다.

tb=(
    (INSTANCE=(HOST=168.1.1.33)
              (PORT=8629)
              (DB_NAME=tibero)
    )
    (INSTANCE=(HOST=192.168.1.25)
              (PORT=8629)
              (DB_NAME=tibero2)
    )
    (INSTANCE=(HOST=localhost)
              (PORT=8629)
              (DB_NAME=tibero)
    )
)        

A.3. 로드 밸런싱 설정

Tibero에서는 이중화 서버 중에서 특정 서버의 집중적인 접속을 막으려고 로드 밸런싱(Load balancing) 기능을 지원한다. 즉, 특정 서버의 집중적인 접속을 분산시킴으로써 시스템의 과부하를 막고 더 나은 접속 환경을 제공한다.

tbdsn.tbr 파일에서 로드 밸런싱 기능을 설정하는 방법은 다음과 같다.

tb=(
    (INSTANCE=(HOST=168.1.1.33)
              (PORT=8629)
              (DB_NAME=tibero)
    )
    (INSTANCE=(HOST=192.168.1.25)
              (PORT=8629)
              (DB_NAME=tibero2)
    )
    (INSTANCE=(HOST=localhost)
              (PORT=8629)
              (DB_NAME=tibero)
    )
    (LOAD_BALANCE=Y)
)        

위 예제에서 보듯이 SID 내의 LOAD_BALANCE 값을 'Y'로 설정하면 로드 밸런싱 기능을 사용할 수 있다. 반면에 LOAD_BALANCE 값이 없거나 'Y' 외의 다른 값을 입력하면 로드 밸런싱 기능은 동작하지 않는다.

A.4. Failover 설정

TiberoTAC 또는 이중화된 서버로 설정된 상태에서 장애로 인해 중단되면, CLI 모듈은 다른 인스턴스 또는 이중화된 서버로 접속하여 해당 세션을 자동으로 복구한다.

tbdsn.tbr 파일에서 Failover 기능을 설정하는 방법은 다음과 같다.

tb=(
    (INSTANCE=(HOST=168.1.1.33)
              (PORT=8629)
              (DB_NAME=tibero)
    )
    (INSTANCE=(HOST=192.168.1.25)
              (PORT=8629)
              (DB_NAME=tibero2)
    )
    (INSTANCE=(HOST=localhost)
              (PORT=8629)
              (DB_NAME=tibero)
    )
    (USE_FAILOVER=Y)
    (FORCE_FAILOVER_DELAY=10)
)        

위 예제에서 보듯이 SID 내의 USE_FAILOVER 값을 'Y'로 설정하면 Failover 기능을 사용할 수 있다. 단, 문장(Statement) 레벨까지의 복구는 지원하지 않는다.

그리고 FORCE_FAILOVER_DELAY는 Failover 기능의 선택적인 옵션으로 다른 인스턴스 또는 이중화된 서버로 접속하기 전에 일정 지연시간(단위 초) 뒤 접속을 시도하는 기능이다. 위의 예제에서는 10초 후에 다른 인스턴스로 Failover가 시도된다.

참고

1. CTF(Connection Time Failover)는 USE_FAILOVER 설정과는 관련이 없으며, 이중화 서버로 구성한 SID에 대해서는 항상 지원한다.

2. USE_FAILOVER 설정으로 서버에 접속할 때 서버가 normal 모드로 기동한 상태가 아니면 오류(ERROR_CLIMSG_REDIRECT)가 발생한다. 만약 서버가 normal 모드로 기동한 상태가 아니라면 명확하게 접속하려고 하는 서버를 명시해야 한다.