Tibero 환경

티베로 DB 환경을 위한 관리 툴, 디렉터리, 환경변수 파일에 대해 안내합니다.

관리 툴

Tibero 환경을 위한 관리 툴에 대한 설명입니다.

tbSQL

tbSQL은 Tibero®(이하 Tibero)에서 제공하는 SQL 문장을 처리하는 대화형 유틸리티 입니다.

이 유틸리티로 SQL 질의, 데이터 정의어(DDL: Data Definition Language), 트랜잭션과 관련된 SQL 문장을 실행할 수 있습니다. 또한 PSM 프로그램을 생성하고 실행할 수 있으며 DBA는 Tibero의 시스템 관리를 위한 명령을 실행 할 수 있습니다.

tbSQL은 이러한 기본 기능 외에도 자동 커밋을 설정하거나 운영체제 관련 명령어의 실행, 출력 저장, 스크립트 기능 등을 제공합니다. 특히 스크립트 기능은 여러 SQL 문장 및 PSM 프로그램, tbSQL 유틸리티의 명령어를 하나의 스크립트 파일로 생성할 수 있어 편리합니다.

tbSQL 유틸리티는 가장 빈번히 사용되는 Tibero의 유틸리티 중 하나로, SQL 문장의 실행 이외에도 다음과 같은 기능들을 제공합니다.

  • 일반적인 SQL 문장 및 PSM 프로그램의 입력, 편집, 저장, 실행

  • 트랜잭션의 설정 및 종료

  • 스크립트를 통한 일괄 작업의 실행

  • DBA에 의한 데이터베이스 관리

  • 데이터베이스의 기동 및 종료

  • 외부 유틸리티 및 프로그램의 실행

  • tbSQL 유틸리티의 환경설정

T-Up

T-Up은 Tibero DB에서 제공하는 유틸리티로, 실제 마이그레이션을 수행 전 호환성 평가 기능과 데이터베이스 스키마 오브젝트 중 전체 또는 일부를 Tibero로 옮기는 마이그레이션 기능으로 구성되있습니다.

T-Up 유틸리티의 기능은 다음과 같습니다.

호환성 평가기능

호환성 평가기능은 소스 데이터베이스의 스키마 오브젝트와 SQL 구문 그리고 응용 프로그램에서 사용된 데이터베이스 관련 API에 대해 Tibero에서의 지원가능 여부 및 미지원 원인 분석을 수행합니다.

  • 실제 마이그레이션을 수행하기 전에 소스 데이터베이스의 스키마 오브젝트, SQL 구문, 응용 프로그램의 API에 대한 호환성 평가

  • HTML 형식의 보고서로 호환성 평가 결과 출력, 제공

마이그레이션 기능

마이그레이션은 소스 데이터베이스에 저장된 테이블, 인덱스, 뷰 등의 스키마 오브젝트와 PSM 프로그램 등을 Tibero 데이터베이스로 옮겨 이전의 데이터베이스와 같은 기능을 수행하게 합니다.

  • 사용자가 원하는 데이터를 선택하여 Tibero로 마이그레이션

  • 테이블, 인덱스, 뷰, 동의어 등의 스키마 객체와 테이블에 정의된 각종 제약조건을 마이그레이션

  • 사용자 특권(privilege) 및 역할(role)을 마이그레이션

  • 마이그레이션 타겟 데이터베이스에 대한 정보를 제공

  • [Option] 버튼을 사용해 다양한 방법으로 마이그레이션

  • Progress 화면을 통해 마이그레이션의 진행사항 파악 가능

T-Up은 Java 언어로 구현되어 있으며, Java 6 이상에서 사용할 수 있습니다. 또한 실행하기 전에 접속 하려는 DB의 JDBC 드라이버 파일의 경로를 실행 스크립트 내의 classpath 설정에 추가합니다.

본 안내서에서 설명하는 T-Up의 기능은 Tibero 6 FS06까지의 내용을 포함합니다.

tbExport

tbExport는 Tibero에서 제공하는 Export 유틸리티 입니다.

이 유틸리티를 통해 Tibero 데이터베이스에 저장된 스키마 객체의 전체 또는 일부를 추출해 고유 형식의 파일로 저장할 수 있으므로 데이터베이스의 백업과 다른 머신 간의 데이터베이스를 전송할 때 유용합니다.

tbExport 유틸리티에서 하나의 스키마 객체를 추출하면 그와 연관된 스키마 객체가 자동으로 함께 추출됩니다.

