제한 사항 및 지원되지 않는 객체 및 작업
GoldenGate Replicat에는 Google Cloud Spanner에 존재하는 것과 동일한 제한 사항이 적용됩니다. 응용 프로그램 개발자는 이러한 제한 사항을 알고 있어야 하며 이에 따라 응용 프로그램 로드를 설계해야 합니다.
다음은 현재 릴리스에서 Google Spanner용 Oracle GoldenGate Replicat가 지원하지 않는 작업입니다.
-
미리보기 릴리스에서는 병렬 Replicat가 지원되지 않습니다.
-
Google Cloud Spanner용 Replicat에서는 DDL 복제가 지원되지 않습니다.
-
SQLEXEC는 지원되지 않습니다.
-
자동 스키마 전개는 지원되지 않습니다.
-
충돌 감지 및 해결은 Google Cloud Spanner용 Replicat에서 지원되지 않습니다.
-
Oracle GoldenGate Replicat는
ON DELETE CASCADE및ON DELETE NO ACTION에 대해 참조 무결성 제약 조건을 적용한 테이블에 대해PKUPDATE를 지원하지 않습니다. -
Replicat for Google Spanner는
SUSPEND EVENT ACTION를 지원하지 않습니다. Google Cloud Spanner 데이터베이스는 10초 이상 유휴 상태인 읽기/쓰기 트랜잭션을 자동으로 중단하고 10초 유휴 시간 초과를 증가시키는 구성을 지원하지 않기 때문입니다.SUSPEND를 이벤트 작업으로 사용하는 경우 트랜잭션이 10초 이상 열려 있고RESUME에서 자동 중지됩니다.이 경우
ABORTED오류(오류 코드 10)에 대해REPERROR RETRY규칙을 사용하여 replicat에서 중단된 트랜잭션이 발생할 때 트랜잭션을 재시도할 수 있습니다. 또한 10초 이상 후에 DML을 재시도하면 Spanner가 진행 중인 트랜잭션을 자동으로 중단하는 DMLREPERROR RETRY규칙에 적용됩니다. -
Replicat for Spanner가 외래 키를 적용한 테이블을 찾으면 다음 오류와 함께 비정상 종료됩니다.
Google Spanner does not natively support PKUpdate. The PKUpdate operation is implemented in GoldenGate as DELETE followed by INSERT OR IGNORE operation. If the table contains enforced foreign key, PKUpdate (delete followed by insert) might unintentionally delete the records from the child table. In this case, you can take any of the following actions to continue: 1. If you do not intend to perform PKUpdate on table, use ALLOW_ENFORCED_FK in the Replicat parameter file. 2. Modify the enforced foreign keys to informational foreign keys 3. If the table is not required, exclude the target table from Replicat mapping to continue. -
다음은 하트비트 지원의 제한 사항에 대한 세부 사항입니다.
-
Google Spanner는 Extract가 아닌 Oracle GoldenGate Replicat만 지원하므로
TARGETONLY/NOTARGETONLY매개변수는 TimesTen 및 Teradata 데이터베이스와 같은 Google Spanner에서 명시적으로 지원되지 않습니다. -
Oracle GoldenGate는 Google Spanner에서의 전달만 지원하므로 이벤트 또는 작업 스케줄러를 사용하여 하트비트 테이블을 채우거나 업데이트하는 데 메커니즘이 필요하지 않습니다.
-
ADD HEARTBEATTABLE명령과FREQUENCY,PURGE_FREQUENCY또는RETENTION_TIME옵션은 Google Spanner에서 지원되지 않습니다. 이러한 옵션이ADD HEARTBEATTABLE명령과 함께 지정되면 옵션이 무시됨을 나타내는 정보 메시지가 표시됩니다. -
하트비트 작업 및 빈도는 Google Spanner에서 지원되지 않으므로
ALTER HEARTBEATTABLE명령은 Google Spanner에서 지원되지 않습니다. 사용할 경우 명령이 자동으로 무시됩니다. -
Spanner에 내부 이벤트나 작업 스케줄러가 없으므로 Heartbeat 기록 테이블의 자동 비우기가 발생할 수 없습니다. 해당 하트비트 객체를 명시적으로 잘라내야 합니다.
-
-
트랜잭션으로 인해 80,000개가 넘는 돌연변이가 발생하는 경우 Spanner는 오류를 반환하고 Replicat는 해당 오류로 비정상 종료됩니다.
동일한 방식으로, Spanner의 트랜잭션 크기는 100 MiB이고 트랜잭션에 의해 기록된 데이터가 100 MiB(인덱스 및 변경 스트림 포함)을 초과하는 경우 해당 트랜잭션이 실패하고 Replicat가 오류로 비정상 종료됩니다.
Spanner의 80000 돌연변이/100MB 트랜잭션 제한을 처리하려면 Spanner의 커밋 한도를 누르기 전에 Replicat 매개변수
MAXTRANSOPS를 사용하여 대용량 소스 트랜잭션을 더 작은 대상 일괄 처리로 분할해야 합니다. -
Spanner는 읽기-쓰기 트랜잭션에서 처음부터 끝까지 일관된 단일 스키마 버전을 볼 수 있도록 합니다. DDL 문(데이터베이스의 모든 테이블/인덱스)이 커밋되면 데이터베이스의 스키마 버전이 향상됩니다. 이전 버전에서 시작된 트랜잭션이 중단되어 스키마 변경을 나타내는 오류가 표시됩니다. 중단은 설계에 따라 수행되며 경합 또는 일시적 결함으로 인해 다른 재시도 가능한 중단과 유사한 방식으로 처리됩니다. 이 오류를 복구하려면 진행 중인 DDL 작업이 완료될 때까지 기다린 다음 Replicat를 재시작하십시오.