DBMS 1
DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!
tbMigrator 2.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 유틸리티를 소개하고 사용 방법을 설명한다.
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 설정에 추가해 두어야 한다.
tbMigrator2.0은 Main 화면, Option 화면 , Progress 화면, Report 화면으로 구성된다.
다음은 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 선택방식
- Schema Mode특정한 스키마명를 선택하면 스키마에 종속된 테이블을 모두 지정한다. 종속된 테이블 요소를 하나라도 해제하면 스키마 모드에서 테이블 모드로 변환된다.
[그림 2.3]Schema Mode 선택방식
- Table Mode테이블 요소를 선택한 것으로tbMigrator의 최소 이관 단위이다.
[그림 2.4]Table Mode 선택방식
?
- Source의 문자셋 설정은 다음 두 가지 정보를 보여준다.
?
- Tibero
- Tibero접속 정보다음은Tibero접속 정보의 각 항목에 대한 설명이다.
항목 |
설명 |
Address |
Tibero데이터베이스의 IP 주소이름이다. |
Port |
Tibero데이터베이스의 포트 번호이다. |
SID |
Tibero데이터베이스의 SID이다. |
User ID |
Tibero데이터베이스의 사용자 ID이다. |
Password |
Tibero데이터베이스의 패스워드이다. |
DB Version |
Tibero데이터베이스의 버전을 선택한다. |
- Tibero데이터베이스 뷰Tibero에 존재하고 있는 데이터를 조회하는 기능과 문자셋 설정을 보여준다.
- 버튼마이그레이션 Main 화면의 버튼들은 다음과 같다.
?
?
- 지원하는 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와 다른 부분을 정리한 내용이다.
- Informix
- Main 화면 Source 접속 정보의 PropertiesInformix 서버 이름을 입력하여야 한다.[Properties]버튼을 클릭하면 Informix 서버 이름을 입력할 수 있는 대화창이 나타난다.
다음은 Option 화면에 대한 설명이다.
- DDLDDL은 마이그레이션 할 때 첫 단계로Tibero데이터베이스의 객체들을 생성할 때 사용하는 구문이다. DBMS에서 추출한 DDL 문장을 수행할 지를 선택한다.
- Create All Objects추출한 모든 DDL 문장을 수행한다.
- Create Objects by Type선택한 Object 종류에 해당하는 DDL 문장만을 수행한다.상세선택 버튼([...] )을 클릭하면 다음과 같이 Object 종류를 선택할 수 있는 선택창이 나타난다.
- Data Transfer데이터 전송은 DDL 다음 단계로 데이터들을 Source 데이터베이스에서Tibero로 이관해준다.
- Conversion다음은 데이터 변환 옵션에 대한 설명이다.
- Verification다음은 데이터 검증 옵션에 대한 설명이다.
사용자는 Progress 화면을 통해서 마이그레이션의 진행사항을 파악할 수 있다.
Report 화면은 마이그레이션의 진행 결과를 보여준다.
tbMigrator2.0 유틸리티는 Full Mode, Schema Mode, Table Mode 세 가지 이관 모드를 지원한다.각 모드는 각각 다른 이관 범위를 지원한다.
- Full ModeFull Mode를 선택하면 데이터베이스안의 모든 객체들이 마이그레이션 대상이 된다.
- Schema Mode특정 Schema만 선택하여 이관하는 경우는 Schema Mode로 동작하며, 선택한 Schema와 그에 속한 객체, 혹은 연관된 객체가 마이그레이션의 대상이 된다.
- Table Mode특정 Table을 선택하여 이관하는 경우는 Table Mode로 동작하며, 해당 Table과 그에 속한 schema의 연관된 객체들이 이관된다.
각 모드에 따라 이관하는 객체를 타입별로 정리하면 다음 표와 같다.
이때 타깃 데이터베이스에 새로 생성된 사용자의 비밀번호는 모두 초기화되며, 기본값은 '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에게 다시 권한을 부여하면 된다.
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
다음은tbMigrator2.0을 사용하는 과정에 대한 설명이다.
- tbMigrator2.0 유틸리티를 실행하면 다음과 같은 초기 화면이 나타난다.
-
-
- 접속할 Source 데이터베이스의 사용자 ID, 패스워드 등의 입력이 완료되면[Connect]버튼을 클릭한다.
-
-
- 접속할Tibero데이터베이스의 사용자 ID, 패스워드 등의 입력이 완료되면[Connect]버튼을 클릭한다.
-
-
- [OPTION]버튼을 클릭한다. 그리고 Option 정보 설정이 완료되면[OK]버튼을 클릭한다.
-
-
- Source 데이터베이스 뷰에서 아무것도 선택하지 않고[Run]버튼을 클릭하면 아래와 같은 경고창이 뜬다.
-
-
- Source 데이터베이스 뷰에서 마이그레이션할 대상을 선택하여[Run]버튼을 클릭하면 마이그레이션이 진행된다.
-
-
- 마이그레이션을 진행하면 다음과 같이 진행상황을 보여주는Progress대화 상자가 나타난다. 또한 화면 하단의 뷰에서 진행상황 로그를 확인할 수 있다.
-
-
- 진행 중 혹은 종료 후 Show Report 버튼을 누르면 다음과 같은 Report 화면이 뜨고 마이그레이션 진행 내역을 확인할 수 있다.
-
-
- 모든 마이그레이션 과정이 끝나면 다음과 같이 Progress 대화상자의 최상단에 COMPLETE가 표시된다.[OK]버튼을 클릭한다.
-
-
- 모든 과정이 끝난 뒤 Progress 대화 상자를 닫으면 다음과 같이 마이그레이션이 완료되었다는 대화 상자가 나타난다.[OK]버튼을 클릭한다.
-