IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  Information Management  >

DB2 9.7: IBM Data Movement Tool

애플리케이션을 Oracle에서 DB2로 쉽게 이동하는 방법

developerWorks
문서 옵션

JavaScript가 필요한 문서 옵션은 디스플레이되지 않습니다.

토론

샘플 코드

영어원문

영어원문


제안 및 의견
피드백

난이도 : 중급

Vikram S. Khatri, Certified Consulting I/T Specialist, IBM

원문 게재일 : 2009 년 6 월 19 일
번역 게재일 : 2009 년 9 월 29 일

이 기사에서는 Oracle의 애플리케이션을 IBM® DB2® 버전 9.7 for Linux®, UNIX®, and Windows®에서 사용하는 데 필요한 매우 단순하지만 강력한 도구에 대해 설명합니다. 이 도구는 다른 여러 데이터베이스 관리 시스템의 데이터를 DB2 for Linux, UNIX, and Windows 및 DB2 for z/OS®로 이동하는 데도 사용할 수 있습니다.

소개

DB2 V9.7 for Linux, UNIX, and Windows부터는 MTK(Migration Toolkit)가 없어도 Oracle의 애플리케이션을 DB2 제품에서 사용할 수 있다. 이 도구를 활용하면 MTK 기능 사용 시 워크플로우가 매우 간단해진다.

예를 들어, 데이터베이스를 DB2 for z/OS로 이동하는 것과 같은 다른 모든 시나리오에서 이 도구를 사용할 수 있으며 특히 고속으로 데이터 이동 시 MTK의 기능을 지원한다. 이 도구를 사용하면 최대 4TB의 데이터를 단 3일 만에 이동할 수 있다.

입문자의 경우 GUI를 사용하면 편리하며 숙련된 사용자의 경우 명령행 API를 더 많이 사용한다.

준비

다운로드

먼저 다운로드 섹션에서 도구를 대상 DB2 서버로 다운로드한다. 데이터를 DB2 for z/OS로 이동하려면 추가 작업이 필요하다.

설치

IBMDataMovementTool.zip 파일을 다운로드한 후에는 대상 DB2 서버에서 파일을 IBMDataMovementTool 디렉토리에 추출한다. 최상의 데이터 이동 성능을 얻으려면 제품을 서버측(DB2)에 설치하는 것이 좋다.

전제 조건

  • Oracle 애플리케이션을 DB2 for Linux, UNIX, and Windows에서 실행하려면 DB2 V9.7이 대상 서버에 설치되어 있어야 한다.
  • Java™ 버전 1.5 이상이 대상 서버에 설치되어 있어야 한다. 현재 Java 버전을 확인하려면 java -version 명령을 실행한다. 기본적으로 Java는 DB2 for Linux, UNIX, and Windows의 일부로 <install_dir>\SQLLIB\java\jdk(Windows) 또는 /opt/ibm/db2/V9.7/java/jdk(Linux)에 설치된다.
  • 소스 데이터베이스 및 DB2용 JDBC 드라이버의 위치는 다음 표와 같다.

    데이터베이스JDBC 드라이버
    Oracleojdbc5.jar, ojdbc6.jar, ojdbc14.jar, xdb.jar, xmlparserv2.jar 또는 Oracle 7 또는 8i의 경우 classes12.jar 또는 classes111.jar
    SQL Serversqljdbc5.jar 또는 sqljdbc.jar
    Sybasejconn3.jar
    MySQLmysql-connector-java-5.0.8-bin.jar 또는 최신 드라이버
    PostgreSQLpostgresql-8.1-405.jdbc3.jar 또는 최신 드라이버
    DB2 for Linux, UNIX, and Windowsdb2jcc.jar, db2jcc_license_cu.jar 또는 db2jcc4.jar, db2jcc4_license_cu.jar
    DB2 for zdb2jcc.jar, db2jcc_license_cisuz.jar 또는 db2jcc4.jar, db2jcc4_license_cisuz.jar
    DB2 for ijt400.jar
    MS Access선택적 Access_JDBC30.jar


환경 설정

  • UNIX: DB2 인스턴스 소유자로 서버에 로그인한다.
  • Windows: DB2 명령창을 시작한다.
  • IBMDataMovementTool 디렉토리로 변경한다. 이 도구는 도구를 실행하는 두 개의 드라이버 스크립트가 포함된 JAR 파일이다.
    IBMDataMovementTool.cmd - Windows에서 도구를 실행하는 명령 스크립트이다.
    IBMDataMovementTool.sh - UNIX에서 도구를 실행하는 명령 스크립트이다.
    IBMDataMovementTool.jar - 도구의 JAR 파일이다.

DB2 대상 데이터베이스 작성하기

도구를 실행하려면 대상 데이터베이스에 대한 연결이 필요하므로 DB2 데이터베이스를 먼저 작성해야 한다. DB2 V9.7의 경우 기본 자동 스토리지를 사용하고 32KB 페이지 크기를 선택하는 것이 좋다. DB2 V9.7에서 애플리케이션을 실행할 경우에는 인스턴스와 데이터베이스가 호환성 모드에서 작동 중이어야 한다. 또한 반올림 동작도 Oracle과 일치하도록 조정하는 것이 좋다. 유효성 재검증 시맨틱을 deferred_force로 설정하여 종속성 순서에 상관 없이 오브젝트를 전개할 수 있다.

UNIX 시스템
$ db2set DB2_COMPATIBILITY_VECTOR=ORA
$ db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
$ db2stop force
$ db2start
$ db2 "create db testdb automatic storage yes on /db2data1,
/db2data2,/db2data3 DBPATH ON /db2system PAGESIZE 32 K"
$ db2 update db cfg for testdb using auto_reval deferred_force
$ db2 update db cfg for testdb using decflt_rounding round_half_up

Windows 시스템
C:\> db2set DB2_COMPATIBILITY_VECTOR=ORA
C:\> db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
C:\> db2stop force
C:\> db2start
C:\> db2 "create db testdb automatic storage yes on C:,D: DBPATH ON E: PAGESIZE 32 K"
C:\> db2 update db cfg for testdb using auto_reval deferred_force
C:\> db2 update db cfg for testdb using decflt_rounding round_half_up

오브젝트 및 데이터 추출하기

도구를 실행하기 전에 다음과 같은 소스 및 DB2 서버 정보를 알고 있어야 한다.

  • 소스 및 DB2 서버의 IP 주소 또는 호스트 이름
  • 연결할 포트 번호
  • 데이터베이스의 이름, SID, 서브시스템 이름 등(필요한 경우)
  • 소스 데이터베이스에서 DBA 권한을 가진 사용자 ID
  • 해당 사용자의 암호
  • 소스 데이터베이스 및 DB2 JDBC 드라이버의 위치
  • 충분한 데이터 저장 공간과 데이터를 저장할 볼륨/마운트 지점 정보

