GoldenGate 프로세스와 관련된 알려진 문제
GoldenGate 프로세스와 관련된 알려진 문제 및 해결 방법을 살펴봅니다.
MySQL InnoDB 클러스터에 대한 GoldenGate 캡처
MySQL InnoDB 클러스터에서 캡처할 때 Oracle GoldenGate 캡처를 정지할 수 있는 알려진 문제가 있습니다.
GoldenGate는 현재 표준 GTID를 지원하지만 태그가 지정된 GTID는 지원하지 않습니다. MySQL Shell 9.5 이상에서는 MySQL Server 8.3 이상과 함께 사용할 때 특정 관리 트랜잭션에 mysqlsh 태그를 자동으로 추가합니다. GoldenGate에서 이러한 태그가 지정된 트랜잭션이 발견되면 GTID 기반 Extract가 실패할 수 있습니다.
이는 MySQL InnoDB 클러스터에 대한 GTID 기반 캡처에 영향을 줍니다. 로그 번호 및 오프셋을 사용한 독립형 MySQL 캡처는 영향을 받지 않습니다.
이 문제를 방지하는 방법
클러스터를 업그레이드하기 전에 조치를 취하십시오. 클러스터 업그레이드에 MySQL 셸 9.4 또는 이전 버전을 사용하십시오. GoldenGate GTID 기반 Extract를 사용하는 경우 클러스터 작업에 MySQL 셸 9.5 이상을 사용하지 마십시오.
업그레이드를 시작한 후 셸 버전을 선택하는 작업이 너무 늦습니다. MySQL 셸 9.5 이상에서 태그가 지정된 GTID를 추가하면 Extract가 실패할 수 있습니다. 복구하려면 완전한 재동기화가 필요합니다.
해결방법
MySQL Server를 버전 8.3 이상으로 업그레이드할 수 있지만 MySQL Shell 9.4 또는 이전 버전을 사용하여 InnoDB 클러스터를 설치, 구성 또는 업그레이드할 수 있습니다. GoldenGate Extract를 구성하기 전에 이 작업을 수행합니다.
TRANSACTION_GTID_TAG 권한 취소는 적합한 임시해결책이 아니며 인스턴스 추가 또는 제거와 같은 MySQL 셸 작업이 실패할 수 있습니다.
보안 노트: MySQL 셸 9.4에는 이후 릴리스에서 해결된 취약점이 포함되어 있습니다. 이 임시해결책을 사용하기 전에 보안 팀에 미치는 영향을 검토하십시오.
AWS Glue Data Catalog 및 Amazon S3 버킷을 사용한 Apache Iceberg 복제
AWS Glue Data Catalog 및 AWS S3 버킷을 사용하는 Apache Iceberg 복제에서 다음 오류가 발생할 수 있습니다.
Cannot find constructor for interface org.apache.iceberg.catalog.Catalog
Missing org.apache.iceberg.aws.glue.GlueCatalog [java.lang.NoClassDefFoundError: software/amazon/awssdk/services/glue/model/AlreadyExistsException]
임시해결책: gg.classpath를 다음과 같이 업데이트합니다.
gg.classpath=$THIRD_PARTY_DIR/iceberg/*:$THIRD_PARTY_DIR/s3/*:$THIRD_PARTY_DIR/hadoop/*::$THIRD_PARTY_DIR/s3/*:$THIRD_PARTY_DIR/glue/*
TLS 보안 프로토콜 문제
MongoDB, DocumentDB 및 Oracle JSON Collection TLS 보안 프로토콜
보고서 파일에서 다음 오류로 인해 MongoDB Replicat, DocumentDB Replicat 또는 Oracle JSON Collection 연결이 실패하는 경우:
Error: Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
임시해결책: Properties 파일에 다음 등록 정보를 추가하고, 연결 OCID로 <connection_ocid>를 업데이트하고, 나머지는 그대로 유지하십시오.
jvm.bootoptions=-Djavax.net.ssl.trustStore=/u02/connections/<connection_ocid>/truststore.pkcs12 -Djavax.net.ssl.trustStorePassword=Welcome123
버그 37518857: OGGDAA GGS Snowflake 스트리밍 Replicat 오류
Snowflake Streaming Handler 실패: Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"
임시해결책: Replicat Properties 파일에 다음을 추가합니다.
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true
OCI GoldenGate 배치 콘솔에서 이름이 Discard인 사용자정의/기본값이 아닌 파일을 표시할 수 없습니다.
기본적으로 폐기 파일은 이름 지정 규칙 <process-name>.dsc를 따릅니다. 이름을 바꾼 경우가 아니면 모든 폐기 파일을 OCI GoldenGate 배치 콘솔에서 볼 수 있습니다. 배치 콘솔에는 사용자 정의 명명된 폐기 파일이 표시되지 않습니다.
임시해결책: 배치 세부정보 페이지에서 [진단 수집] 툴을 사용하여 폐기 파일에 액세스하십시오.
MongoDB Extract에서 BINARY_JSON_FORMAT로 트레일 파일을 사용할 때 Replicats가 실패함
Replicat가 Extract 매개변수 파일에 BINARY_JSON_FORMAT를 사용하여 MongoDB Extract에서 생성된 추적 파일을 사용하는 경우 다음 오류로 인해 Replicat가 실패합니다.
ERROR 2023-08-04 17:13:13.000421 [main] - Unable to decode column 0 : Input length = 1
java.nio.charset.MalformedInputException: Input length = 1 at
java.nio.charset.CoderResult.throwException(CoderResult.java:281) ~[?:1.8.0_311]at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:816) ~[?:1.8.0_311] at
oracle.goldengate.datasource.UserExitDataSource.createColumnValue(UserExitDataSource.java:1106)
[ggdbutil-21.9.0.0.3.001.jar:21.9.0.0.3.001] Exception in thread "main"
oracle.goldengate.util.GGException: Unable to decode column 0 : Input length = 1 at
oracle.goldengate.datasource.UserExitDataSource.createColumnValue(UserExitDataSource.java:1203)
임시해결책: Extract 매개변수에서 BINARY_JSON_FORMAT이 제거되면 Replicat가 성공적으로 실행되고 문서가 확장 JSON 형식으로 표시됩니다.
원격 변경 데이터 캡처 GTID 사용 데이터베이스에 대한 추출 실패
GTID(전역 트랜잭션 식별자)를 사용하는 MySQL 데이터베이스에 대해 [원격] 옵션이 사용으로 설정된 상태에서 변경 데이터 캡처 추출 프로세스를 생성하면 추출 프로세스가 실패하고 다음 오류가 보고됩니다.
ERROR OGG-25192 Trail file '<trail name>' is remote. Only local trail allowed for this extract.
임시해결책: 변경 데이터 캡처 추출의 [매개변수 파일] 화면에서 TRANLOGOPTIONS ALTLOGDEST REMOTE 행을 제거합니다.
자세한 내용은 Oracle GoldenGate for MySQL 사용을 참조하십시오.
배포 경로: 인증서 관리 또는 클라이언트 전자 지갑에 루트 인증서 추가
OCI GoldenGate에 데이터를 전송하거나 OCI GoldenGate에서 데이터를 가져오려면 온프레미스 또는 마켓플레이스 Oracle GoldenGate의 수신기 서버에서 각각 배포 서버 경로 또는 대상 시작 경로를 생성해야 합니다. 또한 OCI GoldenGate 루트 인증서 또는 자체 서명된 인증서를 Oracle GoldenGate 인증서 관리(Oracle GoldenGate 21c 이상) 또는 클라이언트 전자 지갑(Oracle GoldenGate 19c)에 추가해야 합니다. 그러면 Oracle GoldenGate와 OCI GoldenGate 배치 간에 신뢰할 수 있는 접속이 생성됩니다. WebSocket 보안(WSS) 프로토콜만 Oracle GoldenGate와 OCI GoldenGate 간의 배포 및 수신기 서버 경로에 대해 지원됩니다.
OCI GoldenGate 루트 인증서를 변경하면 온프레미스 또는 마켓플레이스 Oracle GoldenGate의 수신기 서버에서 배포 서버 경로 또는 대상 시작 경로가 실패하고 다음 오류가 발생합니다.
ERROR OGG-10390 Oracle GoldenGate Receiver Service: Generic error -1 noticed for endpoint
wss://<deployment URL>:443/services/v2/sources?trail=<trail name>. Error description - SSL
connection unexpectedly closed.
임시해결책: 이 문제를 해결하려면 OCI GoldenGate 배치 콘솔 루트 인증서를 사용하도록 클라이언트 전자 지갑 또는 서비스 관리자의 인증서 관리 화면에서 인증서를 업데이트하십시오. 경우에 따라 루트 인증서가 OCI GoldenGate 배치의 인증서에 직접 서명하지 않고 중간 인증서에 의해 서명된 경우도 있습니다. 예를 들어, 중간 CA 인증서도 추가해야 할 수 있습니다.
자세히 알아보기:
-
Oracle GoldenGate 19c 사용자의 경우 배포 서버 경로 사용자 인증서 생성을 참조하십시오.
-
Oracle GoldenGate 21c 이상 사용자의 경우 Create a Trusted Connection Between Oracle GoldenGate and OCI GoldenGate를 참조하십시오.
Digest 인증만 현재 지원됩니다.
Oracle Cloud Infrastructure GoldenGate를 배포 경로 대상으로 사용하는 경우 현재 Oracle Cloud Infrastructure GoldenGate는 인증서 기반 인증을 지원하지 않습니다.
임시해결책: 없음.