DBMS 1

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

tbMigrator 2.0

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



제2장tbMigrator2.0






내용 목차








2.1. 개요

?

2.2. 화면 설명

?

2.2.1. Main 화면

?

2.2.2. Option 화면

?

2.2.3. Progress 화면

?

2.2.4. Report 화면

?

2.3. 이관 대상

?

2.4. 접속 유저의 권한

?

2.5. 수행 예제


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




2.1. 개요




tbMigrator2.0은Tibero에서 제공하는 마이그레이션 유틸리티이다.이 유틸리티는 타 DBMS가 구성한 데이터베이스 전체 또는 일부를Tibero로 옮기는 마이그레이션 작업을 도와 준다. 즉 Source DBMS에 저장된 테이블, 인덱스, 뷰 등의 스키마 객체와 PSM 프로그램 등을Tibero데이터베이스로 옮겨 이전의 데이터베이스와 같은 기능을 수행하도록 한다.tbMigrator2.0 유틸리티의 기능은 다음과 같다.

  • 사용자가 원하는 데이터를 선택하여Tibero로 마이그레이션한다.
  • 테이블, 인덱스, 뷰, 동의어 등의 스키마 객체와 테이블에 정의된 각종 제약조건을 마이그레이션한다.
  • 사용자 특권(privilege) 및 역할(role)을 마이그레이션한다.
  • 마이그레이션 타깃 데이터베이스에 대한 정보를 제공한다.
  • Option 버튼을 사용하여 다양한 방법으로 마이그레이션한다.
  • Progress 화면을 통해서 마이그레이션의 진행사항을 파악할 수 있다.


참고

tbMigrator2.0은 Java 언어로 구현되어 있으며, Java 6 이상에서 사용할 수 있다. 또한, 실행하기 전에 접속하려는 DB의 JDBC Driver 파일의 경로를 실행 스크립트 내의 classpath 설정에 추가해 두어야 한다.







2.2. 화면 설명




tbMigrator2.0은 Main 화면, Option 화면 , Progress 화면, Report 화면으로 구성된다.




2.2.1. Main 화면




다음은 Main 화면에 대한 설명이다.


[그림 2.1]Main 화면