Windows의 경우 IBMDataMovementTool.cmd를 실행하고 UNIX의 경우 ./IBMDataMovementTool.sh를 실행한다. 서버에서 그래픽 기능이 지원되는 경우에는 GUI가 표시되고 그렇지 않은 경우에는 입력을 받을 수 있는 대화식 명령행 모드로 전환된다.

Windows:
IBMDataMovementTool.cmd

UNIX:
./IBMDataMovementTool.sh


DB2_COMPATIBILITY_VECTOR란?

DB2_COMPATIBILITY_VECTOR는 DB2 V9.7 인스턴스 및 데이터베이스를 Oracle 호환 모드로 배치하는 데 사용되며 자세한 정보는 DB2 V9.7 정보 센터에서 확인할 수 있다.

이제 GUI 창이 표시되면서 일부 메시지가 쉘 창에 나타난다. GUI를 시작하기 전에 이러한 메시지를 보고 오류가 발생하지 않았는지 확인한다.

DB2_COMPATIBILITY_VECTOR를 설정하지 않았으면 경고가 표시된다. 호환성 벡터를 아직 설정하지 않았으면 다음 단계에 따라 설정한다.


[2009-05-15 12.48.59.218] INPUT Directory = .
[2009-05-15 12.48.59.218] Configuration file loaded: 'jdbcdriver.properties'
[2009-05-15 12.48.59.218] Configuration file loaded: 'IBMExtract.properties'
[2009-05-15 12.48.59.218] appJar  : 'C:\Vikram\Prospects\DB2Cobra\IBMDataMovementTool.jar'
[2009-05-15 12.49.01.000] * WARNING *. I did not detect DB2_COMPATIBILITY_VECTOR set for 
                          compatibility mode.
[2009-05-15 12.49.01.000] To set compatibility mode, discontinue this program and 
                          run the following commands
[2009-05-15 12.49.01.000] db2set DB2_COMPATIBILITY_VECTOR=ORA
[2009-05-15 12.49.01.000] db2stop force
[2009-05-15 12.49.01.000] db2start

그래픽 사용자 인터페이스 사용하기

그림 1과 같이 GUI 화면에는 소스 및 DB2 데이터베이스 연결 정보를 지정하기 위한 여러 필드가 있다. 이 화면에서 수행할 작업 순서는 다음과 같다.

  1. 소스 및 DB2 연결 정보를 지정한다.
  2. Connect to Oracle을 클릭하여 연결을 테스트한다.
  3. Connect to DB2를 클릭하여 연결을 테스트한다.
  4. DDL 및 데이터를 추출할 작업 디렉토리를 지정한다.
  5. 원하는 경우 DDL 및/또는 DATA를 선택한다. DDL만 선택할 경우에는 추가 genddl 스크립트가 생성된다.
  6. Extract Data 단추를 클릭한다. 콘솔 창에서 진행 상태를 모니터링할 수 있다.
  7. 데이터 추출이 완료되면 결과 출력 파일에서 데이터 이동 상태, 경고, 오류 및 기타 잠재적 문제를 확인할 수 있다.
  8. 선택적으로 View Script/Output 단추를 클릭하여 생성된 스크립트, DDL, 데이터 또는 출력 로그 파일을 확인할 수 있다.
  9. Deploy Data 단추를 클릭하여 테이블과 인덱스를 DB2에 작성하고 소스 데이터베이스에서 추출된 데이터를 로드한다.
  10. 생성된 DB2 스크립트는 명령행 대신 Execute DB2 Script를 사용해서도 실행할 수 있다. 데이터 이동은 대화식으로 진행되는 작업이다. 새로 고치기를 시작하기 전에 모든 테이블을 삭제해야 하는 경우 테이블 삭제 스크립트를 선택하고 실행할 수 있다. 스크립트를 원하는 순서대로 실행하려는 경우에도 이 단추를 사용할 수 있다.

그림 1. 소스 및 DB2 데이터베이스에 대한 입력 매개변수
데이터 추출 및 전개하기

Extract DDL/Data 단추를 클릭하면 그림 2와 같이 View File 탭에 메시지가 표시된다.


그림 2. DDL 및 데이터 추출하기
DDL/데이터 추출하기

DDL 및 DATA의 추출이 완료되면 작업 디렉토리에서 새로 작성된 여러 파일을 볼 수 있다. 이러한 파일은 명령행 API에서 사용할 수 있다.

구성 파일

다음 명령 스크립트는 GUI 모드에서 도구를 실행할 때마다 다시 생성된다. 하지만 GUI를 사용하지 않더라도 이러한 스크립트를 사용하여 모든 데이터 이동 단계를 수행할 수 있다. 이 방법은 도구를 일괄 처리 프로세스의 일부로 포함시켜서 자동화된 데이터 이동 작업을 수행하려는 경우에 유용하다.

파일 이름설명
IBMExtract.properties이 파일에는 GUI를 통해 지정한 모든 입력 매개변수나 명령행 입력 값이 있다. 이 파일을 수동으로 편집하여 매개변수를 수정할 수 있다. 이 파일은 GUI를 실행할 때마다 겹쳐써진다는 점에 유의해야 한다.
geninput데이터 이동 작업의 첫 번째 단계로 이동할 테이블의 이름이 담긴 입력 파일을 만든다. 이 파일을 수동으로 편집하여 이동하지 않을 테이블을 제외할 수 있다.
genddlDDL 생성을 DATA와 구별하도록 선택한 경우에만 생성되는 선택적 스크립트이다. 이 단계는 데이터 이동 작업의 두 번째 단계로 소스 데이터베이스의 모든 DDL을 DB2에 생성한다.
unload 데이터 이동 작업의 마지막 단계이다. 이 스크립트는 소스 데이터베이스의 데이터를 일반 파일로 언로드한다. 이 스크립트를 실행한 후에는 DB2 LOAD 스크립트가 생성된다.
참고: DDL을 DATA와 구별하도록 선택하지 않은 경우에는 genddl 컨텐츠가 unload 스크립트에 포함된다.
rowcount이 파일은 데이터를 이동한 후 소스 및 대상 데이터베이스 서버에 있는 테이블의 행 수에 대한 온전성 검사를 수행하는 데 사용된다.

그림 3. 데이터 추출 후 작성된 파일
단계 2. 작성된 파일

명령행 모드 사용하기

명령행 모드를 사용하여 도구를 실행할 수 있으며, 이 방법은 특히 서버에서 GUI 기능을 사용할 수 없거나 텔넷/ssh 세션을 통해 연결된 경우에 유용하다. 이 도구에서는 GUI를 시작할 수 없을 경우 모드가 자동으로 전환된다. 명령행 대화식 모드로 도구를 실행하려는 경우에는 -console 옵션을 IBMDataMovementTool 명령에 지정할 수 있다.

