DB2 스키마 변환(DB2ToSQL)

DB2에 연결하고 SQL Server에 연결하고 프로젝트 및 데이터 매핑 옵션을 설정한 후 DB2 데이터베이스 개체를 SQL Server 데이터베이스 개체로 변환할 수 있습니다.

변환 프로세스

데이터베이스 개체 변환은 DB2에서 개체 정의를 가져와서 유사한 SQL Server 개체로 변환한 다음 이 정보를 SSMA 메타데이터로 로드합니다. 정보를 SQL Server 인스턴스에 로드하지는 않습니다. 그런 다음 SQL Server 메타데이터 탐색기를 사용하여 개체 및 해당 속성을 볼 수 있습니다.

변환하는 동안 SSMA는 출력 메시지를 출력 창에 출력하고 오류 메시지를 오류 목록 창에 출력합니다. 출력 및 오류 정보를 사용하여 원하는 변환 결과를 얻기 위해 DB2 데이터베이스 또는 변환 프로세스를 수정해야 하는지 여부를 결정합니다.

변환 옵션 설정

개체를 변환하기 전에 프로젝트 설정 대화 상자에서 프로젝트 변환 옵션을 검토합니다. 이 대화 상자를 사용하여 SSMA가 함수 및 전역 변수를 변환하는 방법을 설정할 수 있습니다. 자세한 내용은 프로젝트 설정(변환)(DB2ToSQL)을 참조하세요.

변환 결과

다음 표에서는 변환되는 DB2 개체와 결과 SQL Server 개체를 보여줍니다.

DB2 개체 결과 SQL Server 개체
데이터 형식 SSMA는 아래에 나열된 다음을 제외한 모든 형식을 매핑합니다.

CLOB: 이 형식으로 작업하기 위한 일부 네이티브 함수는 지원되지 않습니다(예: CLOB_EMPTY()).

BLOB: 이 형식으로 작업하기 위한 일부 네이티브 함수는 지원되지 않습니다(예: BLOB_EMPTY()).

DBLOB: 이 형식으로 작업하기 위한 일부 네이티브 함수는 지원되지 않습니다(예: DBLOB_EMPTY()).
사용자 정의 형식 SSMA는 다음 사용자 정의를 매핑합니다.

고유 형식

구조적 형식

SQL PL 데이터 형식 - 참고: 약한 커서 형식은 지원되지 않습니다.
특수 레지스터 SSMA는 아래에 나열된 맵만 등록합니다.

현재 타임스탬프

현재 날짜

현재 시간

현재 표준 시간대

현재 사용자

SESSION_USER 및 USER

SYSTEM_USER

현재 CLIENT_APPLNAME

현재 CLIENT_WRKSTNNAME

현재 잠금 시간 제한

현재 스키마

현재 서버

현재 격리

다른 특수 레지스터는 SQL Server 의미 체계에 매핑되지 않습니다.
CREATE TABLE SSMA는 다음과 같은 예외를 제외하고 CREATE TABLE을 매핑합니다.

MDC(다차원 클러스터링) 테이블

RCT(범위 클러스터 테이블)

분할된 테이블

분리된 테이블

DATA CAPTURE 절

암시적으로 숨겨진 옵션

VOLATILE 옵션
보기 만들기 SSMA는 'WITH LOCAL CHECK OPTION'을 사용하여 CREATE VIEW를 매핑하지만 다른 옵션은 SQL Server 의미 체계에 매핑되지 않습니다.
CREATE INDEX SSMA는 다음과 같은 예외를 제외하고 CREATE INDEX를 매핑합니다.

XML 인덱스

겹치지 않고 BUSINESS_TIME 옵션

PARTITIONED 절

SPECIFICATION ONLY 옵션

EXTEND USING 옵션

MINPCTUSED 옵션

PAGE SPLIT 옵션
트리거 SSMA는 다음 트리거 의미 체계를 매핑합니다.

AFTER/FOR EACH ROW 트리거

AFTER /FOR EACH STATEMENT 트리거

BEFORE / FOR EACH ROW ANDSTEAD OF / FOR EACH ROW 트리거
시퀀스 매핑됩니다.
SELECT 문 SSMA는 다음과 같은 예외를 제외하고 SELECT를 매핑합니다.

Data-change-table-reference 절 - 부분적으로 매핑되었지만 FINAL 테이블은 지원되지 않습니다.

테이블 참조 절 - 부분적으로 매핑되었지만 only-table-reference, outer-table-reference, analyze_table 식, collection-derived-table, xmltable-expression은 SQL Server 의미 체계에 매핑되지 않습니다.