Main 화면




  • Source

    • Source 접속 정보다음은 Source 접속 정보의 각 항목에 대한 설명이다.

      항목 설명
      Address Source 데이터베이스의 IP 주소이름이다.
      Port Source 데이터베이스의 포트 번호이다.
      SID Source 데이터베이스의 SID이다.
      User ID Source 데이터베이스의 사용자 ID이다.
      Password Source 데이터베이스의 패스워드이다.
      DB Type Source 데이터베이스의 종류를 선택한다.
      Properties Source 데이터베이스의 추가적인 접속 정보를 지정한다.
    • Source 데이터베이스 뷰Source 데이터베이스 뷰는 사용자가 원하는 데이터를 선택하는 기능과 데이터베이스의 문자셋 설정을 보여준다. 데이터를 선택하는 방식은 3가지로 나눈다.

      • Full Mode데이터베이스명을 선택하면 모든 스키마가 선택된다. 종속된 스키마 요소를 하나라도 해제하면 전체 모드에서 스키마 모드로 변환한다.

        [그림 2.2]Full Mode 선택방식



        Full Mode 선택방식

      • Schema Mode특정한 스키마명를 선택하면 스키마에 종속된 테이블을 모두 지정한다. 종속된 테이블 요소를 하나라도 해제하면 스키마 모드에서 테이블 모드로 변환된다.

        [그림 2.3]Schema Mode 선택방식



        Schema Mode 선택방식

      • Table Mode테이블 요소를 선택한 것으로tbMigrator의 최소 이관 단위이다.

        [그림 2.4]Table Mode 선택방식



        Table Mode 선택방식




        ?
      • Source의 문자셋 설정은 다음 두 가지 정보를 보여준다.

        • Char Set
        • NChar Set
        ?
        • Tibero

          • Tibero접속 정보다음은Tibero접속 정보의 각 항목에 대한 설명이다.

            항목 설명
            Address Tibero데이터베이스의 IP 주소이름이다.
            Port Tibero데이터베이스의 포트 번호이다.
            SID Tibero데이터베이스의 SID이다.
            User ID Tibero데이터베이스의 사용자 ID이다.
            Password Tibero데이터베이스의 패스워드이다.
            DB Version Tibero데이터베이스의 버전을 선택한다.
          • Tibero데이터베이스 뷰Tibero에 존재하고 있는 데이터를 조회하는 기능과 문자셋 설정을 보여준다.

          • 버튼마이그레이션 Main 화면의 버튼들은 다음과 같다.

            버튼 설명
            [Connect] 대상 데이터베이스에 접속한다.
            [Option] 옵션 대화 상자가 나타난다.
            [Run] 마이그레이션을 시작한다.
            [Close] tbMigrator를 종료한다.

            ?

            ?
          • 지원하는 Source 데이터베이스


    • Main 화면의 Source 접속 정보에서 Source 데이터베이스를 선택할 수 있다. 각 데이터베이스별로 고려해야 할 항목들은 다음과 같다.


  • Oracle

    • Main 화면 Source 접속 정보Connect As 설정을 지정해야 한다.[Properties]버튼을 클릭하면 옵션을 선택할 수 있는 대화창이 나타난다. NORMAL, SYSDBA, SYSOPER 중에 하나를 선택할 수 있으며, 기본값은 NORMAL이다.


    • Option 화면의 데이터 변환 옵션Option 화면이 나타나면 Type Conversion Table을 이용하여 컬럼 타입 변환 옵션을 설정할 수 있다.LONG과 LONG RAW 컬럼은 Oracle 8x 이후에서는 사용하지 않는 것으로 권장되는 컬럼 타입으로, 단지 7x 이전 버전과의 호환성을 위해 지원되고 있다. 이 옵션을 이용하여 이관할 때에 위의 컬럼들을 각각 대치되는 CLOB, BLOB으로 변환할 것인지, 또는 해당 타입을 유지할 것인지를 지정할 수 있다.


  • Tibero같은Tibero간에 마이그레이션을 수행하는 경우 다른 데이터베이스를 선택한 경우와는 다르게 Source 데이터베이스와 타겟인Tibero와 연결하는 경우 같은 JDBC 드라이버를 사용하게 된다. 그러므로tbMigrator에 포함된 JDBC는 양쪽 데이터베이스 모두에 호환되어야 하며, 가장 최신의 JDBC를 사용하는 것이 바람직하다.


  • Sybase Adaptive Server Enterprise다음은 Sybase Adaptive Server Enterprice (ASE) 15 기준으로Tibero와 다른 부분을 정리한 내용이다.

    Sybase ASE Tibero 이관 비고
    User Schema Tibero의 schema는 DB schema와 DB user를 포함한 개념이다.
    Segment Segment ASE에는 Tablespace개념이 없으며, 각 객체가 Segment에 직접 저장된다. 이관할 때에는 Segment이름에 해당하는 Tablespace를 만들어 각 객체를 그에 할당해준다.
    Tablespace
    Role Role
    Table Table ASE의 테이블 중 USER TABLE로 분류되는 것들을 이관한다.
    View View ● (일부) ASE에서 제공하는 sp_helptext를 이용하여 얻은 생성 DDL을 이용해 이관이 가능하다. 단, 문법이 완벽히 호환되지는 않는다.
    Index Index ● (일부) Function based Index를 제외한 Table Index를 이관한다.
    Rule Constraint Primary Key, Unique, Not Null, Check, Referential constraint의 이관이 가능하다.
    System Protect System Privilege ● (일부) System Protect와 Privilege의 각 항목의 이름이 ASE와Tibero양쪽 모두 동일할 경우에만 이관이 가능하다.
    Object Privilege
    Transaction SQL PSM ● (일부) ASE에서 제공하는 sp_helptext를 이용하여 얻은 생성 DDL을 이용해 이관이 가능하다. 단, 문법이 완벽히 호환되지는 않는다.
    SQLJ Procedure
    Scalar Function


  • Informix

    • Main 화면 Source 접속 정보의 PropertiesInformix 서버 이름을 입력하여야 한다.[Properties]버튼을 클릭하면 Informix 서버 이름을 입력할 수 있는 대화창이 나타난다.






2.2.2. Option 화면




