DBMS 1

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

tbImport

DBMS 1
Tibero 가이드
Tibero 유틸리티 Guide
tbImport
작성자
dataonair
작성일
2021-02-18 10:47
조회
4150



제4장tbImport

내용 목차






4.1. 개요

4.2. 빠른 시작


4.2.1. 실행 전 준비사항

4.2.2. Import 모드

4.2.3. 실행


4.3. 수행 방법


4.3.1. 제약조건이 있는 테이블 Import

4.3.2. 호환이 가능한 테이블 Import

4.3.3. 이미 존재하는 테이블에 데이터 Import


4.4. 명령 프롬프트에서의 파라미터 지정


4.4.1. 파라미터 목록


4.5. 수행 예제



본 장에서는tbImport유틸리티를 소개하고 사용 방법을 설명한다.




4.1. 개요




tbImport는Tibero에서 제공하는 Import 유틸리티이다. 이 유틸리티를 통해 외부 파일에 저장된 스키마 객체를Tibero데이터베이스에 다시 저장하므로,tbExport유틸리티와 함께 데이터베이스의 백업과 다른 머신 간의 데이터베이스 전송 등을 할 때 유용하다.tbImport유틸리티는 기능에서tbExport유틸리티와 대칭적이거나 유사한 것이 많다.하나의 스키마 객체를 저장하면 그와 연관된 스키마 객체가 자동으로 함께 저장된다. 필요에 따라서 연관된 일부 스키마 객체가 저장되지 않도록 지정할 수 있다.Import 모드에는tbExport에서와 같이 전체 데이터베이스 모드, 사용자 모드, 테이블 모드가 있다. 이 중 전체 데이터베이스 모드는 DBA만 사용할 수 있다.

Import가 실행되는 과정에서 발생하는 로그는 LOG 파라미터를 사용하여 지정한다.다음은tbImport유틸리티를 실행한 결과로 생성되는 완료, 경고 및 에러 메시지에 대한 설명이다.

항목 설명
완료 메시지 Import가 성공적으로 완료된 후에 출력된다.
경고 메시지 Import가 완료되었으나 경고가 발생한 경우에 출력된다.
에러 메시지 Import 과정에서 에러가 발생하여 Import를 계속할 수 없는 경우에 출력된다.





4.2. 빠른 시작

tbImport유틸리티는Tibero를 설치하는 과정에서 함께 설치되며,Tibero를 제거하면 함께 제거된다. 또한 Java 언어로 구현되어 있으며, JVM(Java Virtual Machine)이 설치되어 있는 어떤 플랫폼에서도 바로 운영할 수 있다.



4.2.1. 실행 전 준비사항

tbImport유틸리티를 실행하기 전에 다음과 같은 사항을 준비해야 한다.

  • JRE 1.4.2 이상 설치
  • Tibero데이터베이스 서버와 같은 플랫폼에 설치되어 있거나 네트워크로 연결된다.
  • 실행에 필요한 클래스 라이브러리(디폴트 위치 : $TB_HOME/lib/jar 디렉터리)

    • tbImport클래스:tbexpimp5.jar
    • Tibero유틸리티 공통 라이브러리:tbtoolcom.jar
    • TiberoJDBC 드라이버:tibero5-jdbc.jar

실행에 필요한 클래스 라이브러리는Tibero를 설치하는 과정에 함께 설치되므로 추가적인 작업을 할 필요는 없다.




4.2.2. Import 모드




Import 모드는 Export 모드와 동일하게 전체 데이터베이스 모드, 사용자 모드, 테이블 모드가 있다. Export를 한 파일을 소스로 하여 각 모드의 특성에 맞게 데이터를 Import한다. 각 모드는 파라미터를 사용하여 지정할 수 있다.다음은 모드별로 Import하는 스키마 객체의 포함 관계를 나타내는 그림이다.


[그림 4.1]Import 모드


Import 모드






전체 데이터베이스 모드

전체 데이터베이스 모드는 Export한 파일로부터Tibero데이터베이스 전체를 Import하기 위한 모드로 DBA 만 사용할 수 있는 모드이다. SYS 사용자를 제외한 모든 사용자의 객체를 Import하기 위해 사용한다.전체 데이터베이스 모드를 사용하기 위해서는 FULL 파라미터를 Y로 설정한다.
FULL=Y

사용자 모드

