Appendix C. 문제 해결

내용 목차

C.1. 데이터베이스 접속

본 장에서는 Tibero를 사용할 때 발생할 수 있는 문제를 해결하는 방법을 설명한다.

C.1. 데이터베이스 접속

  • 문제

    $ tbsql SYS/tibero
    
    tbSQL 5 SP1
    
    Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.
    
    [UNIX Domain Socket] connect failed : Connection refused
    TBR-2131: Generic I/O error   
    
    No longer connected to server.

    tbSQL 유틸리티를 이용하여 Tibero의 데이터베이스에 접속할 때 이러한 메시지가 출력되는 문제이다.

  • 해결

    우선 먼저 Tibero가 기동되어 있는지 확인한다. Tibero의 기동 여부에 따라 이를 해결하는 방법이 다르다.

    • Tibero가 기동되지 않은 경우

      tbctl 명령어를 사용하여 Tibero의 프로세스가 실행되고 있는지 확인한다.

      $ tbctl pid
      
        ...Tibero 프로세스가 없다.

      또는 ps와 grep 명령어로 Tibero의 프로세스가 실행되고 있는지 확인한다.

      $ ps -ef | grep tbsvr
        tibero   22919 22590  0 15:37 pts/10   00:00:00 grep tbsvr
      
        ...Tibero 프로세스가 없다.

      Tibero 프로세스가 없다면 tbboot 명령어를 사용하여 Tibero를 기동한다. tbboot 명령어를 사용하는 방법에 대한 내용은 “2.5.1. tbboot를 참고한다.

    • Tibero가 기동되어 있는 경우

      다음과 같이 Tibero 프로세스는 실행되고 있으나, 데이터베이스에 접속되지 않는 경우는 대체로 서버와 클라이언트의 환경설정이 서로 맞지 않을 때 발생한다.

      $ ps -ef | grep tbsvr
      tibero   32036 32035  0 20:00 pts/7    00:00:00 tbsvr         -n ...
      tibero   32037 32036  0 20:00 pts/7    00:00:00 tbsvr_WT001   -n ...
      tibero   32038 32036  0 20:00 pts/7    00:00:00 tbsvr_SEQW    -n ...
      tibero   32039 32036  0 20:00 pts/7    00:00:00 tbsvr_LOGW    -n ...
      tibero   32040 32036  0 20:00 pts/7    00:00:00 tbsvr_LOGA    -n ...
      tibero   32041 32036  0 20:00 pts/7    00:00:00 tbsvr_CKPT    -n ...
      tibero   32042 32036  0 20:00 pts/7    00:00:00 tbsvr_BLKW000 -n ...
      tibero   32057 30048  0 20:00 pts/7    00:00:00 grep tbsvr

      우선 $TB_HOME/client/config 디렉터리에 있는 tbdsn.tbr 파일을 확인하여 클라이언트의 설정 부분을 확인한다.

      <tbdsn.tbr>

      Tb5=(
           (INSTANCE=(HOST=localhost)
                     (PORT=8629)
                     (DB_NAME=Tb5)
           )
      )

      위 예제에서 보듯이, 호스트는 localhost, 포트 번호는 8629로 입력되어 있다. 이와 같은 정보가 서버의 환경설정 파일과 일치하는지 확인한다.

      확인하는 방법은 다음과 같다.

      <$TB_HOME/config/$TB_SID.tip>

      # -----*----- conf -----*-----
      #
      # Tibero 초기화 파라미터
      #
      
      LISTENER_PORT=6666
      ......

      $TB_SID.tip 파일을 보면 클라이언트에 설정된 포트 번호와 일치하지 않다는 것을 확인할 수 있다. 이로 인해 Tibero의 데이터베이스에 접속할 수 없는 원인이 된다.

      또한, 포트 번호가 설정되지 않으면 Tibero 내부에 테스트 용인 임의의 포트 번호가 설정된다. 그러면 포트 번호의 충돌 등의 문제를 유발할 수 있다. 이러한 경우 Tibero의 안정적인 동작을 보장할 수 없다. 그러므로 반드시 포트 번호를 동일하게 설정해야 한다.

      단, 로컬에서 접속할 때에는 tbdsn.tbr 파일에 포트 번호가 서버의 $TB_SID.tip 파일과 달라도 Tibero는 기동된다. 반면에 원격으로 접속할 때에는 반드시 서버 쪽의 포트 번호와 일치해야 Tibero가 기동된다.