본문 바로가기

DB/Tibero

[Tibero] tbExport/tbImport

주로 Tibero to Tibero 이관 작업을 할떄 사용하며, 두 데이터베이스의 캐릭터셋이 동일해야만 한다.

tbExport/tbImport

Tibero를 설치하면 $TB_HOME/client/bin 경로에 기본적으로 포함된 유틸리티로, tbExport는 Tibero 데이터베이스 객체의 전체나 일부를 파일로 추출하며, 추출된 덤프 파일과 tbImport를 이용해서 Tibero에 데이터를 다시 생성할 수 있다

tbExport

모드

  • 전체 데이터베이스 모드
    • Tibero 데이터베이스 전체를 덤프하는 모드로 아래 파라미터 지정으로 설정할 수 있다.
    • FULL=Y
  • 사용자 모드
    • 지정된 사용자의 모든 객체를 덤프하는 모드로 아래와 같이 userlist를 지정해서 설정할 수 있다.
    • USER=TIBERO,TIBERO1,SCOTT,...
  • 테이블 모드
    • 아래 tablelist로 지정된 테이블과 연관된 인덱스 등의 객체를 덤프하는 모드이다.
    • TABLE=USER1.TAB1,USER1.TAB2,USER2.TAB3,...

실행 방법

아래와 같이 command-line 에서 옵션을 선언해줄 수도 있고,

tbexport username=tibero password=tmax sid=tibero file=tbExp.dat log=tbExp.log full=y

별도로 파라미터를 설정해둔 .cfg 파일을 이용할 수도 있다.

tbexport cfgfile=tbExp.cfg

파라미터

  • CFGFILE
    • CFG 파일 경로 (tbExp.cfg)
    • command-line 으로 파라미터를 설정하는 것이 아니라 별도로 파라미터를 기록해둔 파일을 이용해서 사용하는 경우 해당 파일의 파일명을 기입
  • COMPRESS
    • Y | N
    • 추출하는 동시에 압축을 수행하고자하는 경우 Y로 선언하며, 이 때에는 단일 스레드로만 동작
  • CONSTRAINT Export Constraint: Y/N, default: Y
    • Y | N
    • CONSTRAINT 추출 여부
  • CONSISTENT
    • Y | N
    • tbExport 수행 시점 기준 consistency 보장 여부
  • ENCRYPTION
    • ALL | DATA_ONLY | ENCRYPTED_COLUMNS_ONLY | METADATA_ONLY | NONE
    • AES-128 알고리즘으로 암호화 할 대상 지정
  • ENCRYPTION_PASSWORD
    • password
    • 암호화를 진행하는 경우 덤프 파일에 적용할 암호 설정
  • EXCLUDE
    • 스키마 및 schema.table 제외
    • EXCLUDE=schema:\"=\'TIBERO\'/table:LIKE \'T%\'\"
    • EXCLUDE=schema:\"IN\'USER1\'\"
    • 여러개 스키마 제외
    • EXCLUDE=schema:\"=\'TIBERO\'\"
    • EXCLUDE=schema:\"=\'USER1\'\"
    • 여러개 테이블 제외
    • EXCLUDE=table:\"LIKE\'E%\'\"
    • EXCLUDE=table:\"LIKE\'E%\'\"
    • 특정 사용자나 테이블을 제외하고 추출
  • FULL
    • Y | N
    • 전체 데이터베이스 모드로 추출할지 여부
  • USER
    • 데이터베이스 사용자 리스트
    • 사용자 모드로 추출하고자하는 경우, 사용자 리스트
  • TABLE
    • 테이블 리스트
    • 테이블 모드로 추출하고자하는 경우, 테이블 리스트
  • GEOM_ASBYTES Export the geometry columns as bytes, default: N
  • GRANT
    • Y | N
    • 추출 대상 데이터베이스의 권한을 그대로 추출할지 여부
  • INDEX
    • Y | N
    • INDEX 추출 여부
  • INLINE_CONSTRAINT
    • Y | N
    • INDEX 추출은 INDEX 생성 구문으로 추출하는데, CONSTRAINT를 추출할 때 INDEX 생성 구문에 INLINE으로 할 지 여부
  • FILE
    • 파일명
    • 덤프 파일명 지정
  • LOG
    • 파일명
    • 작업로그 파일명 지정
  • LOGDIR
    • 파일경로
    • 작업로그 경로 지정
  • NO_PACK_DIR
    • 파일경로
    • 데이터베이스를 추출한 뒤 단일 파일로 packing하지 않고자 하는 경우, 덤프 파일이 쌓일 경로를 지정. tbexport는 데이터베이스를 추출할 때, 객체 단위로 추출하여 단일 파일로 패킹하기 때문에 덤프파일의 두 배 가량의 여유 공간이 필요. 추출하는 서버에 여유 공간이 없는 경우 사용.
  • OVERWRITE
    • Y | N
    • 동일한 이름의 파일이 존재하는 경우 overwrite 여부
  • IP
    • IP=192.168.86.29
    • Tibero 서버 IP 주소
  • PORT
    • PORT=8629
    • Tibero 서버 Listener Port
  • SID
    • SID=TIBERO
    • Tibero 서버의 Database Name
  • USERNAME
    • USERNAME=SYS
    • tbexport 프로그램이 데이터베이스를 추출하기 위해 데이터베이스 서버에 접근할 사용자. 추출하고자 하는 객체들에 대한 충분한 권한이 필요.
  • PASSWORD
    • PASSWORD=TIBERO
    • USERNAME 사용자의 DB 접근 암호
  • SAVE_CREDENTIAL
    • 아래 활용 예에서 사용 방법 별도 설명
    • 추출을 위해 DB 서버 접근시, EXPIMP_WALLET 시스템 환경변수로 지정된 Credential 파일에 암호화하여 저장된 Username과 password 사용
  • QUERY
    • QUERY='\where rownum>10\'
    • Export될 데이터에 where 필터를 지정
  • REMAP_TABLESPACE
    • REMAP_TABLESPACE=USR1:USR3,USR2:USR4
    • 추출시 테이블스페이스 명을 변경.
  • REMAP_TABLE
    • REMAP_TABLE=T1:T3,T2:T4
    • 추출시 테이블 명을 변경
  • ROWS
    • Y | N
    • 데이터를 추출할 지 여부. N 으로 설정하는 경우 테이블 구조만 추출
  • SCRIPT
    • Y | N
    • 추출된 DDL Script를 로그에 포함시킬지 여부
  • TEMP_DIR
    • 파일경로
    • raw 덤프 파일들이 임시로 사용될 경로 지정
  • THREAD_CNT
    • Number (default: 4)
    • 테이블을 추출할 때 사용되는 Thread 개수 지정