예를 들어 하나의 테이블을 추출하면 그 테이블에 대해 생성된 인덱스와 제약조건 등이 함께 추출됩니다. 필요에 따라서 연관된 일부 스키마 객체가 함께 추출되지 않도록 지정할 수 있습니다.

Export 모드에는 전체 데이터베이스 모드, 사용자 모드, 테이블 모드가 있습니다.

DBA만이 사용할 수 있으며, DBA 권한을 줄 수 없을 경우 SELECT ANY DICTIONARY 권한을 부여해 사용할 것을 권장합니다.

tbExport 유틸리티를 실행한 결과로 생성된 파일은 운영체제 파일이므로 Tibero 데이터베이스 파일과는 달리 일반 파일과 같은 작업을 실행할 수 있습니다. 예를 들어 파일을 FTP를 이용하여 전송하거나 CD- ROM 등에 저장하여 원격지의 Tibero 데이터베이스로 옮길 수도 있습니다.

Export가 실행되는 과정에서 발생하는 로그는 LOG 파라미터를 사용하여 지정합니다.

다음은 tbExport 유틸리티를 실행한 결과로 생성되는 완료, 경고 및 에러 메시지에 대한 설명입니다.

항목
설명

완료 메시지

Export가 성공적으로 완료된 후에 출력

경고 메시지

Export가 완료되었으나 경고가 발생한 경우에 출력

존재하지 않는 테이블에 대해 Export를 시도할 때와 같은 경우에 발생하며, 이런 경우 tbExport 유틸리티는 경고 메시지를 출력한 후 해당 테이블을 건너뛰고 다음 객체에 대해 Export를 계속 수행

에러 메시지

Export가 실행되는 과정에서 에러가 발생하여 Export를 계속할 수 없는 경우 출력

시스템 메모리가 부족한 상황이나 Export에 필요한 뷰가 생성되지 않는 경우처럼, Export를 계속 실행할 수 없는 상황에 출력되며, 에러 메시지를 출력한 후 Export 세션을 종료

tbExport 유틸리티 특징

논리적인 백업

Tibero의 내부 스키마 및 데이터를 SQL 문장으로 추출합니다.

서로 다른 시점의 데이터

여러 개의 테이블을 Export할 때 추출한 각 테이블의 데이터는 동일 시점의 데이터가 아니라 Export 작업이 실행되는 시점의 순차적인 데이터 입니다.

테이블 정의 저장

데이터의 존재 여부에 상관 없이 테이블 정의(테이블의 DDL 스크립트)를 저장합니다.

테이블의 재구성

테이블 생성 후 수많은 DML 작업으로 인해 발생한 마이그레이션이 된 로우(migrated row)나 단편화(fragmentation)를 제거합니다.

tbImport

tbImport는 Tibero에서 제공하는 Import 유틸리티 입니다. 이 유틸리티를 통해 외부 파일에 저장된 스키마 객체를 Tibero 데이터베이스에 다시 저장하므로, tbExport 유틸리티와 함께 데이터베이스의 백업과 다른 머신 간의 데이터베이스 전송 등을 할 때 유용합니다. tbImport 유틸리티는 기능면에서 tbExport 유틸리티와 대칭적이거나 유사한 것이 많습니다.

하나의 스키마 객체를 저장하면 그와 연관된 스키마 객체가 자동으로 함께 저장됩니다. 필요에 따라서 연관된 일부 스키마 객체가 저장되지 않도록 지정할 수 있습니다.

Import 모드에는 tbExport에서와 같이 전체 데이터베이스 모드, 사용자 모드, 테이블 모드가 있습니다.

참고

DBA만이 사용할 수 있으며, DBA 권한을 줄 수 없을 경우 SELECT ANY DICTIONARY 권한을 부여하여 사용하는 것을 권장합니다.

Import가 실행되는 과정에서 발생하는 로그는 LOG 파라미터를 사용하여 지정합니다.

다음은 tbImport 유틸리티를 실행한 결과로 생성되는 완료, 경고 및 에러 메시지에 대한 설명입니다.

항목
설명

완료 메시지

Import가 성공적으로 완료된 후 출력

경고 메시지

Import가 완료됐으나 경고가 발생한 경우 출력

에러 메시지

Import 과정에서 에러가 발생하여 Import를 계속할 수 없는 경우 출력

tbLoader

tbLoader는 대량의 데이터를 한번에 Tibero 데이터베이스에 저장하기 위한 유틸리티 입니다.이 유틸리티를 통해 SQL 문장을 일일이 작성하여 데이터베이스에 데이터를 입력하는 대신, 컬럼 데이터만 일반 텍스트 파일로 만들어 한꺼번에 적재할 수 있습니다. 따라서 많은 데이터를 Tibero의 데이터베이스에 한번에 저장할 때 유용합니다.