사용자 모드는 Export한 파일로부터 지정한 사용자에 대해 그 사용자가 소유하고 있는 모든 스키마 객체를 Import하는 모드이다. DBA는 하나 이상의 사용자에게 이 모드를 사용할 수 있다.사용자 모드를 사용하기 위해서는 USER 파라미터를 USER=userlist 형태로 설정한다.
USER=SCOTT, USER1, …

테이블 모드

테이블 모드는 Export한 파일로부터 하나 이상의 테이블을 지정하여 그 테이블과 연관된 인덱스 등의 스키마 객체를 함께 Import하는 모드이다.테이블 모드를 사용하기 위해서는 TABLE 파라미터를 TABLE=tablelist 형태로 설정한다. 주의할 점은 SCOTT.EMP와 같이 테이블을 소유한 사용자를 반드시 명시해야 한다는 것이다.
TABLE=SCOTT.EMP, USER1.TABLE1, …

From User To User 모드

From User To User 모드는 Export한 파일로부터 FROMUSER 파라미터에 지정한 사용자에 대해서 TOUSER 파라미터에 지정한 사용자로 해당 스키마 객체의 소유자를 변경하여 Import하는 모드이다. DBA는 하나 이상의 사용자에게 이 모드를 사용할 수 있다.From User To User 모드를 사용하기 위해서는 다음과 같은 형식으로 파라미터를 설정한다.
FROMUSER=SCOTT,USER1 TOUSER=USER2,USER3…




4.2.3. 실행

tbImport유틸리티를 실행하려면$TB_HOME/client/bin디렉터리에서tbimport명령어를 입력한다.다음은 전체 데이터베이스모드로 실행하는 예이다.


[예 4.1]tbImport유틸리티의 실행

$ tbimport username=tibero password=tmax file=export.dat full=y
$ tbimport cfgfile=import.cfg







4.3. 수행 방법

다음은 각 경웁려 테이블 데이터를 Import하는 방법에 대한 설명이다.



4.3.1. 제약조건이 있는 테이블 Import




tbImport유틸리티를 실행하는 중에 테이블에 제약조건이 설정되어 있는 경우 이 제약조건을 위반tbImport 유틸리티의 실행 순서로 테이블 데이터보다 테이블 제약조건을 먼저 저장한다면, 제약조건을 위반하여 저장되지 않는 로우가 생길 것이다. 예를 들어, 참조 무결성 제약조건이 설정되어 있는 두 테이블에서 자식 테이블의 데이터를 부모 테이블보다 먼저 저장한다면, 자식 테이블에는 한 개의 로우도 저장되지 않을 것이다.따라서 제약조건이 있는 테이블을 Import할 때에는 모든 테이블 데이터를 입력하고 나중에 테이블 제약조건을 설정한다.




4.3.2. 호환이 가능한 테이블 Import

tbImport유틸리티를 실행하기 전에 데이터베이스에 사용자가 직접 같은 이름의 테이블을 정의할 수 있다. 이때 새로 정의하는 테이블은tbImport유틸리티를 실행할 테이블과 호환성을 유지하는 한도에서 다르게 정의할 수 있다.테이블 간의 호환성을 유지하려면 다음의 사항에 주의한다.

  • tbImport유틸리티를 실행할 테이블해당 테이블이 포함하는 컬럼을 모두 포함해야 한다.
  • 데이터 타입상호 호환성이 있어야 하며 기본값 등을 변경하면 안 된다.
  • 새로운 컬럼을 추가하는 경우NOT NULL 또는 기본 키 제약조건 등을 설정하지 않아야 한다.





4.3.3. 이미 존재하는 테이블에 데이터 Import




데이터베이스 내에 이미 존재하는 같은 이름의 테이블에tbImport유틸리티를 실행할 수도 있다. 이 때에도 앞에서 설명한 바와 같이 두 테이블 간에 호환성을 유지해야 한다.tbImport유틸리티를 실행하기 전에 사용자가 같은 이름의 테이블을 정의하거나 데이터베이스 내에 같은 이름의 테이블이 이미 존재하는 경우, 테이블에 미리 설정되어 있는 제약조건에 의해tbImport유틸리티에 저장되지 않는 로우가 생길 수 있다.이미 존재하는 테이블에 데이터를 Import할 때에는 다음의 두 가지 방법을 사용할 수 있다.

  • 제약조건의 정지tbImport유틸리티를 실행하는 동안에 제약조건을 잠시 정지시킨다.
  • 실행 순서 조절tbImport유틸리티를 실행하는 동안에 실행 순서를 조절한다.예를 들어, 참조 무결성 제약조건이 설정되어 있는 두 테이블에 대해 부모 테이블을 먼저 저장하고 나중에 자식 테이블을 저장한다.