다음은 Option 화면에 대한 설명이다.


[그림 2.5]Option 화면



Option 화면




  • DDLDDL은 마이그레이션 할 때 첫 단계로Tibero데이터베이스의 객체들을 생성할 때 사용하는 구문이다. DBMS에서 추출한 DDL 문장을 수행할 지를 선택한다.

    • Create All Objects추출한 모든 DDL 문장을 수행한다.
    • Create Objects by Type선택한 Object 종류에 해당하는 DDL 문장만을 수행한다.상세선택 버튼([...] )을 클릭하면 다음과 같이 Object 종류를 선택할 수 있는 선택창이 나타난다.
      t30.jpg


  • Data Transfer데이터 전송은 DDL 다음 단계로 데이터들을 Source 데이터베이스에서Tibero로 이관해준다.



    • 구분 설명
      Transfer Table Data 테이블 데이터를 마이그레이션을 할지를 선택한다.
      Use Direct Path Load 테이블의 데이터를 Direct Path Load 방식으로 마이그레이션한다.
      Use Batch Insert 테이블의 데이터를 Batch Insert 방식으로 마이그레이션한다.
      Concurrent Thread 여러 테이블의 데이터를 동시에 마이그레이션 하기 위해 사용할 스레드의 개수를 정한다.


  • Conversion다음은 데이터 변환 옵션에 대한 설명이다.



    • 구분 설명
      Read as Bytes 테이블의 char, varchar와 같은 문자열을 저장하기 위한 열에 데이터베이스 설정과 다른 캐릭터셋을 사용하여 실제 문자열이 저장될 경우 문자열 형태로 데이터를 가져올 경우 문자열이 깨질 수 있다. 이를 방지하기 위하여 문자열이 아닌 binary 형태로 데이터를 가져오고, binary 형태로Tibero측으로 옮길 때 사용되는 옵션이다.
      Real Characterset 테이블 데이터 이외의 부분에 실제 데이터베이스의 캐릭터 셋과 다르게 입력된 부분이 있는 경우 이관 후 해당 내용이 깨질 수 있다. 이를 방지하기 위해 실제 사용한 캐릭터셋을 지정하여 올바른 문자열 형태로 옮겨지도록 해주는 옵션이다.Read as Bytes 설정을 활성화한 경우에만 유효하며, 영향을 받는 항목은 PSM DDL, 테이블의 comment, 테이블의 열의 comment 이다.
      Double Character Column Size Source 데이터베이스와Tibero의 캐릭터셋이 서로 다른 경우 변환된 문자열 데이터의 실제 바이트 길이가 달라질 수 있다.이 때문에 열의 길이 제한을 초과하여 이관에 실패하는 경우가 발생할 수 있다. 이를 방지하기 위해 문자열 기반의 열을 생성할 때, Source 데이터베이스에서 지정된 것의 2배의 길이로 바꾸어주는 옵션이다.
      Type Conversion Table Source 데이터베이스와Tibero의 열 타입이 완전히 일치하지 않기 때문에 호환성을 보완하기 위한 설정을 할 수 있는 옵션이다. 이 옵션의 내용은 Source 데이터베이스의 종류에 따라 다를 수 있다.


  • Verification다음은 데이터 검증 옵션에 대한 설명이다.



    • 구분 설명
      Verify Table Data 테이블 데이터가 잘 이관되었는지 확인할 수 있는 기능이다.Source 데이터베이스와Tibero양쪽의 이관된 모든 테이블 데이터를 읽어와 1:1로 비교한다. 데이터 양이 많은 경우 많은 시간이 소요될 수 있다.






2.2.3. Progress 화면




사용자는 Progress 화면을 통해서 마이그레이션의 진행사항을 파악할 수 있다.


[그림 2.6]Progress 화면