즉, tbLoader 유틸리티를 사용하면 사용자가 데이터 파일을 쉽게 작성할 수 있고 데이터를 적재하기 위한 시간을 단축할 수 있습니다.


디렉터리 구조

Tibero가 설치되면 다음과 같은 디렉터리가 생성됩니다.

$TB_HOME
+- bin
|	|
|	+- update
|
+- client
|	|
|	+- bin
|	+- config
|	+- include
|	+- lib
|	|	|
|	|	+- jar
|	|	+- php
|	+- ssl
|	|	|
|	|	+- misc
|	+- epa
|	|
|	+- java
|	|
|	+- config
|	+- lib
|
+- config
|
+- database
|	+- $TB_SID
|	|
|	+- java
|
+- instance
|	|
|	+- $TB_SID
|	|
|	+- audit
|	+- dump
|	| |
|	| +- act
|	| +- diag
|	| +- tracedump
|	+- log
|	| +- dlog
|	|	+-	ilog
|	|	+-	lsnr
|	|	+-	slog
|	|	+-	sqltrace
|	+- path
|	
+-	lib
|	
+-	license
|	|
|	+- oss_licenses
|	
+-	nls
|	|
|	+- zoneinfo
|	
+-	scripts
	|
	+- pkg

참고

위 디렉터리 구조에서 $TB_SID라고 보이는 부분은 각각의 시스템 환경에 맞는 서버의 SID로 변경하여 읽습니다.

Tibero에서 사용하는 기본 디렉터리는 다음과 같습니다.

bin

Tibero의 실행 파일과 서버 관리를 위한 유틸리티가 위치한 디렉터리입니다.

이 디렉터리에 속한 파일 중에서 tbsvr과 tblistener는 Tibero를 구성하는 실행 파일이며, tbboot와 tbdown은 각각 Tibero를 기동 하고 종료하는 역할을 담당합니다.

client

다음은 하위 디렉터리에 대한 설명입니다.

하위 디렉터리
설명

bin

Tibero의 클라이언트 실행 파일이 있는 디렉터리

[유틸리티]

– tbSQL : 기본적인 클라이언트 프로그램으로, 사용자가 직접 SQL 질의를 하고 결과 확인 가능

– T-Up : 다른 데이터베이스에서 Tibero로의 호환성 평가와 마이그레이션을 지원

– tbExport : 논리적 백업이나 데이터베이스 간에 데이터 이동을 위해 데이터 베이스의 내용을 외부 파일로 저장

– tbImport : 외부 파일에 저장된 내용을 데이터베이스로 가져옴

– tbLoader : 대량의 데이터를 데이터베이스로 한꺼번에 읽음

– tbpc : C 언어로 작성된 프로그램 안에서 내장 SQL(Embedded SQL)을 사용하는 프로그램을 개발할 때 이를 C 프로그램으로 변환. 이렇게 변환된 프로그램을 C 컴파일러를 통해 컴파일할 수 있도록 도와주는 역할도 담당

config

Tibero의 클라이언트 프로그램을 실행하기 위한 설정 파일이 위치하는 디렉터리

include

Tibero의 클라이언트 프로그램을 작성할 때 필요한 헤더 파일이 위치하는 디렉터리

lib

Tibero의 클라이언트 프로그램을 작성할 때 필요한 라이브러리 파일이 위치 하는 디렉터리

ssl

서버 보안을 위한 인증서와 개인 키를 저장하는 디렉터리

epa

External Procedure와 관련된 설정 파일과 로그 파일이 있는 디렉터리

config

Tibero의 환경설정 파일이 위치하는 디렉터리입니다. 이 위치에 존재하는 $TB_SID.tip 파일이 Tibero의 환경설정을 결정합니다.

database

다음은 하위 디렉터리에 대한 설명입니다.

$TB_SID

Tibero의 데이터베이스 정보를 별도로 설정하지 않는 한 모든 데이터베이스 정보가 이 디렉터리와 그 하위 디렉터리에 저장됩니다. 이 디렉터리에는 데이터 자체에 대한 메타데이터(metadata)뿐만 아니라 다음과 같은 종류의 파일이 있습니다.

파일
설명

컨트롤 파일

다른 모든 파일의 위치를 담고 있는 파일

데이터 파일

실제 데이터를 저장하고 있는 파일

로그 파일