테이블의 크기가 매우 큰 경우에는 순서 조절을 이용하는 후자의 해결 방법이 성능 면에서 유리하다. 제약조건을 잠시 정지시키는 방법의 경우, 제약조건을 다시 허용하면 테이블 내의 모든 로우에 대해 제약조건의 성립 여부를 검사하기 때문에 성능 면에서 좋지 않은 영향을 줄 수 있다.





4.4. 명령 프롬프트에서의 파라미터 지정

사용자가 파라미터 값을 지정하지 않고tbImport유틸리티를 실행하면, 다음과 같이 명령 프롬프트에서 지정할 수 있는 파라미터의 목록과 사용법이 나타난다.
tbImport 5.0 - Copyright (c) 2001-2011 Tibero Corporation. All rights reserved.
Usage: tbimport [PARAMETER1=VALUE] [PARAMETER2=VALUE] ...
Parameters:
CFGFILE Config file name
USERNAME Database user name
PASSWORD User password
IP IP address, default: localhost
PORT PORT number, default: 8629
SID Database name
FILE Import dump file name, default: default.dat
NO_PACK_DIR Export unpacked dump files to specified directory.
If this option is specified, FILE parameter will be ignored.
LOG Import log file name
FULL Full Mode: Y/N, default: N
USER User Mode: user name list
FROMUSER FromUser toUser Mode: user name list
TOUSER FromUser toUser Mode: user name list
TABLE Table Mode: table name list
INDEX Import Index: Y/N, default: Y
GRANT Import Grant: Y/N, default: Y
CONSTRAINT Import Constraint: Y/N, default: Y
ROWS Import Table Rows: Y/N, default: Y
DPL Use Direct Path Load: Y/N, default: N
PIPELINING Use pipelined import
(must be used with DPL parameter): Y/N, default: N
SCRIPT LOG THE DDL SCRIPT: Y/N, default: N
THREAD_CNT Thread Count, default: 4
SERVER_VER Tibero Server Version, default: 5
IGNORE Ignore create error due to object existance: Y/N, default: N
IO_BUF_SIZE Specify the buffer of file I/O, default: 16M(16777216)
BIND_BUF_SIZE Specify the buffer size of DPL stream, default: 1M(1048576)
EXP_SERVER_VER Specify the exported server version, default: 4
NATIONAL_CHARSET Specify the exported national character set,
default is the exported character set

파라미터 값은 순서를 지정해서 입력하지 않아도 된다. 파라미터 값 중에 CFGFILE 값은 명령 프롬프트에서만 지정할 수 있지만, 나머지 파라미터 값은 환경설정 파일에서도 지정할 수 있다.명령 프롬프트에 사용되는 파라미터를 환경설정 파일에 저장하여 관리하는 방법에는 다음과 같은 두 가지 형식이 있다. 두 번째 형식은 하나 이상의 파라미터 값을 지정하는 경우이다.
PARAMETER=value
PARAMETER=value1, ...

다음은 파라미터를 지정하는 예이다.
FULL=Y
FILE=TBEXPORT.DAT
GRANT=Y
INDEX=Y
CONSTRAINT=Y



4.4.1. 파라미터 목록




다음은 명령 프롬프트에서 지정할 수 있는tbImport유틸리티의 파라미터이다.

항목 기본값 설명
CFGFILE 환경설정 파일의 이름이다.
USERNAME Import를 수행하는 사용자의 계정을 입력한다.
PASSWORD Import를 수행하는 사용자의 패스워드를 입력한다.
IP localhost Import 대상Tibero서버의 IP를 입력한다.
PORT 8629 Import 대상Tibero서버의 포트를 입력한다.
SID Import 대상Tibero서버의 SID를 입력한다.
FILE default.dat Import를 수행할 덤프 파일의 이름을 입력한다.바이너리 파일의 형태로 운영체제에서 생성되며, 이름을 지정하지 않으면 기본값에서 Import한다.
NO_PACK_DIR Import를 수행할 압축을 해제한 덤프 파일이 저장되는 디렉터리이다. 이 옵션이 지정되면, FILE 파라미터에 설정된 값은 무시된다.
LOG Import의 로그가 기록될 파일의 이름을 입력한다.
FULL N 전체 데이터베이스 모드로 Import를 수행할지 지정한다.

  • Y: 전체 데이터베이스 모드로 Import를 수행한다.
  • N: 사용자 또는 테이블 모드로 Import를 수행한다. (둘 중 하나의 모드는 있어야 함)
