내용 목차
본 장에서는 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)를 제거한다.
tbExport 유틸리티는 Tibero를 설치하는 과정에서 함께 설치되며, Tibero를 제거하면 함께 제거된다. 또한 Java 언어로 구현되어 있으며, JVM(Java Virtual Machine)이 설치되어 있는 어떤 플랫폼에서도 바로 운영할 수 있다.
tbExport 유틸리티를 실행하기 전에 다음과 같은 사항을 준비해야 한다.
JRE 1.4.2 이상 설치
Tibero 데이터베이스 서버와 같은 플랫폼에 설치되어 있거나 네트워크로 연결된다.
실행에 필요한 클래스 라이브러리(기본 위치: $TB_HOME/client/lib/jar 디렉터리)
tbExport 클래스: expimp.jar
유틸리티 공통 라이브러리: toolcom.jar
유틸리티 공통 Logger 라이브러리: msllogger-14.jar
JDBC 드라이버: internal-jdbc-14.jar
실행에 필요한 클래스 라이브러리는 Tibero를 설치하는 과정에 함께 설치되므로 추가적인 작업을 할 필요는 없다.
Export 모드에는 전체 데이터베이스 모드, 사용자 모드, 테이블 모드가 있다. 각 모드는 파라미터를 사용하여 지정할 수 있다.
다음은 모드별로 Export하는 스키마 객체의 포함 관계를 나타내는 그림이다.
전체 데이터베이스 모드는 Tibero 데이터베이스 전체를 Export하기 위한 모드이다. SYS 사용자를 제외한 모든 사용자의 객체를 Export하기 위해 사용한다.
전체 데이터베이스 모드를 사용하려면 다음과 같이 FULL 파라미터를 Y로 설정한다.
FULL=Y
사용자 모드는 SYS 사용자를 제외한 지정된 사용자가 소유한 모든 스키마 객체를 Export하는 모드이다. 지정한 사용자가 소유한 객체를 Export하기 위해 사용하며 DBA는 하나 이상의 사용자에게 이 모드를 사용할 수 있다.
사용자 모드를 사용하려면 다음과 같이 USER 파라미터를 USER=userlist 형태로 설정한다.
USER=SCOTT, USER1, …
테이블 모드는 하나 이상의 테이블을 지정하여 그 테이블과 연관된 인덱스 등의 스키마 객체를 함께 Export하는 모드이다.
테이블 모드를 사용하려면 다음과 같이 TABLE 파라미터를 TABLE=tablelist 형태로 설정한다. 주의할 점은 SCOTT.EMP와 같이 테이블을 소유한 사용자를 반드시 명시해야 한다는 것이다.
TABLE=SCOTT.EMP, USER1.TABLE1, …
사용자가 파라미터 값을 지정하지 않고 tbExport를 실행하면, 다음과 같이 명령 프롬프트에서 지정할 수 있는 파라미터의 목록과 사용법이 나타난다.
tbExport 6.0 102665 TmaxData Corporation Copyright (c) 2008-. All rights reserved. Usage: tbexport [PARAMETER1=VALUE] [PARAMETER2=VALUE] ... Parameters: CFGFILE Config file name CONSTRAINT Export Constraint: Y/N, default: Y CONSISTENT Consistent Mode: Y/N, default: N EXCLUDE Limit the export to specific objects FILE Export dump file name, default: default.dat FULL Full Mode: Y/N, default: N GEOM_ASBYTES Export the geometry columns as bytes, default: N GRANT Export Grant: Y/N, default: Y INDEX Export Index: Y/N, default: Y INLINE_CONSTRAINT Use the Inline Constraint: Y/N, default: N (this option is only supported for the not null) IP IP address, default: localhost LOG Export script log file name LOGDIR Export log directory NO_PACK_DIR Export unpacked dump files to specified directory. If this option is specified, FILE parameter will be ignored. OVERWRITE Overwrite datafile if same file name exists: Y/N, default: N PASSWORD User password PORT PORT number, default: 8629 QUERY Where predicate: (Optional) to filter data to be exported (must be used with TABLE parameter.) REMAP_TABLESPACE Remaps the objects from the source tablespace to the target tablespace. ROWS Export Table Rows: Y/N, default: Y SAVE_CREDENTIAL Save your username and password to specified file SCRIPT LOG THE DDL SCRIPT: Y/N, default: N SID Database name TABLE Table Mode: table name list Append :<Partition Name> to select a single partition (Optional) TARGETDB Target Server, default: TIBERO TEMP_DIR Directory for the temporary raw dump files. THREAD_CNT Thread Count, default: 4 USER User Mode: user name list USERNAME Database user name
파라미터 값은 순서를 지정해서 입력하지 않아도 된다. 파라미터 값 중에 CFGFILE은 명령 프롬프트에서만 지정할 수 있지만, 나머지 파라미터 값은 환경설정 파일에서도 지정할 수 있다.
명령 프롬프트에 사용되는 파라미터를 환경설정 파일에 저장하여 관리하는 방법에는 다음과 같은 두 가지 형식이 있다. 두 번째 형식은 하나 이상의 파라미터 값을 지정하는 경우이다.
PARAMETER=value PARAMETER=value1, ...
다음은 파라미터를 지정하는 예이다.
FULL=Y FILE=EXPORT.DAT GRANT=Y INDEX=Y CONSTRAINT=Y
다음은 명령 프롬프트에서 지정할 수 있는 tbExport 유틸리티의 파라미터이다.
항목 | 설명 |
---|---|
CFGFILE | 환경설정 파일의 이름이다. |
CONSISTENT | Export를 수행하는 시점을 기준으로 데이터를 Export하는 기능이다.
flashback query에서 지원하지 않는 대상에 대해서 지원하지 않는다. |
CONSTRAINT | Export를 수행할 때 제약조건의 Export 여부를 지정한다.
|
EXCLUDE | Export할 때 제외할 특정 user, table을 설정할 수 있다. 제외하기 위해서 아래와 같은 방법으로 설정할 수 있다.
|
FILE | Export를 수행할 때 생성되는 파일의 이름이다. (기본값: default.dat) 바이너리 파일의 형태로 운영체제에서 생성되며, 이름을 지정하지 않으면 기본값으로 생성된다. |
FULL | 전체 데이터베이스 모드로 Export를 수행할지 지정한다.
|
GEOM_ASBYTES | geometry 컬럼에 대해 WKB 또는 bytes로 얻어올지 여부를 결정한다. (기본값: N)
|
GRANT | Export를 수행할 때 권한의 Export 여부를 지정한다.
|
INDEX | Export를 수행할 때 인덱스 정보의 Export 여부를 지정한다.
|
INLINE_CONSTRAINT | Export를 수행할 때 스크립트를 Inline Constraint로 출력할지 여부를 설정한다.
|
IP | Export 대상 Tibero 서버의 IP 주소를 입력한다. (기본값: localhost) |
LOG | Export된 오브젝트들의 스크립트가 기록될 로그 파일의 이름을 입력한다. |
LOGDIR | Export의 수행 로그가 기록될 파일을 저장할 디렉터리 이름을 입력한다. |
NO_PACK_DIR | 압축을 해제한 덤프 파일이 저장되는 디렉터리이다. 이 옵션이 지정되면, FILE 파라미터에 설정된 값은 무시된다. |
OVERWRITE | Export를 수행할 때 생성되는 파일의 이름과 동일한 이름의 파일이 이미 존재하는 경우 파일을 덮어쓸지 지정한다.
|
PASSWORD | Export를 수행하는 사용자의 패스워드를 입력한다. |
PACK_TYPE (hidden) | 패키징에 사용할 알고리즘을 지정한다.
|
PARALLEL_DEGREE (hidden) | 테이블의 데이터를 Export하기 위해 수행하는 질의의 parallel hint를 입력한다. (기본값: 0 (NOT PARALLEL)) |
PORT | Export 대상 Tibero 서버의 포트 번호를 입력한다. (기본값: 8629) |
QUERY | Export될 데이터에 필터 조건을 지정한다.
|
REMAP_TABLESPACE | Tablespace 이름을 변경할 수 있는 기능을 제공한다. 아래와 같은 방법으로 설정할 수 있다.
|
ROWS | Export를 수행할 때 테이블의 데이터를 Export할지 여부를 지정한다.
|
SAVE_CREDENTIAL | 암호화한 USERNAME과 PASSWORD를 사용할 때 설정한다.
|
SCRIPT | Export를 수행할 때 스키마 객체를 생성하는 DDL 스크립트의 표시 여부를 지정한다.
|
SERVER_VER (hidden) | Export의 대상이 되는 Tibero의 버전을 지정하여, 버전에 맞는 스크립트를
생성하도록 한다. Export 버전 상수이다.
|
SID | Export 대상 Tibero 서버의 SID를 입력한다. |
TABLE | 테이블 모드로 Export를 수행할 때 Export할 대상 테이블의 이름을 지정한다. TABLE=tablelist의 형태로 사용한다. 자세한 내용은 "테이블 모드"를 참고한다. |
TEMP_DIR | Export를 수행할 때 사용되는 임시 dump file들이 생성될 디렉터리를 지정한다. |
THREAD_CNT | 테이블의 데이터를 Export하기 위해 사용하는 스레드의 개수를 입력한다. (기본값: 4) |
USER | 사용자 모드로 Export를 수행할 때 Export될 객체의 소유자를 지정한다. USER=userlist의 형태로 사용한다. 자세한 내용은 "사용자 모드"를 참고한다. |
USERNAME | Export를 수행하는 사용자의 계정을 입력한다. |
다음은 tbExport 유틸리티를 이용하여 Export를 수행하는 예이다.
[예 3.2] tbExport 유틸리티를 이용한 Export의 실행
tbExport 6.0 97668 TmaxData Corporation Copyright (c) 2008-. All rights reserved. the entire database: Fri Feb 06 10:45:16 KST 2015 Export character set: MS949 exporting tablespaces exporting roles exporting schema: "TIBERO" exporting tables [0] exporting table BONUS no rows exported. [1] exporting table DEPT 4 rows exported. [2] exporting table EMP 10 rows exported. [3] exporting table SALGRADE 5 rows exported. exporting object privileges exporting indexes exporting sequences exporting views exporting synonyms Packing the file... Export completed successfully: Fri Feb 06 10:46:17 KST 2015