데이터 복구를 위해 데이터에 대한 모든 변경 사항을 저장하는 파일

$TB_SID/java

JAVA_CLASS_PATH가 정의되지 않은 경우 Java EPA Class File이 저장되는 디렉터리입니다.

Instance

다음은 하위 디렉터리에 대한 설명입니다.

$TB_SID/audit

데이터베이스 사용자가 시스템 특권 또는 스키마 객체 특권을 사용하는 것을 감시(AUDIT)한 내용을 기록한 파일이 저장되는 디렉터리 입니다.

$TB_SID/log

Tibero의 시스템 로그 파일(slog)과 DBMS 로그(dlog), Internal 로그(ilog), Listener 로그(lsnr), memlog 파일이 저장되는 디렉터리입니다.

파일
설명

시스템 로그 파일(slog)

디버깅을 위한 파일

서버가 하는 중요한 일이 기록되는 파일로, 서버 성능이 저하되는 원인을 찾거나 Tibero 자체의 버그를 해결하는 데 사용 가능

DBMS 로그 파일(dlog)

시스템 로그 파일에 기록되는 정보보다 더 중요도가 높은 정보가 기록되는 파일로, 서버 기동 및 종류, DDL 문장의 수행 등이 기록

Internal 로그 파일(ilog)

스레드별로 설정된 이벤트에 대한 시스템 로그가 기록되는 파일

In ternal 로그를 확인 시 tbiv 이용

Listener 로그 파일(lsnr)

Listener의 디버깅을 위한 파일

리스너에서 일어난 중요한 일이 기록되는 파일로, 리스너의 버그 해결에사용 가능

시스템 로그 파일, DBMS 로그 파일, Internal 로그 파일, Listener 로그 파일은 데이터베이스를 사용할수록 계속 누적되어 저장됩니다. 또한 전체 디렉터리의 최대 크기를 지정할 수 있으며, Tibero는 그 지정된 크기를 넘어가지 않도록 오래된 파일을 삭제합니다.

로그 파일을 설정하는 초기화 파라미터는 다음과 같습니다.

초기화 파라미터
설명

DBMS_LOG_FILE_SIZE

DBMS 로그 파일 하나의 최대 크기를 설정

DBMS_LOG_TOTAL_SIZE_LIMIT

DBMS 로그 파일이 저장된 디렉터리의 최대 크기를 설정

SLOG_FILE_SIZE

시스템 로그 파일 하나의 최대 크기를 설정

SLOG_TOTAL_SIZE_LIMIT

시스템 로그 파일이 저장된 디렉터리의 최대 크기를 설정

ILOG_FILE_SIZE

Internal 로그 파일 하나의 최대 크기를 설정

ILOG_TOTAL_SIZE_LIMIT

Internal 로그 파일이 저장된 디렉터리의 최대 크기를 설정

LSNR_LOG_FILE_SIZE

Listener 로그 파일 하나의 최대 크기를 설정

LSNR_LOG_TOTAL_SIZE_LIMIT

Listener 로그 파일이 저장된 디렉터리의 최대 크기를 설정

$TB_SID/dump

Tibero의 DDL 또는 실행 중 에러에 의해 발생하는 덤프 파일이 저장되는 디렉터리입니다.

하위 디렉터리
설명

act

스레드 액티비티 모니터에 의한 정보가 남는 디렉터리이다.

diag

TAC의 diag 기능을 사용하는 경우 로그 및 덤프가 남는 디렉터리이다.

tracedump

SQL 수행 중 에러가 발생하는 경우 디버깅을 위해 sql, psm 정보를 수집해서 남 긴다. 이외에도 DDL dump 명령을 통해 남긴 덤프가 남는 디렉터리이다.

$TB_SID/path

Tibero의 프로세스 간에 통신을 위한 소켓 파일이 있는 디렉터리입니다.

lib

Tibero 서버에서 Spatial과 관련된 함수를 사용하기 위한 라이브러리 파일이 있는 디렉터리입니다.

license

Tibero의 라이선스 파일(license.xml)이 있는 디렉터리입니다. XML 형식이므로 일반 텍스트 편집기로도 라이선스의 내용을 확인할 수 있습니다.

다음은 하위 디렉터리에 대한 설명입니다.

하위 디렉터리
설명

oss_licenses

반드시 준수해야 하는 오픈소스 라이선스의 대한 정보를 확인할 수 있는 디렉터리

nls

다음은 하위 디렉터리에 대한 설명입니다.

하위 디렉터리
설명

zoneinfo

Tibero에서 사용하는 시간대 파일이 있는 디렉터리