USER 사용자 모드로 Import를 수행할 때 Import될 객체의 소유자를 지정한다.USER=userlist의 형태로 사용한다.
FROMUSER From to User 모드에서 사용하며 Export할 때 사용된 객체의 원래 소유자를 지정한다.FROMUSER=userlist의 형태로 사용한다.
TOUSER From to User 모드에서 사용하며 Import를 수행할 때 Import할 소유자를 지정한다.TOUSER=userlist의 형태로 사용한다.
TABLE 테이블 모드로 Import를 수행할 때 Import할 대상 테이블의 이름을 지정한다.TABLE=tablelist의 형태로 사용한다.
INDEX Y Import를 수행할 때 인덱스 정보의 Import 여부를 지정한다.

  • Y: 인덱스를 Import한다.
  • N: 인덱스를 Import하지 않는다.
GRANT Y Import를 수행할 때 권한의 Import 여부를 지정한다.

  • Y: 권한을 Import한다.
  • N: 권한을 Import하지 않는다.
CONSTRAINT Y Import를 수행할 때 제약조건의 Import 여부를 지정한다.

  • Y: 제약조건을 Import한다.
  • N: 제약조건을 Import하지 않는다.
ROWS Y Import를 수행할 때 테이블의 데이터를 Import할지 여부를 지정한다.

  • Y: 테이블의 데이터를 Import한다.
  • N: 테이블의 데이터를 Import하지 않는다.
DPL N DPL 방법으로 Import할지 여부를 지정한다.

  • Y: DPL 방법을 사용한다.
  • N: DPL 방법을 사용하지 않는다.
PIPELINING N PIPELINING(with DPL) 기능을 사용하여 Import할지 여부를 지정한다.

  • Y: PIPELINING(with DPL) 기능을 사용한다.
  • N: PIPELINING(with DPL) 기능을 사용하지 않는다.
SCRIPT N Import를 수행할 때 스키마 객체를 생성하는 DDL 스크립트를 표시할지 여부를 지정한다.

  • Y: 스키마 객체를 생성하는 DDL 스크립트를 표시한다.
  • N: 스키마 객체를 생성하는 DDL 스크립트를 표시하지 않는다.
THREAD_CNT 4 테이블 데이터를 Import하기 위해 사용하는 스레드의 개수를 입력한다.
SERVER_VER 5 Import의 대상이 되는Tibero의 버전을 지정한다.
IGNORE N Import를 수행할 때 이미 존재하는 스키마 객체로 인한 생성 에러를 무시한다.

  • Y: 이미 존재하는 스키마 객체로 인한 생성 에러를 무시한다.
  • N: 이미 존재하는 스키마 객체로 인한 생성 에러를 무시하지 않는다.
IO_BUF_SIZE 16M(16777216) Import를 실행할 때 파일의 입/출력에 사용되는 버퍼의 크기를 조절한다.
BIND_BUF_SIZE 1M(1048576) Import를 DPL 모드로 실행할 때 stream에서 사용하는 bind buffer의 크기를 조절한다.
EXP_SERVER_VER 4 Export 한 서버의 버전을 설정한다.
NATIONAL_CHARSET Export 한 문자셋 Export한 언어셋을 설정한다.






4.5. 수행 예제

tbImport유틸리티로 Import를 수행하는 순서는 다음과 같다.

  1. 테이블 정의
  2. 테이블 데이터
  3. 테이블 인덱스
  4. 테이블 제약조건, 뷰, 프로시저 등


다음은tbImport유틸리티를 이용하여 Import를 수행하는 예이다.


[예 4.2]tbImport유틸리티를 이용한 Import의 수행

tbImport 5.0 - Copyright (c) 2001-2011 Tibero Corporation. All rights reserved.
Unpacking the file...
the entire database: Wed May 04 16:19:44 KST 2011
Import character set: MS949
The version of this tbExport dump file is 5.0.
importing schema: "TIBERO"
importing tables
[M] importing table BONUS no rows imported.
[0] importing table DEPT 4 rows imported.
[0] importing table SALGRADE 5 rows imported.
[1] importing table EMP 10 rows imported.
importing index
importing sequences
importing views
importing synonyms
Import completed successfully: Wed May 04 16:19:44 KST 2011