Period-specification 절 - 매핑되지 않았습니다.

Continue-handler 절 - 매핑되지 않았습니다.

형식화된 상관 관계 절 - 매핑되지 않습니다.

Concurrent-access-resolution 절 - 매핑되지 않음
VALUES 문 매핑됩니다.
INSERT 문 매핑됩니다.
UPDATE 문 SMA는 다음 예외를 사용하여 UPDATE를 매핑합니다.

테이블 참조 절 - ONLY-table-reference가 SQL Server 의미 체계에 매핑되지 않음

Period 절 - 매핑되지 않았습니다.
MERGE 문 SSMA는 다음 예외를 사용하여 MERGE를 매핑합니다.

각 절의 단일 및 다중 발생 - 각 절의 제한된 발생에 대해 SQL Server 의미 체계에 매핑됩니다.

SIGNAL 절 - SQL Server 의미 체계에 매핑되지 않음

혼합 UPDATE 및 DELETE 절 - SQL Server 의미 체계에 매핑되지 않음

Period 절 - SQL Server 의미 체계에 매핑되지 않음
DELETE 문 SSMA는 다음 예외를 제외하고 DELETE를 매핑합니다.

테이블 참조 절 - ONLY-table-reference가 SQL Server 의미 체계에 매핑되지 않음

Period 절 - SQL Server 의미 체계에 매핑되지 않음
격리 수준 및 잠금 유형 매핑됩니다.
프로시저(SQL) 매핑됩니다.
프로시저(외부) 수동 업데이트가 필요합니다.
프로시저(원본) SQL Server 의미 체계에 매핑하지 마세요.
Assignment 문 매핑됩니다.
프로시저에 대한 CALL 문 매핑됩니다.
CASE 문 매핑됩니다.
FOR 문 매핑됩니다.
GOTO 문 매핑됩니다.
IF 문 매핑됩니다.
ITERATE 문 매핑됩니다.
LEAVE 문 매핑됩니다.
LOOP 문 매핑됩니다.
REPEAT 문 매핑됩니다.
RESIGNAL 문 조건은 지원되지 않습니다. 메시지는 선택 사항일 수 있습니다.
RETURN 문 매핑됩니다.
SIGNAL 문 조건은 지원되지 않습니다. 메시지는 선택 사항일 수 있습니다.
WHILE 문 매핑됩니다.
GET DIAGNOSTICS 문 SSMA는 다음 예외를 제외하고 GET DIAGNOSTICS를 매핑합니다.

ROW_COUNT - 매핑됩니다.

DB2_RETURN_STATUS - 매핑됩니다.

MESSAGE_TEXT - 매핑됩니다.

DB2_SQL_NESTING_LEVEL - SQL Server 의미 체계에 매핑되지 않음

DB2_TOKEN_STRING - SQL Server 의미 체계에 매핑되지 않음
커서 SSMA는 다음 예외를 제외하고 CURSORS를 매핑합니다.

ALLOCATE CURSOR 문 - SQL Server 의미 체계에 매핑되지 않음

ASSOCIATE LOCATORS 문 - SQL Server 의미 체계에 매핑되지 않음

DECLARE CURSOR 문 - Returnability 절이 SQL Server 의미 체계에 매핑되지 않음

FETCH 문 - 부분 매핑입니다. 대상 변수만 지원됩니다. SQLDA 설명자가 SQL Server 의미 체계에 매핑되지 않음
Variables 매핑됩니다.
예외, 처리기 및 조건 SSMA는 다음 예외를 사용하여 "예외 처리"를 매핑합니다.

EXIT 처리기 - 매핑됩니다.

UNDO 처리기 - 매핑됩니다.

CONTINUE 처리기 - 매핑되지 않습니다.

조건 - SQL Server 의미 체계에 매핑되지 않습니다.
동적 SQL 매핑되지 않음
별칭 매핑됩니다.
별명 부분 매핑. 기본 개체에 수동 처리가 필요합니다.
동의어 매핑됩니다.
DB2의 표준 함수 SSMA는 SQL Server에서 동등한 함수를 사용할 수 있는 경우 DB2 표준 함수를 매핑합니다.
Authorization 매핑되지 않음
조건자 매핑됩니다.
SELECT INTO 문 매핑되지 않음
VALUES INTO 문 매핑되지 않음
트랜잭션 제어 매핑되지 않음

DB2 데이터베이스 개체 변환