Windows:
IBMDataMovementTool -console
UNIX:
./IBMDataMovementTool.sh	-console


소스 및 DB2 데이터베이스 연결 매개변수를 지정하기 위한 대화식 옵션이 단계별로 제공된다. 다음은 콘솔 창의 샘플 출력이다.
[2009-05-16 23.38.54.703] INPUT Directory = .
[2009-05-16 23.38.54.703] Configuration file loaded: 'jdbcdriver.properties'
[2009-05-16 23.38.54.703] Configuration file loaded: 'IBMExtract.properties'
[2009-05-16 23.38.54.703] appJar  : 'C:\Vikram\Prospects\DB2Cobra\IBMDataMovementTool.jar'
Extract DDL (Yes)        : 1
Extract DDL (No)         : 2
Enter a number (Default=1) : 1
Extract Data (Yes)        : 1
Extract Data (No)         : 2
Enter a number (Default=1) : 2
******* Source database information: *****
Oracle                  : 1
MS SQL Server           : 2
Sybase                  : 3
MS Access Database      : 4
MySQL                   : 5
PostgreSQL              : 6
DB2 z/OS                : 7
DB2 LUW                 : 8
Enter a number (Default 1) : 1

오브젝트 전개하기 및 데이터 로드하기

데이터베이스 대상 오브젝트 작성하기

DDL 및 DATA의 추출을 완료한 후에는 추출된 오브젝트를 다음 세 가지 방법으로 DB2에 전개할 수 있다.

  • GUI 화면에서 Deploy DDL/DATA 단추를 클릭한다.
  • Interactive Deploy 탭에서 단계별 프로세스에 따라 오브젝트를 전개한다.
  • 명령행 스크립트 unload를 사용하여 DDL/DATA를 전개한다.

데이터 및 오브젝트 이동 요구 사항에 따라 적합한 데이터 전개 옵션을 선택하면 된다. 비PL/SQL DDL 오브젝트 및 DATA만을 마이그레이션하는 경우에는 unload 스크립트를 사용하거나 GUI에서 Deploy DDL/DATA 단추를 클릭하는 방법만으로도 충분히 수행할 수 있다.

트리거, 함수, 프로시저 및 PL/SQL 패키지와 같은 PL/SQL 오브젝트를 전개할 경우에는 대화식 전개 옵션을 선택하는 것이 좋다.

그림 4와 같은 GUI 화면은 DDL 및 기타 데이터베이스 전개 오브젝트를 대화식으로 전개하려는 경우에 사용된다. 이 화면에서 수행할 작업 순서는 다음과 같다.

  1. Extract/Deploy 탭을 사용하여 DB2에 연결되었는지 확인한다.
  2. Interactive Deploy 탭을 클릭한다.
  3. Open Directory 단추를 사용하여 앞에서 추출한 오브젝트가 있는 작업 디렉토리를 선택한다. 그러면 오브젝트가 트리 보기에 표시된다.
  4. 도구 모음에 있는 Deploy All Objects 단추를 눌러서 모든 오브젝트를 전개할 수 있다. 일부 오브젝트가 전개되지 않을 수도 있지만 대부분의 오브젝트가 성공적으로 전개된다.
  5. 트리 보기에서 전개되지 않은 오브젝트를 클릭하면 오브젝트의 소스가 편집기 창에 표시된다. 전개 로그 아래에 실패의 원인이 나열된다.
  6. Oracle 호환성 모드에서는 일반적으로 오브젝트를 있는 그대로 전개할 수 있다. 하지만 기본 제공 오브젝트 중 일부는 해당 기능이 지원되지 않기 때문에 전개되지 않을 수 있다. 이러한 경우에는 편집기에서 해당 오브젝트의 소스 코드를 수정하여 문제를 해결할 수 있다. 변경된 오브젝트를 전개하면 기존 소스의 백업과 함께 새 소스가 저장된다.
  7. 오브젝트를 편집한 후 Ctrl 키를 사용하여 하나 이상의 오브젝트를 선택하고 도구 모음에서 Deploy Selected Objects 단추를 클릭하여 오브젝트를 전개할 수 있다. 전개 실패는 연쇄적으로 발생하는 경우가 많다. 왜냐하면 한 오브젝트가 전개에 실패할 경우 그 오브젝트에 종속된 다른 오브젝트도 전개에 실패하기 때문이다.
  8. 모든 오브젝트가 성공적으로 전개될 때까지 단계 5부터 단계 7까지 반복한다.

그림 4. 대화식 오브젝트 전개
단계 3. 대화식 전개

행 수 비교하기

  • 데이터 이동의 루트 디렉토리로 이동하고 rowcount 스크립트를 실행한다.
  • "<source database name>.tables.rowcount" 파일에 생성된 보고서를 확인한다. 이 보고서에는 소스 및 대상 데이터베이스의 행 수가 들어 있다.
oracle                      :       db2
"TESTCASE"."CALL_STACKS"    : 123   "TESTCASE"."CALL_STACKS"      : 123
"TESTCASE"."CLASSES"        : 401   "TESTCASE"."CLASSES"          : 401
"TESTCASE"."DESTINATION"    : 513   "TESTCASE"."DESTINATION"      : 513
			

z/OS에 설치된 DB2를 위한 추가 단계

z/OS에서의 UNLOAD 프로세스

  • 이 도구를 사용하려면 USS를 실행해야 하지만 z/OS에서 DB2 LOAD는 HFS 파일을 사용하여 데이터를 로드할 수 없다. 바로 이 점 때문에 z/OS에서는 Unix System Services의 JZOS 툴킷을 사용하여 PS 데이터 세트를 작성해야 한다. 하지만 DB2 LOAD는 USS(또는 HFS) 파일을 사용하여 CLOBS/BLOBS를 DB2에 로드할 수 있다. 따라서 z/OS에서 PS 데이터 세트를 작성하여 소스 데이터베이스의 데이터를 z/OS로 이동한 후 Unix System Services HFS 파일을 사용하여 모든 BLOBS/CLOBS를 유지할 수 있다.
  • USS에서는 LOAD 문을 실행할 수 없으므로 SYSPROC.DSNUTILS 저장 프로시저를 사용하여 LOAD, CHECK DATA 및 RUN STATS를 실행한다.
  • PS 데이터 세트를 작성하려면 각 테이블에 PS 데이터 세트를 할당해야 한다. 하지만 테이블의 크기를 모르기 때문에 고정된 크기를 미리 할당할 수 없다는 문제가 발생한다. 결국 z/OS에서 많은 용량의 공간이 낭비될 수 있다. 이러한 공간 문제를 해결하기 위해 알고리즘을 사용하여 크기를 할당한다.

