자동 스키마 전개로 지원되는 작업
자동 스키마 전개는 Oracle, MySQL, PostgreSQL, SQL Server, Db2 LUW, DB2400, Teradata 및 Oracle TimesTen 대상에서 지원됩니다.
자동 스키마 진화는 Oracle, MySQL, PostgreSQL, SQL Server, Db2 LUW, Db2 zOS, DB2400, Sybase, Teradata, Oracle TimesTen 및 Snowflake 소스에서 지원됩니다.
지원되는 작업은 다음과 같습니다.
- 기본 자동 스키마 전개 응답은
AUTOSCHEMAOPTIONS를 사용하여 대체할 수 있습니다. 다음 옵션이 지원됩니다.-
TYPEMAP: 기본 데이터 유형 매핑을 무효화하려면 이 옵션을 사용하십시오. -
IGNORE_DATA_TRUNCATION: 기본 데이터 유형 매핑에서 가능한 데이터 잘림을 예측하는 경우 기본적으로 Replicat가 적절한 오류로 비정상 종료됩니다. 이러한 데이터 잘림 오류를 무시하고 Replicat가 비정상 종료 없이 계속되도록 하려면 Replicat 매개변수 파일에AUTOSCHEMAOPTIONS IGNORE_DATA_TRUNCATION를 지정할 수 있습니다. -
IGNORE_MODIFY_KEY_COLUMN: 기본적으로 자동 스키마 전개에서는 적절한 오류가 발생한 경우 기본 키 열 및 Replicat 비정상 종료를 수정할 수 없습니다.AUTOSCHEMAOPTIONS IGNORE_MODIFY_KEY_COLUMN를 지정하여 키 열에 대한 수정을 건너뛸 수 있습니다. -
ALLOW_MODIFY_KEY_COLUMN: 기본적으로 자동 스키마 전개에서는 이러한 경우 기본 키 열 및 Replicat 비정상 종료를 수정할 수 없습니다.AUTOSCHEMAOPTIONS ALLOW_MODIFY_KEY_COLUMN를 지정하여 키 열에 대한 수정을 허용할 수 있습니다. -
MODIFY_COLUMN_NULLABILITY_ONLY: 유형 수정이 아닌 열의 무효화만 수정하려는 경우AUTOSCHEMAOPTIONS MODIFY_COLUMN_NULLABILITY_ONLY를 지정할 수 있습니다.
-
자동 스키마 전개는 소스 및 대상 테이블의 스키마를 동기화 상태로 유지하기 위해 추적 파일의 메타데이터 레코드에서 감지된 스키마 변경사항을 기반으로 다음 작업을 지원합니다.
-
Target Database에 누락된 테이블 생성
-
ADD/MODIFY/DROP열을 수행하여 대상 테이블 변경
모든 소스 열 메타데이터를 기반으로 기본적으로 해당 대상 열에 대해 가장 적합한 데이터 유형이 선택됩니다.
참고: 자동 스키마 전개를 구현하기 전에 데이터 유형 매핑에서 특정 소스 데이터베이스와 대상 데이터베이스 복제 시나리오에 적용할 수 있는 기본 데이터 유형 매핑을 검토하십시오.
모든 경우에 대상 데이터 유형이 소스 데이터 유형과 정확히 같지 않을 수 있습니다. 가능한 경우 대상 유형이 항상 호환되고 소스 열과 크기가 같거나 더 넓어 해당 소스 열의 데이터를 수용할 수 있도록 대상 데이터 유형을 선택합니다. Target Database의 해당 소스 열 데이터 유형에 대해 사용 가능한 적절한 유형이 없는 경우(Target Database에서 사용 가능한 유형과 같이 데이터 잘림) 적절한 권장 사항을 사용하여 유저에게 오류가 반환됩니다.
누락된 테이블 생성
AutoSchema는 다음 사용 사례를 지원합니다.
-
CDC Extract에서 생성된 추적 데이터를 적용하는 동안 대상에서 누락된 테이블을 생성합니다.
-
초기 로드 Extract로 생성된 추적 데이터를 적용하는 동안 대상에서 누락된 테이블을 생성합니다.
-
initialLoad Extract로 생성된 추적만 적용하는 동안 기존 대상 테이블을 삭제하고
OPTYPE RECREATE을DDL AUTOSCHEMA포함 조건의 일부로 지정하여 다른 Extract를 생성하도록 선택할 수 있습니다. -
추적 메타데이터의 모든 해당 소스 키 열이 널 가능하지 않은 경우 자동 스키마는 모든 해당 열과 함께
PRIMARY KEY절을 사용하여 대상 테이블을 생성합니다. -
추적 메타데이터에서 해당하는 소스 키 열 중 하나라도 널 가능하면 자동 스키마는 모든 해당 열과 함께
UNIQUE KEY절을 사용하여 대상 테이블을 생성합니다.
기존 테이블 변경
소스에서 열이 추가/삭제/수정되면 해당하는 ALTER TABLE DDL이 생성되어 매핑된 해당 대상 테이블에 실행됩니다. 자동 스키마는 유형(데이터 유형 이름, 길이, 소수점 이하 자릿수, 해당하는 경우 소수점 이하 자릿수 포함) 및 널 가능성 제약 조건과 관련된 수정 사항만 지원합니다. 그러나 다른 열 속성은 수정되지 않습니다. 소스 열에서 유형/널 가능성 관련 스키마 변경 사항이 감지되면 대상 열로 전달됩니다.
소스 테이블에서 스키마를 하나 이상 변경하면 매핑된 대상 테이블에서 특정 대상 데이터베이스에서 지원되는 단일 또는 다중 ALTER TABLE DDL이 발생할 수 있습니다. 대상의 DDL 수는 다음과 같은 특정 Target Database에서 지원되는 구문에 따라 달라집니다.
-
단일
ALTER TABLE DDL에서 다중 열의 추가/삭제/수정이 허용되지 않는 데이터베이스는 거의 없습니다. -
단일
ALTER TABLE DDL문에서 열의 유형 및 널 가능성을 모두 수정할 수 있는 데이터베이스는 거의 없습니다.
이 경우 대상 데이터베이스 요구 사항에 따라 필요한 수의 ALTER TABLE DDL 문이 대상 테이블에서 실행됩니다.
자동 스키마가 추가 작업이 필요한 대상 데이터베이스에 영향을 줄 수 있습니다. 예를 들어, ALTER TABLE MODIFY COLUMN로 인해 일부 데이터 잘림이 발생할 수 있는 경우 여러 데이터베이스가 이를 다른 방식으로 처리할 수 있습니다. 데이터베이스는 작업에 의해 일부 기존 데이터가 잘릴 수 있음을 감지하고 Replicat가 정지되도록 할 수 있습니다. 이 문제는 일반적으로 엄격한 모드가 사용으로 설정된 상태에서 MySQL가 실행 중인 경우 Oracle과 MySQL 간에 발생합니다. 그러나 MySQL가 비엄격 모드로 구성된 경우 경고 없이 견인이 발생할 수 있습니다.
IBM i의 경우 시스템 구성 방법에 따라 Replicat가 중단된 것처럼 보일 수 있습니다. Db2(이전의 Db2 LUW) 및 Db2 z/OS에 대한 일부 작업의 경우 특정 작업에 테이블 재구성이 필요할 수 있습니다. Db2 z/OS에서 삭제 열은 재구성이 수행될 때까지 인식되지 않으며, Db2의 경우 테이블이 재구성 보류 중 상태로 끝날 수 있으며 이에 대한 추가 작업 허용이 중지될 수 있습니다.
참고: 필요한 경우 선택적으로 OPTYPE ADDCOLUMN, OPTYPE DROPCOLUMN 및 OPTYPE MODIFYCOLUMN를 DDL AUTOSCHEMA 포함/제외 기준에 추가할 수 있습니다.