제한 사항
자동 스키마 전개 기능을 사용하려는 경우 다음 제한 사항을 고려하십시오.
-
Replicat는 클래식 및 조정 모드에서만 자동 스키마를 지원합니다(병렬 모드는 지원되지 않음).
-
자동 스키마는 양방향 복제에 대해 지원되지 않습니다.
-
자동 스키마는 MAPEXCEPTION 절에 사용된 테이블에 적용할 수 없습니다. 사용자는 복제를 시작하기 전에 해당 예외 테이블을 명시적으로 만들어야 합니다.
-
자동 스키마는 COLMATCH 매개변수를 지원하지 않습니다.
-
자동 스키마는 소스에서 대상으로 소스 보이지 않거나 숨겨진 열을 전달하지 않습니다.
-
자동 스키마는 DDLSUBST 매개변수를 따르지 않습니다.
-
자동 스키마는 소스 테이블에 있는 모든 인덱스나 제약 조건을 해당 대상 테이블로 전달하지 않습니다.
-
자동 스키마는 소스 열 레벨 문자 집합 및/또는 조합에 적용되지 않습니다. 해당 열 레벨 문자 집합 또는 데이터 정렬은 대상 열과 연관되지 않습니다.
-
자동 스키마는 테이블 레벨 Character Set를 대상 테이블과 연관시키지 않습니다.
-
자동 스키마는 열 레벨 문자 집합 또는 데이터 정렬을 대상 열과 연관시키지 않습니다.
자동 스키마를 사용할 때는 소스에서 사용되는 Character Set과 대상 시스템에서 사용 가능한 Character Set를 검사해야 합니다. 소스 문자 집합이 반드시 대상 시스템에서 사용 가능하다고 가정하지 마십시오. 데이터베이스가 일부 형식의 유니코드를 모두 사용하지 않는 경우 특히 그렇습니다. 이때 자동 스키마를 사용할 때는 대상 데이터베이스가 해당 문자 열에 UTF-8 또는 UTF-16을 사용하고 있는지 확인하여 소스 데이터베이스 Character Set에 대한 최상의 호환성을 제공합니다. 이는 IBM Db2 데이터베이스가 소스인 경우 가장 뚜렷하게 표시됩니다. z/OS의 경우 Db2, i의 경우 Db2의 경우 소스 데이터는 종종 EBCDIC의 일부 형태이며 대상이 다른 데이터베이스 계열인 경우 해당 문자 집합이 대상에서 직접 나타날 가능성은 거의 없습니다. ASCII Character Set에 대해서도 이와 유사한 문제가 발생할 수 있습니다. 왜냐하면 모든 데이터베이스가 이러한 Character Set을 모두 지원하는 것은 아니기 때문입니다.
중요: 대상 데이터베이스에 대해 유니코드를 사용하려면 유니코드 자체가 아닌 소스에서 매핑할 때 적절한 크기를 사용할 수 있도록 문자 필드 길이를 확장해야 할 수 있습니다. Target Database에서 소스 데이터베이스가 사용하는 바이트 수보다 많은 수의 바이트를 사용하여 문자를 나타낼 경우 유저는 이러한 모든 열에 대해
AUTOSCHEMAOPTIONS TYPEMAP을 사용하고 더 넓고 호환 가능한 대상 데이터 유형을 사용하여 데이터 잘림을 방지해야 합니다. -
-
자동 스키마는
AUTO-INCREMENT유형 소스 열을 지원하지 않으며 동일한 자동 증분 속성을 가진 해당 대상 열을 생성/변경하지 않습니다. -
소스 MySQL 테이블에 고유 키만 포함되고 기본 키가 없는 경우 자동 스키마가 대상 테이블에 기본/고유 키를 올바르게 생성하지 못할 수 있습니다. 올바른 키 정보를 제공하지 않는 MySQL 데이터베이스입니다.
참고: 자동 스키마에서 적용되는 제한은 아니지만 MySQL 소스입니다.
- 소스 데이터베이스가 Oracle Database 19c인 경우 자동 스키마가 대상 열의 널 가능성을 올바르게 파생하지 못할 수 있습니다.
참고: 자동 스키마 제한은 아니지만 올바른 키 정보를 제공하지 않는 소스 Oracle Database 19c입니다. Oracle 소스 char 및 varchar2 유형 열은 소스 DDL이 char 의미를 사용하는 경우에도 항상 바이트 의미를 사용하여 평가됩니다.
-
Oracle 소스 테이블에 정의된 기본 키가 없지만 가상 열, 널 가능 열, 사용자 정의 데이터 유형, 확장된 긴
varchar열 또는 함수 기반 인덱스 열(유효한 키 열)을 포함하는 고유 키만 있는 경우 자동 스키마는 해당 열을 대상 테이블의 기본/고유 키로 생성하지 않습니다. -
소스가 PostgreSQL 데이터베이스이고 소스 테이블에 키의 일부로 LOB 열이 있는 경우 사용자는 Extract 매개변수 파일에
DBOPTIONS MAXLOBKEYLEN <value>를 지정해야 합니다. 그렇지 않으면 기본적으로(AUTOSCHEMAOPTIONS TYPEMAP없이) 자동 스키마가 대상에서 길이가 0인 해당 열을 생성합니다. -
소스 PostgreSQL
Array유형의 경우 자동 스키마는 해당 대상 열에 대해CLOB유형 또는 이와 동등한 유형을 생성합니다. 소스 PostgreSQLArray열 이름을 기반으로 적합한 대상 유형을 선택하려면AUTOSCHEMAOPTIONS TYPEMAP를 지정해야 합니다. -
멀티바이트 데이터베이스 문자 집합이 있는 Oracle 소스
CLOB열의 경우 기본적으로 대상 열에 대해NCLOB또는 이와 동등한 대상 유형이 선택됩니다. 대체하려면TYPEMAP를 사용해야 합니다. -
z/OS용 Db2의 경우 UTF-16 데이터를 복제하려면 EBCDIC 또는 유니코드 데이터베이스가 필요합니다. 다른 이중 바이트 인코딩은 명시적으로 지원되지 않습니다.
-
UTF-16 데이터를 복제하는 IBM Db2(이전의 LUW용 Db2) 데이터베이스의 경우 유니코드 데이터베이스가 필요합니다. 다른 이중 바이트 인코딩은 명시적으로 지원되지 않습니다.
-
소스
ENUM유형 열의 경우 자동 스키마는char를 MySQL의 대상 유형으로 적용합니다. 필요한 경우TYPEMAP를 사용하여VARCHAR를 대신 사용합니다. -
전체 자릿수가 8보다 작은 소스 숫자/십진수 열에 대해 소스 데이터 유형 이름이 아닌 소스 열 이름을 기반으로
AUTOSCHEMAOPTIONS TYPEMAP를 지정해야 합니다. AUTOSCHEMAOPTIONS TYPEMAP은 다음 유형의 소스 열에 대한 소스 데이터 유형 이름을 기반으로 하지 않고 소스 열 이름을 기반으로 지정해야 합니다.- 길이가 4000보다 큰 문자/바카 유형 열입니다.
- 시간(p)
- 시간대가 없는 시간(p)
- 시간대가 있는 시간(p)
- TIMESTAMP(p)
- 시간대가 없는 TIMESTAMP(p)
- TIMESTAMP(p) WITH TIME ZONE
- 모든 INTERVAL 변형
- 소스 SQL Server 벡터 유형 열
-
자동 스키마는
COLMAP절에 큰 따옴표가 포함된 열 이름을 사용할 수 없습니다. 하나의 소스 열 이름에 매핑된COLMAP절의 특정 열 매핑에 사용되는 대상 열 이름은 소스 테이블의 다른 열 이름과 동일할 수 없습니다. -
GoldenGate가 실행 중인 시스템의 로케일이 중국어 또는 일본어(예: zh_CN.UTF-8)와 같은 멀티바이트 문자 집합인 경우 ASCII에 자동 스키마 오류 메시지가 거의 표시되지 않을 수 있습니다.
-
On SQL Server target, for any source
datetime/timestamptype with no fractional seconds, you must specify theAUTOSCHEMAOPTIONS TYPEMAPfor the corresponding source type (or column name) withdatetime2(0)as the specified replacement target type. -
Db2 z/OS 대상에서 자동 스키마는 단일
ALTER TABLE DDL를 사용하는 여러 열 삭제를 지원하지 않습니다. Replicat 보고서 파일에서 OGG 오류로 보고된 실패한 DDL을 재실행하고 Replicat를 다시 시작할 수 있습니다. -
SQLServer 대상에서 자동 스키마가
VARCHAR(n)에서TEXT또는VARCHAR(max)로 열 수정을 올바르게 감지/실행하지 않습니다. AUTOSCHEMAOPTIONS TYPEMAP는 대상 유형 사양에 대해 작동하지 않습니다.- NUMBER (p,s)
- NUMERIC(p,s)
- 소수(p,s)
- TIMESTAMP(p)(시간대 포함)
- 시간대가 포함된 TIME(p): 임시해결책은 시간대가 없는 TIME(p) 대신 TIME(p)을 대상 유형 이름 지정으로 사용하는 것입니다. 둘 다 의미상 동일하기 때문입니다.
- 시간대가 없는 TIMESTAMP(p) 임시해결책으로, 시간대 없이
TIMESTAMP(p)대신TIMESTAMP(p)를 대상 유형 이름 지정으로 사용할 수 있습니다. 두 가지 모두 의미상 동일하기 때문입니다. - Varbinary(최대)
- Varchar(max): 해결 방법은 varchar(max) 대신 CLOB를 대상 유형 이름 지정으로 사용하는 것입니다.
- Nvarchar(max): 해결 방법은 nvarchar(max) 대신 NCLOB를 대상 유형 이름 지정으로 사용하는 것입니다.
-
SQLServer 대상에서 유형 사양에
Vector차원 지정은 필수입니다. 기본 유형(예:float16또는float32) 지정은 선택 사항입니다. -
DATETIME유형의 SQLServer 소스 열의 경우 자동 스키마는DATETIME와DATETIME2(3)를 구분할 수 없습니다. 따라서 명시적TYPEMAP절을 사용할 때는 소스 유형 이름 기반 유형 맵 대신 소스 열 이름 기반TYPEMAP를 구성해야 합니다. -
DB2AS400 대상
NCHAR열의 경우 자동 스키마가 필요한 열 유형 수정 사항을 올바르게 감지하지 못합니다. -
PostgreSQL(또는 PostgreSQL 호환) 데이터베이스에서 Oracle GoldenGate Delivery가 PostgreSQL 고유 ODBC 드라이버를 사용하도록 구성된 경우 자동 스키마에서 Alter Table Modify Column 사례를 올바르게 감지하지 않습니다.
-
i용 IBM Db2의 경우 작업이 "정지"된 것처럼 보이고 진행되지 않을 수 있습니다. 예를 들어, 요청된 작업으로 인해 데이터 자르기 문제가 발생할 수 있는 경우 자동 스키마가 사용되는 경우 복제본에서 발생할 가능성이 높습니다. IBM i 시스템의 구성 방식에 따라 복제 작업은 시스템에서 사용자가 특정 문제를 해결하기 위해 수행해야 하는 작업을 제공할 때까지 대기 중인 MSMW(메시지 대기) 상태로 전환될 수 있습니다. 현재 GoldenGate에서 이 문제를 직접 해결할 수 있는 방법은 없으며 IBM i 측에서 처리해야 합니다.
-
TIMESTAMP_NTZ(p)또는TIMESTAMP_LTZ(p)또는TIMESTAMP_TZ(p)의 소스 Snowflake 열 유형에 대해 자동 스키마는 해당 시간 기록 열에 매핑하지만 날짜 시간 소수점 이하 자릿수는 0입니다. 소수 표시 초의 데이터 잘림을 방지하려면AUTOSCHEMAOPTIONS TYPEMAP를 사용하여 대상에서 필요한 유형을 선택해야 합니다. -
자동 스키마는 PostgreSQL 소스
JSON및JSONB열 유형을 구별하지 않습니다. PostgreSQL 소스JSONB유형에 대한 열 유형 대신 소스 열 이름을 기반으로AUTOSCHEMAOPTIONS TYPEMAP를 사용해야 합니다. -
자동 스키마는 PostgreSQL 소스 제한되지 않은 숫자 열(정밀도와 배율이 없는 숫자)과 PostgreSQL 소스 숫자(1000, 100) 유형을 구분하지 않습니다. PostgreSQL 소스 숫자(1000,100) 유형 열에 대한 열 유형 대신 소스 열 이름을 기반으로
AUTOSCHEMAOPTIONS TYPEMAP를 사용해야 합니다. -
Snowflake 소스 열 유형
ARRAY,GEOGRAPHY및GEOMETRY의 경우 자동 스키마는 대상의JSON유형(지원되는 경우) 또는CLOB유형에 매핑됩니다. 대상에서 다른 유형을 선택하려면 사용자가AUTOSCHEMAOPTIONS TYPEMAP를 사용해야 합니다. AUTOSCHEMAOPTIONS TYPEMAP의 소스 열 이름 기반 사양 부분이 포함된 정보 메시지가 올바르게 표시되지 않습니다.