Progress 화면








  • 조회 항목

    항목 설명
    Current Schema 현재 진행하고 있는 스키마 정보이다.Current Schema는 마이그레이션 해야 할 스키마 갯수와 마이그레이션 된 스키마 갯수를 보여준다. 마이그레이션이 완료되면 COMPLETE를 나타낸다.
    Current Progress 현재 진행하고 있는 스키마의 스테이지 정보이다.스테이지 정보는 스키마의 데이터 타입 정보를 보여주고, 마이그레이션이 완료되면 COMPLETE를 나타낸다.
    Strage Progress 마이그레이션하는 각 스테이지 진행상태를 보여준다.스테이지 진행 정보는 마이그레이션 진행 중인 데이터명을 가르키며, 마이그레이션 해야 할 데이터 갯수와 마이그레이션 된 데이터 갯수를 보여준다.
    Created Objects 현재까지 성공적으로 생성된 Object 갯수를 보여준다.
    Errors 현재까지 발생한 Error 갯수를 보여준다.
    Data Migrator # 테이블 데이터를 처리하는 스레드를 나타내며, 각각 현재 처리하고 있는 테이블 이름과 진행률을 보여준다. 총 갯수는 Option 화면의 데이터 전송 옵션 중 Concurrent Threads 항목에서 지정한 값에 따른다.
  • 버튼

    항목 설명
    [Show Report] 마이그레이션의 결과를 확인할 수 있는 Report 화면이 나타난다. 자세한 내용은 Report 화면 항목을 참고한다.
    [OK] 마이그레이션이 진행 중일 때는 비활성화되어 있다. 작업 과정이 모두 끝나면 버튼이 활성화되며, 클릭하면 모든 과정이 종료된다.
    [Cancel] 마이그레이션의 진행이 중단된다. 작업과정이 모두 끝나면 이 버튼은 비활성화된다.






2.2.4. Report 화면




Report 화면은 마이그레이션의 진행 결과를 보여준다.


[그림 2.7]Report 화면



Report 화면









2.3. 이관 대상




tbMigrator2.0 유틸리티는 Full Mode, Schema Mode, Table Mode 세 가지 이관 모드를 지원한다.각 모드는 각각 다른 이관 범위를 지원한다.

  • Full ModeFull Mode를 선택하면 데이터베이스안의 모든 객체들이 마이그레이션 대상이 된다.
  • Schema Mode특정 Schema만 선택하여 이관하는 경우는 Schema Mode로 동작하며, 선택한 Schema와 그에 속한 객체, 혹은 연관된 객체가 마이그레이션의 대상이 된다.
  • Table Mode특정 Table을 선택하여 이관하는 경우는 Table Mode로 동작하며, 해당 Table과 그에 속한 schema의 연관된 객체들이 이관된다.

각 모드에 따라 이관하는 객체를 타입별로 정리하면 다음 표와 같다.

항목 Full Mode Schema Mode Table Mode
TABLESPACE
ROLE
SCHEMA
SYSTEM PRIVILEGE
PUBLIC SYNONYM
SEQUENCE
TABLE
INDEX
CONSTRAINT
SYNONYM
MATERIALIZED VIEW
VIEW
REFERENTIAL CONSTRAINT
PSM
OBJECT PRIVILEGE

이때 타깃 데이터베이스에 새로 생성된 사용자의 비밀번호는 모두 초기화되며, 기본값은 'tibero'이다.Source 데이터베이스에 Index Organized Table (IOT)이 있는 경우, 그대로 이관되지 않고 일반 테이블과 Index로 분리되어 각각 별도로 이관된다. 또한 Object Privilege의 grantor값은 부여할 때 사용자의 특권에 따라 다르게 설정될 수 있기 때문에, 이관 후 로그인 사용자 또는 Object의 소유자로 값이 변경될 수 있다.다음은 간단한 예제이다.
# DBA권한의 사용자로 로그인
create user owuser identified by tibero;
grant resource, connect to owuser;
create user gtuser1 identified by tibero;
grant resource, connect to gtuser1;
create user gtuser2 identified by tibero;

# owuser 사용자로 로그인
create table grantest1 ( c1 varchar2(20) );
grant select on grantest1 to gtuser1 with grant option;

# gtuser1 사용자로 로그인
grant select on owuser.grantest1 to gtuser2;
위의 순서로 특권을 부여하면 grantor가 다른 object privilege가 생성된다. 이런 grantor에 해당되는 사용자에 대한 접속 정보를 Migrator에서 모두 알 수 없기 때문에 일괄적으로 마이그레이션을 수행하며, grantor가 그대로 옮겨지지 않을 수 있다. 사용자 A가 grantor이고 사용자 B가 grantee인 특권을 생성하려면 위의 예제를 참고하여, A에게 특권을 우선 부여한 뒤, A로 로그인하여 B에게 다시 권한을 부여하면 된다.