활용 예

EXPIMP_WALLET 을 이용하여 암호화된 접속 정보를 이용하여 서버에 접근하며, 전체 데이터베이스를 추출하는 경우

먼저 EXPIMP_WALLET 파일을 준비돼있어야 한다.


 
export EXPIMP_WALLET=~/exp/.expimp_wallet
tbexport save_credential=$EXPIMP_WALLET username=tibero password=tmax
ls $EXPIMP_WALLET

아래와 같이 Credential 이 정상적으로 저장되었다고 출력되면 이후 tbexport 유틸을 실행할 때부터는 username과 password를 지정하지 않더라도 DB 서버에 접근할 수 있다. tbExport를 이용한 백업 스크립트에 DB 접속 정보가 표기되지 않으므로 잘 활용하면 패스워드 노출을 막을 수 있다.

Credential saved: ~/exp/.expimp_wallet

TIBERO1 스키마를 제외한 모든 데이터베이스 객체를 추출하는 CFGFILE을 작성한다.

vi tbExp.cfg

FULL=Y
SCRIPT=Y
CONSISTENT=Y
OVERWRITE=Y
EXCLUDE=schema:\"='\TIBERO1\'"
FILE=tbExp.dat
LOG=tbExp.log
IP=127.0.0.1
PORT=8629
SID=tibero

다음 명령을 수행하면 username과 password 없이 추출이 수행되는 것을 확인할 수 있다.

tbexport CFGFILE=tbExp.cfg


tbImport

실행 방법

tbimport username=tibero password=tmax sid=tibero file=tbExp.dat log=tbImp.log full=y

또는

tbimport cfgfile=import.cfg

파라미터

일반적으로 tbexport에서 추출한 파일을 그대로 사용하는 경우가 많으므로, 위 실행 방법에 나온 구문으로 수행하면 된다.

세부적인 옵션은 tbimport 명령을 수행하면 다음과 같이 사용법 및 파라미터 설명을 확인할 수 있다.

tbimport 6.0  xxxxxx Copyright 2015 TmaxData Co., Ltd. All Rights Reserved.
Patch files (none)

Usage:  tbimport [PARAMETER1=VALUE] [PARAMETER2=VALUE] ...
Parameters:
    BIND_BUF_SIZE     Specify the buffer size of DPL stream, default: 1M(1048576)
    CFGFILE           Config file name
    COMMIT            Commit after the insertion, default: N
    CONSTRAINT        Import Constraint: Y/N, default: Y
    DBLINK            Import DB Link: Y/N, default: Y
    DPL               Use Direct Path Load: Y/N, default: N
    ENCRYPTION_PASSWORD    encryption password to decrypt dump file
    EXP_SERVER_VER    Specify the exported server version, default: 8
    FILE              Import dump file name, default: default.dat
    FROMUSER          FromUser toUser Mode: user name list(must be used with TOUSER parameter) 
    FULL              Full Mode: Y/N, default: N
    GRANT             Import Grant: Y/N, default: Y
    GEOM_ASBYTES      Import the data to the geometry columns as bytes, default: N
    IGNORE            Ignore create error due to object existence: Y/N, default: N
    INDEX             Import Index: Y/N, default: Y
    IO_BUF_SIZE       Specify the buffer size of file I/O, default: 16M(16777216)
    IP                IP address, default: localhost
    LOG               Import script log file name
    LOGDIR            Import log directory
    NATIONAL_CHARSET  Specify the exported national character set, default is the exported character set 
    NO_PACK_DIR       Import unpacked dump files from specified directory. If this option is specified, FILE parameter will be ignored.
    PASSWORD          User password
    ROLE              Import Role: Y/N, default: Y
    PORT              PORT number, default: 8629
    PSM               Import PSM: Y/N, default: Y
    P_DPL             Use Parallel DPL: Y/N, default: N
    ROWS              Import 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
    SEQUENCE          Import Sequence: Y/N, default: Y
    SID               Database name
    STATISTICS       Import Statistics: Y/N, default: N
    SYNONYM           Import Synonym: Y/N, default: Y
    TABLE             Table Mode: table name list
    TEMP_DIR          Directory for the temporary raw dump files.
    THREAD_CNT        Thread Count, default: 4
    TOUSER            FromUser toUser Mode: user name list(must be used with FROMUSER parameter) 
    TRIGGER           Import Trigger: Y/N, default: Y
    USER              User Mode: user name list 
    USERNAME          Database user name