ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 티베로 DB 백업 및 복원
    개발 2015. 4. 21. 13:20

    제3장 tbExport

    내용 목차

    3.1. 개요
    3.2. 특징
    3.3. 빠른 시작
    3.3.1. 실행 전 준비사항
    3.3.2. Export 모드
    3.3.3. 실행
    3.4. 명령 프롬프트에서의 파라미터 지정
    3.4.1. 파라미터 목록
    3.5. 수행 예제

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

    3.1. 개요

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

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

    Export 모드에는 전체 데이터베이스 모드, 사용자 모드, 테이블 모드가 있다. 이 중 전체 데이터베이스 모드는 DBA만이 사용할 수 있다.

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

     

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

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

    항목 설명
    완료 메시지 Export가 성공적으로 완료된 후에 출력된다.
    경고 메시지 Export가 완료되었으나 경고가 발생한 경우에 출력된다.
    존재하지 않는 테이블에 대해 Export를 시도할 때와 같은 경우에 발생하며 이런 경우 tbExport 유틸리티는 경고 메시지를 출력한 후 해당 테이블을 건너뛰고 다음 객체에 대해 Export를 계속한다.
    에러 메시지 Export가 실행되는 과정에서 에러가 발생하여 Export를 계속할 수 없는 경우에 출력된다.
    시스템 메모리가 부족한 상황이나 Export에 필요한 뷰가 생성되지 않는 경우처럼 Export를 계속 실행할 수 없는 상황에 출력되며, 에러 메시지를 출력한 후 Export 세션을 종료한다.
     

    3.2. 특징

    tbExport 유틸리티의 특징은 다음과 같다.

    • 논리적인 백업
    • Tibero의 내부 스키마 및 데이터를 SQL 문장으로 추출한다.
    • 서로 다른 시점의 데이터
    • 여러 개의 테이블을 Export할 때 추출한 각 테이블의 데이터는 동일 시점의 데이터가 아니라 Export 작업이 실행되는 시점의 순차적인 데이터이다.
    • 테이블 정의를 저장
    • 데이터의 존재 여부에 상관 없이 테이블 정의(테이블의 DDL 스크립트)를 저장한다.
    • 테이블의 재구성
    • 테이블 생성 후 수많은 DML 작업으로 인해 발생한 마이그레이션이 된 로우(migrated row)나 단편화(fragmentation)를 제거한다.
     

    3.3. 빠른 시작

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

    3.3.1. 실행 전 준비사항

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

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

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

    3.3.2. Export 모드

    Export 모드에는 전체 데이터베이스 모드, 사용자 모드, 테이블 모드가 있다. 각 모드는 파라미터를 사용하여 지정할 수 있다.

    다음은 모드별로 Export하는 스키마 객체의 포함 관계를 나타내는 그림이다.

    [그림 3.1] Export 모드

    Export 모드

     

    전체 데이터베이스 모드

    전체 데이터베이스 모드는 Tibero데이터베이스 전체를 Export하기 위한 모드로 DBA 만 사용할 수 있는 모드이다. SYS 사용자를 제외한 모든 사용자의 객체를 Export하기 위해 사용한다.

    전체 데이터베이스 모드를 사용하려면 다음과 같이 FULL 파라미터를 Y로 설정한다.

    FULL=Y 
     

    사용자 모드

    사용자 모드는 대상 사용자를 지정하고 지정한 사용자가 소유한 모든 스키마 객체를 Export하는 모드이다. 지정한 사용자가 소유한 객체를 Export하기 위해 사용하며 DBA는 하나 이상의 사용자에게 이 모드를 사용할 수 있다.

    사용자 모드를 사용하려면 다음과 같이 USER 파라미터를 USER=userlist 형태로 설정한다.

    USER=SCOTT, USER1, … 
     

    테이블 모드

    테이블 모드는 하나 이상의 테이블을 지정하여 그 테이블과 연관된 인덱스 등의 스키마 객체를 함께 Export하는 모드이다.

    테이블 모드를 사용하려면 다음과 같이 TABLE 파라미터를 TABLE=tablelist 형태로 설정한다. 주의할 점은 SCOTT.EMP와 같이 테이블을 소유한 사용자를 반드시 명시해야 한다는 것이다.

    TABLE=SCOTT.EMP, USER1.TABLE1, … 

    3.3.3. 실행

    tbExport 유틸리티를 실행하려면 $TB_HOME/client/bin 디렉터리에서 tbexport 명령어를 입력한다.

    다음은 전체 데이터베이스모드로 실행하는 예이다.

    [예 3.1] tbExport 유틸리티의 실행

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

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

    사용자가 파라미터 값을 지정하지 않고 tbExport를 실행하면, 다음과 같이 명령 프롬프트에서 지정할 수 있는 파라미터의 목록과 사용법이 나타난다.

    tbExport 5.0 - Copyright (c) 2001-2011 Tibero Corporation. All rights reserved. Usage: tbexport [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         Export 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.   OVERWRITE    Overwrite datafile if same file name exists   LOG          Export log file name   FULL         Full Mode: Y/N, default: N   USER         User Mode: user name list   TABLE        Table Mode: table name list   QUERY        Where predicate: (Optional)                to filter data to be exported                (must be used with TABLE parameter.)   INDEX        Export Index: Y/N, default: Y   GRANT        Export Grant: Y/N, default: Y   CONSTRAINT   Export Constraint: Y/N, default: Y   ROWS         Export Table Rows: Y/N, default: Y   SCRIPT       LOG THE DDL SCRIPT: Y/N, default: N   THREAD_CNT   Thread Count, default: 4   SERVER_VER   Tibero Server Version, default: 5 
     

    파라미터 값은 순서를 지정해서 입력하지 않아도 된다. 파라미터 값 중에 CFGFILE은 명령 프롬프트에서만 지정할 수 있지만, 나머지 파라미터 값은 환경설정 파일에서도 지정할 수 있다.

    명령 프롬프트에 사용되는 파라미터를 환경설정 파일에 저장하여 관리하는 방법에는 다음과 같은 두 가지 형식이 있다. 두 번째 형식은 하나 이상의 파라미터 값을 지정하는 경우이다.

    PARAMETER=value PARAMETER=value1, ... 
     

    다음은 파라미터를 지정하는 예이다.

    FULL=Y FILE=EXPORT.DAT GRANT=Y INDEX=Y CONSTRAINT=Y 

    3.4.1. 파라미터 목록

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

    항목 기본값 설명
    CFGFILE   환경설정 파일의 이름이다.
    USERNAME   Export를 수행하는 사용자의 계정을 입력한다.
    PASSWORD   Export를 수행하는 사용자의 패스워드를 입력한다.
    IP localhost Export 대상 Tibero 서버의 IP를 입력한다.
    PORT 8629 Export 대상 Tibero 서버의 포트를 입력한다.
    SID   Export 대상 Tibero 서버의 SID를 입력한다.
    FILE default.dat Export를 수행할 때 생성되는 파일의 이름이다.
    바이너리 파일의 형태로 운영체제에서 생성되며, 이름을 지정하지 않으면 기본값으로 생성된다.
    NO_PACK_DIR   압축을 해제한 덤프 파일이 저장되는 디렉터리이다. 이 옵션이 지정되면, FILE 파라미터에 설정된 값은 무시된다.
    OVERWRITE N Export를 수행할 때 생성되는 파일의 이름과 동일파일을 덮어쓸지 지정한다.
    • Y: 파일을 덮어쓴다.
    • N: 파일을 덮어쓰지 않는다.
    LOG   Export의 로그가 기록될 파일의 이름을 입력한다.
    FULL N 전체 데이터베이스 모드로 Export를 수행할지 지정한다.
    • Y: 전체 데이터베이스 모드로 Export를 수행한다.
    • N: 사용자 또는 테이블 모드로 Export를 수행한다. (둘 중 하나의 모드는 있어야 함)
    USER   사용자 모드로 Export를 수행할 때 Export될 객체의 소유자를 지정한다.
    USER=userlist의 형태로 사용한다.
    TABLE   테이블 모드로 Export를 수행할 때 Export할 대상 테이블의 이름을 지정한다.
    TABLE=tablelist의 형태로 사용한다.
    QUERY   Export될 데이터에 필터 조건을 지정한다.
    • 모드에 상관없이 동작하지만, 원하지 않는 테이블에도 적용될 수 있으므로 주의한다.
    • Where 조건 앞과 뒤를 \"로 감싸주어야 한다.
    • 지정된 조건에 의해 SQL 문장에서 문법(Syntax) 에러가 발생할 경우, 조건을 적용하지 않고 다시 시도한다.
    INDEX Y Export를 수행할 때 인덱스 정보의 Export 여부를 지정한다.
    • Y: 인덱스를 Export한다.
    • N: 인덱스를 Export하지 않는다.
    GRANT Y Export를 수행할 때 권한의 Export 여부를 지정한다.
    • Y: 권한을 Export한다.
    • N: 권한을 Export하지 않는다.
    CONSTRAINT Y Export를 수행할 때 제약조건의 Export 여부를 지정한다.
    • Y: 제약조건을 Export한다 .
    • N: 제약조건을 Export하지 않는다.
    ROWS Y Export를 수행할 때 테이블의 데이터를 Export 할지 여부를 지정한다.
    • Y: 테이블의 데이터를 Export한다.
    • N: 테이블의 데이터를 Export하지 않는다.
    SCRIPT N Export를 수행할 때 스키마 객체를 생성하는 DDL 스크립트의 표시 여부를 지정한다.
    • Y: 스키마 객체를 생성하는 DDL 스크립트를 표시한다.
    • N: 스키마 객체를 생성하는 DDL 스크립트를 표시하지 않는다.
    THREAD_CNT 4 테이블의 데이터를 Export하기 위해 사용하는 스레드의 개수를 입력한다.
    SERVER_VER 5 Export의 대상이 되는 Tibero의 버전을 지정한다.
     

    3.5. 수행 예제

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

    [예 3.2] tbExport 유틸리티를 이용한 Export의 실행

    tbExport 5.0 - Copyright (c) 2001-2011 Tibero Corporation. All rights reserved. the entire database: Wed May 04 16:16:08 KST 2011 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: Wed May 04 16:16:20 KST 2011 
    1. export
    tbexport USERNAME=sys PASSWORD=syspwd IP=추출서버IP PORT=8629 SID=sid FILE=/datafile.dat LOG=/datafile.log full=y ROWS=Y SCRIPT=Y THREAD_CNT=7
     
    2. import
    tbimport USERNAME=sys PASSWORD=syspwd IP=입력서버IP PORT=8629 FILE=/datafile.dat LOG=/datafile.log full=y SCRIPT=Y THREAD_CNT=7 sid=tibero

     

     
     

     

    반응형

    댓글

Designed by Tistory.