scripts

Tibero의 데이터베이스를 생성할 때 사용하는 각종 SQL 문장이 있는 디렉터리입니다. 또한 Tibero의 현재 상태를 보여주는 각종 뷰의 정의도 이 디렉터리에 있습니다.

다음은 하위 디렉터리에 대한 설명입니다.

하위 디렉터리
설명

pkg

Tibero에서 사용하는 패키지의 생성문이 저장되는 디렉터리


설치 환경

Tibero를 정상적으로 설치했다면 시스템에 다음과 같은 환경변수가 설정됩니다다.

환경변수
설명

$TB_HOME

Tibero가 설치된 홈 디렉터리

Tibero 서버, 클라이언트 라이브러리, 다양한 부가 기능을 수행하는 파일이 설치

$TB_SID

한 머신에서 Tibero의 인스턴스를 여러 개로 운영할 때 필요한 서비스 ID

$PATH

파일 시스템을 통해 특정 파일에 접근하기 위한 디렉터리 경로를 설정

환경변수를 제대로 설정하지 않으면 Tibero를 사용할 수 없습니다. 따라서 환경변수를 확인하는 절차가 필요합니다.

본 안내서에서는 UNIX 셸 명령어를 실행할 때 GNU Bash 문법을 따릅니다.

사용하는 셸의 종류에 따라 문법이 다를 수 있으며, 자세한 내용은 현재 사용 중인 운영체제의 안내서를 참고합니다.

UNIX 셸 프롬프트에서 환경변수를 확인하는 방법은 다음과 같습니다.

$TB_HOME

이 디렉터리 안에는 Tibero 서버, 클라이언트 라이브러리, 부가 기능을 지원하는 파일이 있습니다.

$ echo $TB_HOME 
/home/tibero/tibero7

$TB_SID

서비스 ID는 데이터베이스의 이름과 동일하게 설정할 것을 권장합니다.

$ echo $TB_SID 
Tb7

$PATH

$ echo $PATH
...:/home/tibero/tibero7/bin:/home/tibero/tibero7/client/bin:...

$PATH는 다음의 디렉터리를 포함해야 합니다.

디렉터리
설명

$TB_HOME/bin

Tibero의 실행 파일과 서버 관리를 위한 유틸리티가 위치한 디렉터리

$TB_HOME/client/bin

Tibero의 클라이언트 실행 파일이 있는 디렉터리


사용자 환경설정 파일의 적용 및 확인

Tibero가 설치된 후에 사용자의 환경설정 파일에는 다음의 내용이 추가됩니다.

환경변수
설명

TB_HOME

Tibero가 설치된 디렉터리

TB_SID

설치 과정 중에 입력한 SID가 여기에 해당

설치 과정 중에 입력하지 않았다면 기본적으로 tibero가 SID로 설정

LD_LIBRARY_PATH

Tibero를 사용할 때 필요한 공유 라이브러리가 위치한 경로

필요한 라이브러리는 모두 $TB_HOME/lib와 $TB_HOME/client/lib 안에 존재, OS별로 환경변수가 다르게 지정

– SunOS, Linux : LD_LIBRARY_PATH

– AIX : LIBPATH

PATH

Tibero를 사용하기 위한 디렉터리 경로

기본적으로 $TB_HOME/bin과 $TB_HOME/client/bin이 설정

UNIX에서는 비정상적으로 프로세스를 종료할 경우 가상 메모리 정보를 디스크로 남깁니다. (Core Dump)

이 과정에서 많은 컴퓨팅 자원을 요구하여 시스템 성능을 순간적으로 저하시키며, 이때 생성되는 Core 파일은 많은 디스크 용량을 필요로 합니다. 따라서 Tibero에서는 이 기능 사용을 권장하지 않습니다.

Core Dump 기능을 사용하지 않으려면 사용자 계정의 환경설정 파일(.profile)에 다음의 명령어를 추가합니다.

ulimit -c 0

위와 같이 사용자의 환경설정 파일이 생성되어도 실제로 적용된 것은 아닙니다. 환경설정 파일을 적용하기 위해 다음과 같은 과정을 수행합니다.

  1. 다음의 명령어를 입력하여 사용자 환경설정 파일을 적용합니다. UNIX 계열(LINUX 포함)에서만 아래 명령어를 입력합니다.

sh .profile

  1. 환경설정 파일이 제대로 적용됐는지 확인하려면 다음의 명령어를 입력합니다.

Linux 계열

echo $TB_HOME

Windows 계열

echo %TB_HOME%

Last updated