z/OS에서 이 도구를 사용하여 소스 데이터베이스에서 DB2 for z/OS로 데이터를 이동할 수 있지만 다음과 같은 추가 단계를 수행해야 한다.

  1. IBM 링크에서 JZOS를 다운로드하고 설치한다.
  2. 이 zip 파일에는 jzos.pax라는 파일이 있다. Unix System Services를 사용하여 FTP를 통해 2진 모드로 이 파일을 JZOS가 설치된 디렉토리에 저장한다.
  3. .pax 파일을 저장한 디렉토리로 변경한다.
  4. pax -rvf 명령을 실행한다. 이제 현재 작업 디렉토리에 jzos라는 서브디렉토리가 생성된다. 이 서브디렉토리는 <JZOS_HOME>으로 참조된다.
  5. 사용자의 홈 디렉토리에서 아래 제공된 템플리트를 기반으로 하는 .profile 파일을 작성한다. 그리고 이 파일의 내용은 사용자의 z/OS DB2 설치에 맞게 변경해야 한다.
    export JZOS_HOME=$HOME/jzos
    export JAVA_PATH=/usr/lpp/java/J1.5
    export PATH=$JAVA_HOME/bin:$PATH		        
    export CLPHOME=/usr/lpp/db2/db2910/db2910_base/lib/IBM                  
    export CLASSPATH=$CLASSPATH:/usr/lpp/db2/db2910/db2910_base/lib/clp.jar 
    export CLPPROPERTIESFILE=$HOME/clp.properties                           
    export LIBPATH=$LIBPATH:<JZOS_HOME<                               
    alias db2="java com.ibm.db2.clp.db2"
    		      

  6. 사용자의 환경에 맞게 CLPHOME 및 CLASSPATH를 수정해야 한다. <JZOS_HOME>을 해당 디렉토리로 변경한다.
  7. 사용자의 홈 디렉토리에서 아래 제공된 템플리트를 기반으로 하는 clp.properties 파일을 작성한다.
    #Specify the value as ON/OFF or leave them blank
    DisplaySQLCA=ON
    AutoCommit=ON
    InputFilename=
    OutputFilename=
    DisplayOutput=
    StopOnError=
    TerminationChar=
    Echo=
    StripHeaders=
    MaxLinesFromSelect=
    MaxColumnWidth=20                                             
    IsolationLevel=                                               
    <SUBSYSTEM_NAME>=<IP address>:<port number>/<location name>,USER,PASSWD
    
    마지막 행의 항목을 적절하게 변경한다.
    		      

  8. chmod 777 <JZOS_HOME>/*.so 명령을 실행한다.
  9. IBMDataMovementTool.sh -console 명령을 실행하고 대화식 사용자 응답을 통해 매개변수의 값을 지정한다.
  10. IBMExtract.properties, geninput 및 unload 스크립트가 자동으로 작성된다.
  11. IBMExtract.properties의 zdb2tableseries 매개변수는 PS 데이터 세트 시리즈의 이름을 지정하는 데 사용된다. 예를 들어, TSO ID가 DNET770이고 이 매개변수를 R로 설정한 경우 첫 번째 테이블용으로 작성된 PS 데이터 세트의 이름은 DNET777.TBLDATA.R0000001이 된다.
  12. znocopypend 매개변수는 NOCOPYPEND 매개변수를 LOAD 문에 추가하는 데 사용된다. COPY 보류 모드에서는 테이블이 저장되지 않기 때문에 z/OS DB2 DBA는 이 매개변수를 사용하여 백업을 수행할 수 있다.
  13. zoveralloc 매개변수는 파일 할당 요청에 대한 실제 할당 비율을 지정한다. 값 1은 요청된 용량을 그대로 할당한다는 의미이다. 이 값은 여유 저장 공간이 충분한 환경에서 올바르게 작동한다. 실제 환경에서는 15/11(1.3636)이 적합한 추정치이다. 먼저 1.3636(15/11)부터 시작한 후 점차로 값을 낮추다가 파일 쓰기 오류가 발생하면 값을 조금 올리는 방식으로 이 값을 설정하는 것이 좋다. SMS 매개변수 REDUCE SPACE UP TO의 값을 알고 있을 경우에는 1 / (1 - (X/100))라는 식을 적용하여 overAlloc의 완벽한 값을 계산할 수 있어야 한다. 이 식에서 X는 0부터 100 사이의 정수로 제공되는 REDUCE SPACE UP TO의 값이다. REDUCE SPACE UP TO는 백분율을 나타낸다.
  14. zsecondary 매개변수는 고정 보조 범위를 할당하는 데 사용된다. 값 0부터 시작하여 조금씩 올리다가 파일 오류가 발생하면 값을 조금 낮춘다.
  15. geninput 스크립트를 실행하여 unload 프로세스에 사용할 입력 파일을 작성한다.
  16. unload 스크립트를 실행하여 DDL 및 DATA를 생성한다.
  17. z/OS DB2에서 생성된 스크립트를 실행하여 DDL을 작성하고 데이터를 로드한다.
  18. 데이터 세트를 삭제하지 않은 경우 DSNUTILS가 실패한다. 다음 java 프로그램을 실행하여 중간 데이터 세트를 삭제할 수 있다.
    java -cp /u/dnet770/migr/IBMDataMovementTool.jar:$JZOS_HOME/ibmjzos.jar \
    -Djava.ext.dirs=${JZOS_HOME}:${JAVA_HOME}/lib/ext ibm.Cleanup		        
    		      

  19. 데이터가 z/OS의 DB2 테이블로 로드된 후에는 데이터 세트를 삭제해야 한다. 다음 java 프로그램을 사용하여 해당 데이터 세트를 정리 작업의 일부로 삭제한다.

    다음과 같은 jd 스크립트를 작성한다.

    JZOS_HOME=$HOME/jzos
    JAVA_HOME=/usr/lpp/java/J1.5
    CLASSPATH=$HOME/migr/IBMDataMovementTool.jar:$JZOS_HOME/ibmjzos.jar
    LIBPATH=$LIBPATH:$JZOS_HOME
    
    $JAVA_HOME/bin/java -cp $CLASSPATH \
    -Djava.ext.dirs=${JZOS_HOME}:${JAVA_HOME}/lib/ext ibm.Jd $1		        
    		      

    파일 권한을 755로 변경한 후 파일을 실행한다. 그러면 다음과 같은 출력이 표시된다.

    DNET770:/u/dnet770/migr: >./jd
    USAGE: ibm.Jd <filter_key>
    USAGE: ibm.Jd "DNET770.TBLDATA.**"
    USAGE: ibm.Jd "DNET770.TBLDATA.**.CERR"
    USAGE: ibm.Jd "DNET770.TBLDATA.**.LERR"
    USAGE: ibm.Jd "DNET770.TBLDATA.**.DISC"		          
    		      

    "DNET770.TBLDATA" 아래에 있는 모든 데이터 세트를 삭제하려면 다음 명령을 사용한다.

    DNET770:/u/dnet770/migr: >./jd "DNET770.TBLDATA.**"		        
    		      

대용량 데이터 이동 계획 세우기

이 도구의 장점은 대용량 데이터를 효율적으로 이동할 수 있다는 것이다. 이 도구를 사용하면 좋은 계획과 절차에 따라 4TB의 Oracle 데이터를 단 3일만에 이동할 수 있다. 이 기사에서는 주어진 시간 내에서 대용량 데이터 이동 작업을 수행하는 데 도움이 되는 팁과 기술에 대해 설명한다.

하드웨어 요구 사항 및 용량 계획

하드웨어 요구 사항 및 용량 계획은 이 기사의 범위를 벗어난 주제이기는 하지만 대용량 데이터 이동 작업의 소요 시간을 추정할 때 고려해야 하는 중요한 고려 사항이 있다.

  • 소스 및 DB2 서버 사이에 1GBPS 이상의 속도를 지원하는 좋은 네트워크 연결이 있어야 한다. 데이터 이동 작업을 완료하는 데 소요되는 시간은 네트워크 대역폭의 영향을 많이 받는다.
  • 소스 서버에 여러 개의 CPU가 있으면 여러 테이블을 병렬로 언로드할 수 있다. 데이터베이스 크기가 1TB 이상이라면 소스 서버에 최소 4개의 CPU가 있어야 한다.
  • DB2 서버의 CPU 수에 따라 LOAD 프로세스의 속도가 달라진다. 대체적으로 총 소요 시간의 1/4에서 1/3 정도가 데이터를 로드하는 데 사용되고 나머지 시간이 언로드 프로세스를 수행하는 데 사용된다.
  • DB2 데이터베이스 레이아웃에 대한 계획을 미리 세운다. IBM에서 제공하는 DB2 관련 베스트 프랙티스 문서를 통해 유용한 정보를 확인할 수 있다.

팁 및 기술

  • 도구를 명령행 모드로 사용하는 방법을 익힌다. GUI를 사용하여 데이터 이동 스크립트(geninput 및 unload)를 생성한 후 명령행에서 unload 스크립트를 실행하여 데이터 언로드를 실제로 수행한다.
  • unload 스크립트에서 GENDDL=trueUNLOAD=false를 설정하여 소스에서 DDL만 추출한다. 생성된 DDL을 사용하여 테이블 공간과 테이블 맵핑에 대한 계획을 세운다. unload 스크립트의 -DOUTPUT_DIR 매개변수를 통해 대상 디렉토리를 지정하여 생성된 DDL과 데이터를 서로 다른 출력 디렉토리에 저장한다. 최종 데이터 이동 전에 DDL을 생성해야 한다.
  • geninput 스크립트를 사용하여 소스에서 DB2로 이동할 테이블 목록을 생성한다. geninput 스크립트의 SRCSCHEMA=ALLDSTSCHEMA=ALL 매개변수를 사용하여 모든 테이블이 포함된 목록을 생성한다. 이 파일을 편집하여 원하지 않는 테이블을 제거한 후 전체 파일을 여러 개의 입력 파일로 나눈다. 이렇게 하면 지그재그 형식으로 이동 작업이 진행되면서 소스에서 언로드하는 과정과 대상에 로드하는 과정이 병렬로 수행된다.
  • geninput 스크립트에서 생성된 테이블 입력 파일을 여러 개의 파일로 나눈 후에는 unload 스크립트를 각 입력 파일에 복사하고 입력 파일의 이름을 변경한 다음 각 언로드 프로세스에 대해 각기 다른 디렉토리를 지정한다. 예를 들어, 10개의 unload 스크립트를 작성한 후 스크립트별로 500개의 테이블을 언로드하면 총 5000개의 테이블을 언로드할 수 있다.
  • DDL과 DATA에 대해 별개의 단계를 수행해야 한다. 대용량 데이터를 이동할 경우에는 이러한 두 작업을 단일 단계로 합쳐서 수행하면 안된다.
  • 이 도구에서는 소스 테이블의 데이터를 병렬로 언로드하는 작업을 제어하기 위해 unload 스크립트의 NUM_THREADS 매개변수를 사용한다. 이 매개변수의 기본값은 5이며 소스 서버의 CPU 사용률이 90% 정도되는 수준까지 값을 올릴 수 있다.
  • 입력 테이블 파일에 나열된 테이블에 유의해야 한다. geninput 스크립트에는 특정 순서에 따라 테이블을 저장하는 기능이 없으므로 사용자가 직접 언로드 시간을 최소화할 수 있는 방식으로 테이블을 정렬해야 한다. 입력 파일에 나열된 테이블은 라운드 로빈 방식으로 스레드 풀에 제공된다. 따라서 다른 모든 스레드에서 언로드 프로세스가 완료되었음에도 불구하고 한 스레드만 계속 실행되고 있는 상황이 발생할 수 있다. 모든 스레드가 비슷한 수준으로 실행될 수 있도록 하려면 테이블의 입력 파일을 행 수를 기준으로 오름차순으로 정렬한다.
  • 이렇게 하더라도 대부분의 파일이 언로드된 이후 몇몇 스레드가 매우 큰 테이블을 계속 언로드하는 경우가 발생할 수 있다. 이 경우 입력 파일에서 WHERE 절을 적절히 지정하여 같은 테이블을 여러 스레드로 언로드할 수 있다. 예를 들면, 다음과 같다.
    "ACCOUNT"."T1":SELECT * FROM "ACCOUNT"."T1" WHERE id between 1 and 1000000
    "ACCOUNT"."T1":SELECT * FROM "ACCOUNT"."T1" WHERE id between 1000001 and 2000000
    "ACCOUNT"."T1":SELECT * FROM "ACCOUNT"."T1" WHERE id between 2000001 and 3000000
    "ACCOUNT"."T1":SELECT * FROM "ACCOUNT"."T1" WHERE id between 3000001 and 4000000
    		                

    WHERE 절에 올바른 키를 사용해야 하며 이 키는 주로 기본 키 또는 고유 인덱스여야 한다. 이렇게 하면 도구에서 생성된 여러 파일의 데이터를 로드할 수 있도록 적절한 DB2 LOAD 스크립트가 자동으로 작성된다. 같은 테이블을 여러 스레드로 언로드하기 위해 필요한 설정은 위에서 설명한 대로 다양한 WHERE 절을 추가하는 것뿐이다.

  • 언로드 프로세스를 여러 단계로 나누고 나면 일괄 처리를 통한 데이터 언로드 작업이 완료된 즉시 DB2에 데이터를 저장하는 작업을 시작할 수 있다. 여기에서 핵심은 각 언로드 일괄 처리에 대한 개별 출력 디렉토리이다. 이 출력 디렉토리에는 데이터를 DB2에 저장하는 데 필요한 모든 파일이 생성된다. DDL의 경우, 생성된 db2ddl 스크립트를 사용하여 테이블 정의를 작성한다. 데이터의 경우, db2load 스크립트를 사용하여 데이터를 DB2에 로드한다. DDL과 데이터를 한 단계에서 결합한 경우 스크립트 이름은 db2gen이다.
  • 쉘 스크립트로 전체 프로세스를 자동화하여 언로드 및 로드 프로세스를 동기화한다. Oracle 또는 기타 데이터베이스에서 DB2로 대용량 데이터를 이동하는 각각의 모든 작업은 고유하다. 사용자는 이러한 모든 작업에 대한 자동화 방법을 결정하는 검증된 스킬을 갖추게 된다. tee 명령을 사용하여 작업의 출력을 파일에 저장한다. 이렇게 하면 진행 상태를 추적할 수 있으며 출력이 로그 파일에 저장된다.

모의 테스트 실행

자동화가 제대로 수행되었는지 테스트하고 소스에서 언로드하고 DB2에 로드하는 작업을 번갈아 수행하는 계획 방식을 검증하기 위한 모의 데이터 이동은 되도록 수행하는 것이 좋다. 이러한 작업을 올바른 순서로 실행하기 위해 쉘 스크립트를 작성하는 단계에서만 사용자 정의 작업이 수행된다. 다음 단계를 수행하여 모의 테스트를 실행한다.

  1. 데이터 이동 스크립트 및 자동화 쉘 스크립트를 모의 디렉토리에 복사한다.
  2. 소수의 대용량 테이블을 소수의 스레드로 언로드하여 시간을 측정한 후 측정 결과를 바탕으로 데이터 이동을 적절히 조정한다.
  3. WHERE 절을 추가하여 데이터 이동을 테스트할 행 수를 제한한다. 예를 들어, ROWNUM 절을 추가하여 Oracle의 행 수를 제한할 수 있으며 SQL Server의 경우 TOP 절을 사용할 수 있다.
    "ACCOUNT"."T1":SELECT * FROM "ACCOUNT"."T1" WHERE rownum < 100
    "ACCOUNT"."T2":SELECT * FROM "ACCOUNT"."T2" WHERE rownum < 100
    "ACCOUNT"."T3":SELECT * FROM "ACCOUNT"."T3" WHERE rownum < 100
    "ACCOUNT"."T4":SELECT * FROM "ACCOUNT"."T4" WHERE rownum < 100
    		            

  4. 스크립트를 실행한 결과를 바탕으로 필요한 변경 사항을 적용한 후 최종 실행을 준비한다.

최종 실행

  1. DDL은 이미 추출된 상태이며 테이블과 테이블 공간 간의 맵핑에 필요한 변경 사항도 수동으로 적용했다.
  2. 데이터 이동을 수행하기 위한 중단 시간을 결정한다.
  3. Oracle 데이터베이스가 소스일 경우에는 오픈 커서 설정을 약 10000개로 지정한다.
  4. 로그 파일에서 출력을 확인한다.

대량 데이터 이동 시에는 계획을 세우고 능숙하게 이를 처리하며 작업을 자동화하는 능력이 오히려 중요하다. 이 도구는 대용량 이동에 필요한 모든 기능을 제공한다. 이 기사에서는 이 작은 도구를 사용해서 대용량 데이터베이스를 소스에서 DB2로 이동했다.

도구에 대한 지원

IBM 지원 조직에서는 이 도구를 지원하지 않는다. 하지만 지원 포럼을 통해 버그, 문제점, 제안 사항, 개선 사항 요청 등을 보고할 수 있다.

자주 묻는 질문

자주 묻는 질문
질문:이 도구를 사용하기 위해 소스 데이터베이스 서버에 다른 프로그램을 설치해야 하는가?
답변:이 도구를 사용하기 위해 소스 데이터베이스에 설치해야 하는 프로그램은 없다.
질문:이 도구는 어느 플랫폼에서 지원되는가?
답변:Windows, z/OS, AIX, Linux, UNIX, HP-UX, Solaris, Mac을 비롯한 JVM이 설치된 모든 플랫폼에서 지원된다.
질문: 이 도구를 Linux/Unix 플랫폼의 보안 쉘 창에서 실행하는 동안 명령행 쉘에서만 메시지를 볼 수 있었고 GUI는 볼 수 없었다. 도구가 중지된 것처럼 보인다.
답변: DISPLAY 설정에 따라 GUI 창이 표시 가능 서버에 열려 있을 수 있다. 이 경우에는 DISPLAY 설정을 올바르게 내보내야 한다. 자세한 정보는 Unix 시스템 관리자에게 문의한다.
질문: PostgreSQL의 데이터를 이동하려는데 도구에 연결된 PostgreSQL JDBC 드라이버를 찾을 수 없다.
답변: 라이센스 고려 사항으로 인해 JDBC 드라이버는 도구와 함께 제공되지 않으므로 라이센스를 받은 소프트웨어를 이용해서 해당 데이터베이스의 JDBC 드라이버를 구해야 한다.
질문: 이 도구를 실행해서 Oracle 7 및 8i 데이터베이스의 데이터를 이동하려는데 Oracle 9g, 10g 또는 11g JDBC 드라이버를 사용해도 되는가?
답변: 이론적으로는 사용해도 된다. 예외가 발생할 경우에는 classes12.jar 또는 classes111.jar과 같은 기존 JDBC 드라이버로 변경하는 것이 좋다.
질문:이 도구에서는 어떤 데이터베이스에 연결할 수 있는가?
답변:Type-IV JDBC 드라이버가 설치된 모든 데이터베이스에 연결할 수 있다. 따라서 MySQL, PostgreSQL, Ingres, SQL Server, Sybase, Oracle, DB2 등에 연결할 수 있다. ODBC-JDBC 커넥터가 설치된 데이터베이스에도 연결할 수 있으므로 Access 데이터베이스의 데이터도 이동할 수 있다.
질문:이 도구를 실행하는 데 필요한 Java의 버전은 무엇인가?
답변:이 도구를 실행하려면 Java 1.5 이상이 있어야 한다. 왜냐하면 도구의 GUI 부분에서 기본적으로 Java 1.5를 사용하고 있기 때문이다. Java 1.4.2에 대한 지원이 필요한 경우 의견을 남겨 주면 필자가 Java 1.4.2용 도구를 컴파일해서 제공할 수 있다. 그러나 이 경우에는 GUI를 실행해서 데이터 이동 드라이버 스크립트를 작성할 수 없다는 점에 유의해야 한다.

다음 명령을 실행하여 Java의 버전을 확인할 수 있다.


$ java -version
C:\>java -version
질문:도구의 버전은 어떻게 확인할 수 있는가?
답변:Windows의 경우 IBMDataMovementTool -version을 실행하고 Linux/UNIX의 경우 ./IBMDataMovementTool.sh -version을 실행한다.
질문:도구를 실행하는 중에 "Unsupported major.minor version 49.0" 또는 "(.:15077): Gtk-WARNING **: cannot open display:"라는 오류가 발생했다.
답변:이 오류는 Java의 버전이 1.5보다 낮을 때 발생한다. 1.4.2보다 높은 버전의 Java를 설치하면 이 문제를 해결할 수 있다. IBM Java를 설치하기를 권장한다.
질문:이 도구를 실행하기 위해 필요한 소스 및 DB2 데이터베이스 서버의 정보는 무엇인가?
답변:소스 및 DB2 데이터베이스의 IP 주소, 포트 번호, 데이터베이스 이름, 사용자 ID 및 암호를 알아야 하며 소스 데이터베이스의 사용자 ID에는 DB2 데이터베이스에 대한 DBA 권한 및 SYSADM 권한이 있어야 한다.
질문:Windows 워크스테이션에서 이 도구를 실행하고 있는데 실행 속도가 매우 느리다.
답변:IBMDataMovementTool.cmd 또는 IBMDataMovementTool.sh 명령 스크립트에서는 JVM에 대한 -Xmx 스위치를 사용하여 기본적으로 990MB의 메모리를 이 도구에 할당한다. 워크스테이션의 메모리 용량이 낮은 경우에는 도구에 할당되는 메모리 용량을 낮춘다.
질문:SQL Server에서 DB2로 데이터 이동을 수행 중이며 DB2에서 TEXT 필드를 VARCHAR로 설정하려고 한다.
답변:IBMExtract.properties 파일에서 mssqltexttoclob=true를 지정한다.
질문:Sybase에서 DB2로 데이터를 이동하는데 T-SQL 프로시저가 DB2로 옮겨지지 않는다.
답변:이 도구에서는 DDL과 DATA만 이동할 수 있다. 프로시저/트리거를 이동하려면 MTK를 사용해야 한다.
질문:Sybase에서 DB2로 DDL을 이동하고 있으며 Sybase 오브젝트가 파일에 있다. DDL 파일을 데이터 소스로 지정하는 방법을 찾을 수 없다.
답변:이 도구는 고속으로 데이터를 이동하기 위해 사용되므로 DDL 파일을 데이터베이스에서 DB2로 변환하는 기능은 제공되지 않는다. 하지만 IBM InfoSphere Data Architect를 사용하여 DDL을 소스 데이터베이스에서 대상 데이터베이스로 변환할 수 있다.
질문:MS Access에서 DB2로 데이터를 이동하는 중에 생성된 DDL에서 모든 인덱스가 보이지 않는다.
답변:MS Access 데이터베이스는 기본적인 ODBC-JDBC 커넥터를 사용하여 연결한다. 따라서 전체 DDL 세트를 가져오려면 다른 상업용 JDBC 드라이버가 필요하다. MS Access용 HXTT JDBC 드라이버를 사용해볼 수 있다. HXTT 드라이버를 사용할 경우에는 생성된 unload 스크립트에서 access 대신 DBVENDOR=hxtt를 지정해야 한다.
질문:이 도구를 사용하여 Sybase에서 DB2로 데이터를 이동하는 중에 매우 많은 오류가 발생한다.
답변:이 문제는 Sybase 데이터베이스에서 필수 JDBC 기능이 지원되지 않을 때 발생한다. Sybase DBA에게 문의하여 Sybase 데이터베이스에 올바른 JDBC 저장 프로시저가 설치되었는지 확인한다.
질문:MySQL에서 DB2로 데이터를 이동하는 중에 메모리 부족 오류가 발생한다.
답변:생성된 unload 스크립트에서 FETCHSIZE=nnn의 값을 변경한 후 명령행에서 데이터 이동을 실행한다. GUI 도구를 사용하면 unload 스크립트가 겹쳐써진다.
질문:Oracle에서 DB2로 데이터를 이동하는 중에 데이터 이동을 위해 3개의 jar 파일이 필요하다는 메시지가 표시된다. 데이터 이동을 위해서는 JDBC 드라이버만 필요한 것으로 알고 있는데 추가 jar 파일이 필요한 이유는 무엇인가?
답변:추가 JAR 파일은 주로 Oracle XML 데이터 형식에 필요하다. Oracle 설치 디렉토리에서 해당 파일을 가져와야 한다.
질문:Oracle 데이터 형식인 CLOB를 DB2의 DBCLOB로 변경하려고 한다.
답변:IBMExtract.properties 파일에서 DBCLOB=true를 설정한다.
질문:이 도구를 사용하여 Oracle에서 DB2로 데이터를 이동하는 중에 테이블을 찾을 수 없다는 Oracle SQL 오류가 많이 발생한다.
답변:Oracle에 연결 중인 사용자 ID에 DBA 및 SELECT_CATALOG_ROLE 권한이 있어야 한다.
질문:NCHAR 및 NVARCHAR2를 DB2의 GRAPHIC 또는 VARGRAPHIC으로 변경하지 않고 싶다. 대신 DB2 데이터베이스를 UTF-8로 작성한 후 NCHAR 및 NVARCHAR2를 CHAR 및 VARCHAR2로 변경하려고 한다.
답변:IBMExtract.properties 파일에서 GRAPHIC=false를 설정한다.
질문:Oracle 데이터베이스에서 V9.7/V9.5 이하 버전의 DB2로 데이터를 이동할 수 있는가?
답변:이동할 수 있다. IBMExtract.properties 파일에서 db2_compatibility=false를 설정한다.
질문:Oracle의 NUMBER(38)를 NUMBER(31)로 변경했다는 메시지가 표시되는 것을 보니 DB2에서는 31자리까지만 지원되는 것으로 보인다. 하지만 이 숫자를 그대로 유지하기 위해 DOUBLE로 변환하려고 한다.
답변:IBMExtract.properties 파일에서 roundDown_31=false를 설정한다.
질문:많은 데이터가 거부되었는데 거부 이유를 분석하기 위해 거부된 데이터를 파일로 저장하려면 어떻게 해야 하는가?
답변:IBMExtract.properties 파일에서 dumpfile=true를 설정한다.
질문:워크스테이션의 데이터를 DB2 서버로 로드하려는 중에 오류가 발생했다. 도구를 서버에서만 실행해야 하는가?
답변:중개 서버를 사용하지 않고 DB2 서버에서 이 도구를 실행하여 소스 데이터베이스의 데이터를 추출하는 것이 좋다. 하지만 이 도구를 중개 서버에서 실행하려는 경우에는 생성된 unload 스크립트에서 REMOTELOAD=TRUE를 지정할 수 있다. 그리고 BLOBS/CLOBS/XML 데이터를 서버에서 사용하려면 DB2 LOAD 유틸리티가 필요하다는 점에 유의해야 한다. 해당 디렉토리를 동일한 이름 지정 규칙에 따라 대상 DB2 서버에 마운트해야 한다.
질문:SSH 쉘을 통해서만 DB2 서버에 로그인할 수 있으며 X-Windows를 DB2 서버에서 실행할 수 없는 상황이다. 이 GUI 도구를 실행하여 DDL 및 DATA를 이동하려면 어떻게 해야 하는가?
답변:SSH 쉘에서 IBMDataMovementTool.sh를 실행한다. 만일 그래픽이 지원되지 않으면 자동으로 명령행 입력으로 전환된다. 자동으로 전환되지 않을 경우에는 -console 옵션을 IBMDataMovementTool.sh 명령에 지정한다. 그러면 도구가 대화식 명령행 모드로 강제 실행된다. 명령행 모드는 입력을 받아서 데이터 이동에 필요한 스크립트를 작성할 수 있는 환경 중 하나이며 GUI 또한 스크립트를 생성할 수 있는 환경에 불과하다. 실제 작업은 스크립트를 통해서만 수행된다.
질문:데이터베이스의 이름을 요구한 이후에 스크립트를 통해 DB2 데이터베이스를 작성하지 않는 이유는 무엇인가?
답변:대부분의 DBA는 스토리지 경로 정보에 따라 데이터베이스를 작성하기를 좋아한다. 하지만 이 도구는 필요한 테이블 공간만을 작성하며 DB2가 테이블을 올바른 테이블 공간에 자동으로 저장한다. IBM의 베스트 프랙티스 문서를 읽고 주의를 기울여서 데이터베이스에 대한 계획을 세워야 한다. 32K 페이지 크기를 기본값으로 사용하는 DB2 데이터베이스를 작성하는 것이 좋다.

감사의 인사

전세계에 있는 많은 IBM 직원들이 이 도구에 대해 소중한 의견을 보내주었다. 이 분들의 의견이 없었다면 지금과 같은 모습의 도구를 볼 수 없었을 것이다. 소중한 도움, 의견, 제안 및 지침을 제공해 주신 다음 분들에게 감사의 뜻을 표한다.

  • Jason A Arnold
  • Serge Rielau
  • Marina Greenstein
  • Maria N Schwenger
  • Patrick Dantressangle
  • Sam Lightstome
  • Barry Faust
  • Vince Lee
  • Connie Tsui
  • Raanon Reutlinger
  • Antonio Maranhao
  • Max Petrenko
  • Kenneth Chen
  • Masafumi Otsuki
  • Neal Finkelstein

면책사항

본 항목에는 도구가 포함되어 있습니다. IBM은 귀하("라이센스 사용자")에게 본 도구를 사용할 수 있는 비독점적이고 로열티를 부과하지 않는 라이센스를 부여합니다. 그러나 본 도구는 상품성, 특정 목적에의 적합성 및 타인의 권리 비침해에 대한 묵시적 보증을 포함하여 어떠한 종류의 명시적 또는 묵시적 보증 없이 "현상태대로" 제공됩니다. IBM 및 IBM의 라이센스 제공자는 귀하가 본 소프트웨어를 사용함으로써 라이센스 사용자에게 발생한 손해에 대해 어떠한 책임도 지지 않습니다. IBM 및 IBM의 라이센스 제공자는 본 소프트웨어의 사용 또는 비사용으로 인한 모든 책임 법리에 따른 직접 손해, 간접 손해, 특별 손해, 징벌적 손해, 결과적 손해 또는 데이터 분실, 이익 손실에 대해 이러한 손해의 발생 가능성을 통지받은 경우라도 일체 책임을 지지 않습니다.





위로


다운로드 하십시오

설명이름크기다운로드 방식
IBM Data Movement Tool1IBMDataMovementTool.zip900KBHTTP
다운로드 방식에 대한 정보

Note

  1. 이 도구의 새 빌드가 IBM 다운로드 사이트에 자주 업로드되고 있으므로 데이터를 이동할 때 최신 빌드를 다운로드하는 것이 좋다. Help>About 메뉴 옵션이나 IBMDataMovementTool -version 명령을 사용하여 빌드 번호를 확인할 수 있다. 이 도구에서는 JGoodies Forms 1.2.1, JGoodies Look 2.2.2 및 JSyntaxPane 0.9.4 패키지를 GUI 인터페이스로 사용한다.


참고자료

교육

제품 및 기술 얻기
  • 커뮤니티를 위한 무료 버전의 DB2 Express 데이터베이스 서버인 DB2 Express-C 9.7을 다운로드할 수 있다.

  • DB2 9.7 for Linux, UNIX, and Windows의 무료 시험판을 다운로드할 수 있다.

  • IBM 시험판 제품을 다운로드하여 DB2, Lotus®, Rational®, Tivoli® 및 WebSphere®의 애플리케이션 개발 도구 및 미들웨어 제품을 사용하자.

토론


필자소개

Vikram S Khatri는 IBM에서 Sales and Distribution Division의 DB2 Migration 팀 소속으로 활동하고 있다. IT 분야에서 23년의 경력을 가지고 있는 그는 DB2에 대한 비DB2 애플리케이션 인에이블먼트 전문가이며 복잡한 데이터베이스 마이그레이션 프로젝트 및 데이터베이스 성능 벤치마크 테스트를 통해 DB2 기술 영업 조직을 지원하고 있다.




기사에 대한 평가


보다 나은 서비스를 제공하기 위함이오니 잠시 짬을 내어 이 양식을 제출하여 주십시오.



 


 


 


이 문서 북마킹 하기

mar.gar.in mar.gar.in naver naver eolin eolin del.icio.us del.icio.us





위로


IBM, AIX, DB2, z/OS 및 DB2는 미국 또는 기타 국가에서 사용되는 IBM Corporation의 상표이다. Java 및 모든 Java 관련 상표는 미국 또는 기타 국가에서 사용되는 Sun Microsystems, Inc.의 상표이다. Linux는 미국 또는 기타 국가에서 사용되는 Linus Torvalds의 상표이다. Microsoft, Windows, Windows NT 및 Windows 로고는 미국 또는 기타 국가에서 사용되는 Microsoft Corporation의 상표이다. UNIX는 미국 또는 기타 국가에서 사용되는 The Open Group의 등록 상표이다. Oracle은 미국 또는 기타 국가에서 사용되는 Oracle Corporation의 상표이다. 기타 회사, 제품 및 서비스 이름은 해당 회사의 상표 또는 서비스표이다. 기타 회사, 제품, 및 서비스명은 다른 상표나 서비스 마크일 수 있습니다.

developerWorks 콘텐트를 다른 사이트에 전재하기:
developerWorks 콘텐트에 대한 저작권은 IBM에 있습니다. IBM의 서면 허가나 원본 저자의 허락이 없이는 전재를 금합니다. 저희 콘텐트를 전재하시려면 IBM developerWorks 담당자 에게 문의하십시오.
    IBM 소개 개인정보 보호정책 문의