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: YY
|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: NGRANT
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