DB2 데이터베이스 개체를 변환하려면 먼저 변환할 개체를 선택한 다음 SSMA에서 변환을 수행하도록 합니다. 변환 중에 출력 메시지를 보려면 [보기] 메뉴에서 [출력]을 선택합니다.

DB2 개체를 SQL Server 구문으로 변환하려면

  1. DB2 메타데이터 탐색기에서 DB2 서버를 확장한 다음 스키마를 확장 합니다.

  2. 변환할 개체를 선택합니다.

    • 모든 스키마를 변환하려면 스키마 옆의 확인란을 선택합니다.

    • 데이터베이스를 변환하거나 생략하려면 스키마 이름 옆에 있는 확인란을 선택합니다.

    • 개체 범주를 변환하거나 생략하려면 스키마를 확장한 다음 범주 옆의 확인란을 선택하거나 선택 취소합니다.

    • 개별 개체를 변환하거나 생략하려면 범주 폴더를 확장한 다음 개체 옆의 확인란을 선택하거나 선택 취소합니다.

  3. 선택한 모든 개체를 변환하려면 스키마를 마우스 오른쪽 단추로 클릭하고 스키마 변환을 선택합니다.

    개체 또는 해당 부모 폴더를 마우스 오른쪽 단추로 클릭한 다음 스키마 변환을 선택하여 개체의 개별 개체 또는 범주를 변환할 수도 있습니다.

변환 문제 보기

일부 DB2 개체는 변환되지 않을 수 있습니다. 요약 변환 보고서를 확인하여 변환 성공률을 확인할 수 있습니다.

요약 보고서를 보려면

  1. DB2 메타데이터 탐색기에서 스키마를 선택합니다.

  2. 오른쪽 창에서 보고서 탭을 선택합니다.

    이 보고서는 평가 또는 변환된 모든 데이터베이스 개체에 대한 요약 평가 보고서를 보여 줍니다. 개별 개체에 대한 요약 보고서를 볼 수도 있습니다.

    • 개별 스키마에 대한 보고서를 보려면 DB2 메타데이터 탐색기에서 스키마를 선택합니다.

    • 개별 개체에 대한 보고서를 보려면 DB2 메타데이터 탐색기에서 개체를 선택합니다. 변환 문제가 있는 개체에는 빨간색 오류 아이콘이 있습니다.

변환에 실패한 개체의 경우 변환 실패를 초래한 구문을 볼 수 있습니다.

개별 변환 문제를 보려면

  1. DB2 메타데이터 탐색기에서 스키마를 확장 합니다.

  2. 빨간색 오류 아이콘을 표시하는 스키마를 확장합니다.

  3. 스키마 아래에서 빨간색 오류 아이콘이 있는 폴더를 확장합니다.

  4. 빨간색 오류 아이콘이 있는 개체를 선택합니다.

  5. 오른쪽 창에서 보고서 탭을 클릭합니다.

  6. 보고서 탭의 맨 위에는 드롭다운 목록이 있습니다. 목록에 통계가 표시되면 선택 영역을 원본으로 변경합니다.

    SSMA는 코드 바로 위에 소스 코드와 여러 단추를 표시합니다.

  7. 다음 문제 단추를 클릭합니다. 오른쪽을 가리키는 화살표가 있는 빨간색 오류 아이콘입니다.

    SSMA는 현재 개체에서 찾은 첫 번째 문제가 있는 소스 코드를 강조 표시합니다.

변환할 수 없는 각 항목에 대해 해당 개체로 수행할 작업을 결정해야 합니다.

  • SQL 탭에서 프로시저에 대한 소스 코드를 수정할 수 있습니다.

  • DB2 데이터베이스에서 개체를 수정하여 문제가 있는 코드를 제거하거나 수정할 수 있습니다. 업데이트된 코드를 SSMA에 로드하려면 메타데이터를 업데이트해야 합니다. 자세한 내용은 DB2 데이터베이스에 연결(DB2ToSQL)을 참조하세요.

  • 마이그레이션에서 개체를 제외할 수 있습니다. SQL Server 메타데이터 탐색기 및 DB2 메타데이터 탐색기에서 개체를 SQL Server로 로드하고 DB2에서 데이터를 마이그레이션하기 전에 항목 옆에 있는 확인란의 선택을 취소합니다.

다음 단계

마이그레이션 프로세스의 다음 단계는 변환된 개체를 SQL Server에 로드하는 것입니다.

참고 항목

DB2 데이터를 SQL Server로 마이그레이션(DB2ToSQL)