2.4. 접속 유저의 권한




Source와 Target 데이터베이스에 접속할 때 사용되는 유저에게는 마이그레이션 작업에 필요한 권한이 부여되어 있어야 한다. 주로 DBA 권한을 부여한 유저를 사용할 것을 권장하고 있으며, 실제 필요한 상세 권한 목록은 데이터베이스의 종류나 Option 화면에서 선택한 이관하게 될 오브젝트 종류에 따라 달라질 수 있다.예를 들어, Oracle 에서 Full Mode로 이관할 때, Source 데이터베이스에 접속할 때 사용할 유저에게는 다음의 권한이 부여되어 있어야 한다.

  • CONNECT
  • SELECT ANY TABLE
  • SELECT ANY DICTIONARY
  • ALTER SESSION


Target 데이터베이스가Tibero인 경우, 접속할 때 사용할 유저에게는 다음의 권한이 부여되어 있어야 한다.

  • CONNECT
  • SELECT ANY TABLE
  • RESOURCE
  • ALTER SESSION







2.5. 수행 예제




다음은tbMigrator2.0을 사용하는 과정에 대한 설명이다.

  1. tbMigrator2.0 유틸리티를 실행하면 다음과 같은 초기 화면이 나타난다.



    1. [그림 2.8]마이그레이션 - 초기 화면




      마이그레이션 - 초기 화면


  • 접속할 Source 데이터베이스의 사용자 ID, 패스워드 등의 입력이 완료되면[Connect]버튼을 클릭한다.

    1. [그림 2.9]마이그레이션 - 소스 데이터베이스 접속 정보 입력




      마이그레이션 - 소스 데이터베이스 접속 정보 입력


  • 접속할Tibero데이터베이스의 사용자 ID, 패스워드 등의 입력이 완료되면[Connect]버튼을 클릭한다.

    1. [그림 2.10]마이그레이션 - 타깃 데이터베이스 접속 정보 입력




      마이그레이션 - 타깃 데이터베이스 접속 정보 입력


  • [OPTION]버튼을 클릭한다. 그리고 Option 정보 설정이 완료되면[OK]버튼을 클릭한다.

    1. [그림 2.11]마이그레이션 - Migration Options 입력 화면



      마이그레이션 - Migration Options 입력 화면


  • Source 데이터베이스 뷰에서 아무것도 선택하지 않고[Run]버튼을 클릭하면 아래와 같은 경고창이 뜬다.

    1. [그림 2.12]마이그레이션 - 선택하지 않고 실행한 경고창






  • Source 데이터베이스 뷰에서 마이그레이션할 대상을 선택하여[Run]버튼을 클릭하면 마이그레이션이 진행된다.

    1. [그림 2.13]마이그레이션 - 선택 후 실행



      마이그레이션 - 선택 후 실행


  • 마이그레이션을 진행하면 다음과 같이 진행상황을 보여주는Progress대화 상자가 나타난다. 또한 화면 하단의 뷰에서 진행상황 로그를 확인할 수 있다.

    1. [그림 2.14]마이그레이션 - 마이그레이션 진행



      마이그레이션 - 마이그레이션 진행


  • 진행 중 혹은 종료 후 Show Report 버튼을 누르면 다음과 같은 Report 화면이 뜨고 마이그레이션 진행 내역을 확인할 수 있다.

    1. [그림 2.15]마이그레이션 - Report 화면



      마이그레이션 - Report 화면


  • 모든 마이그레이션 과정이 끝나면 다음과 같이 Progress 대화상자의 최상단에 COMPLETE가 표시된다.[OK]버튼을 클릭한다.

    1. [그림 2.16]마이그레이션 - 마이그레이션 과정 완료



      마이그레이션 - 마이그레이션 과정 완료


  • 모든 과정이 끝난 뒤 Progress 대화 상자를 닫으면 다음과 같이 마이그레이션이 완료되었다는 대화 상자가 나타난다.[OK]버튼을 클릭한다.

  1. [그림 2.17]마이그레이션 - 완료 화면