MySQL: 지원되는 데이터 유형, 객체 및 작업
이 섹션에는 MySQL Database의 Oracle GoldenGate에 대한 지원 정보가 포함되어 있습니다.
Oracle GoldenGate for MySQL는 본 문서에서 별도로 언급하지 않는 한 소스 데이터의 매핑, 필터링 및 변환을 지원하고, Oracle GoldenGate가 지원하는 다른 소스 데이터베이스에서 파생된 데이터를 MySQL 데이터베이스로 복제합니다.
Oracle GoldenGate for MySQL 지원되는 데이터 유형
MySQL용 Oracle GoldenGate는 다음 데이터 유형을 지원합니다.
-
BLOB -
BIGINT -
BINARY -
BIT(M) -
CHAR -
DATE -
DATETIME -
DECIMAL -
DOUBLE -
ENUM -
FLOAT -
INT -
JSON -
LONGBLOB -
LONGTEXT -
MEDIUMBLOB -
MEDIUMINT -
MEDIUMTEXT -
SMALLINT -
TEXT -
TIME -
TIMESTAMP -
TINYBLOB -
TINYINT -
TINYTEXT -
VARBINARY -
VARCHAR -
VECTOR -
YEAR
제한 사항 및 설명
MySQL용 Oracle GoldenGate를 실행할 때 다음 사항에 유의하십시오.
-
기능 인덱스는 캡처 또는 전달에 지원되지 않습니다.
-
Oracle GoldenGate는 기본 키로 사용되는 경우
BLOB또는TEXT유형을 지원하지 않습니다. -
Oracle GoldenGate는 00:00:00에서 23:59:59 사이의
TIME유형 범위를 지원합니다. -
Oracle GoldenGate는
0001/01/03:00:00:00에서9999/12/31:23:59:59까지의 시간 기록 데이터를 지원합니다. 시간 기록이 GMT에서 로컬 시간으로 변환되면 이러한 제한은 결과 시간 기록에도 적용됩니다. 시간대에 따라 변환에서 시간을 더하거나 뺄 수 있으므로 시간 기록이 지원되는 하한 또는 상한을 초과할 수 있습니다. -
Oracle GoldenGate는 음수 날짜를 지원하지 않습니다.
-
부동 소수점 수에 대한 범위 및 정밀도 지원은 호스트 시스템에 따라 달라집니다. 일반적으로 정밀도는 16자리까지 정확하지만 예상 근사치를 확인하려면 데이터베이스 설명서를 검토해야 합니다. Oracle GoldenGate는 지원되는 전체 자릿수를 초과하는 값을 반올림하거나 자릅니다.
-
엄격하지 않은
sql_mode에서ENUM유형을 사용하는 경우 엄격하지 않은sql_mode는 부적합한ENUM값을 입력하지 못하도록 방지하지 않으며 오류가 반환됩니다. 이 상황을 방지하려면 다음 중 하나를 수행합니다.-
sql_mode를STRICT로 사용하고 Extract를 재시작합니다. 이렇게 하면 사용자가 데이터 유형에 대해 부적합한 값을 입력할 수 없습니다. IE 사용자는 해당 데이터 유형에 대해 적합한 값만 입력할 수 있습니다. -
엄격하지 않은
sql_mode를 계속 사용하지만ENUM데이터 유형은 사용하지 마십시오. -
엄격하지 않은
sql_mode를 계속 사용하고 데이터베이스에서 적합한 값이 있는ENUM데이터 유형을 사용합니다. 부적합한 값을 지정하면 데이터베이스가 자동으로 값을 수락하고 Extract가 비정상 종료됩니다.
-
-
단일 열이 있는 테이블은 JSON 데이터 유형에 대해 지원되지 않습니다.
JSON데이터 유형의 단일 열이 있는 테이블에 대해 Extract가 구성된 경우 Extract가 비정상 종료됩니다. -
JSON데이터 유형이 CDR을 지원하지 않습니다.GETBEFORECOLS가 구성되고 테이블에JSON데이터 유형의 열이 있는 경우 다음 메시지가 보고서 파일에 기록됩니다.INFO OGG-06556 The following columns will not be considered for CDRCDR에 대한 제한 사항은
GETBEFORECOLS및COMPARECOLS가 사용되는 경우에 적용됩니다. -
MySQL Extract는 테이블 정의에 'invalid_enum'로 정의되지 않은
ENUM열 값을 비정상 종료하지 않으며 처리합니다.
지원되지 않는 MySQL 데이터 유형
MySQL용 Oracle GoldenGate는 다음 데이터 유형을 지원하지 않습니다.
모든 공간 유형(GEOMETRY 등) 및 SET
다음 GEOMETRY 유형은 모두 MySQL에서 지원되지 않습니다.
-
포인트
-
리네스트링
-
다각형
-
다중 지점
-
다중 문자열
-
다다각형
-
GEOMCOLLECTION 주: Extract가 지원되지 않는 데이터 유형을 포함하는 테이블에서 캡처하도록 구성된 경우 비정상 종료를 추출합니다. 따라서 Extract가 지원되지 않는 데이터 유형의 열을 포함하는 테이블에서 캡처하도록 구성되지 않았는지 확인하십시오.
MySQL에 대해 지원되는 객체 및 작업
Oracle GoldenGate for MySQL는 다음과 같은 객체 및 작업을 지원합니다.
-
Oracle GoldenGate는 소스 및 대상 데이터베이스 트랜잭션 테이블에 대해 다음과 같은 DML 작업을 지원합니다.
-
삽입 작업
-
업데이트 작업(압축 포함)
-
삭제 작업(압축 포함)
-
자르기 작업
-
-
Oracle GoldenGate는 DDL(데이터 정의어) 작업의 추출 및 복제를 지원합니다.
-
Oracle GoldenGate는 MySQL 및 사용 중인 데이터베이스 스토리지 엔진에서 지원하는 최대 전체 행 크기 및 최대 열 수까지 트랜잭션 테이블을 지원합니다. InnoDB는 최대 1017개의 열을 지원합니다.
-
Oracle GoldenGate는 생성된 열의 추출을 지원합니다.
-
MySQL 생성 열에는 복제가 허용되지 않으므로 모든 소스 생성 열 데이터를 비생성 열에 매핑해야 합니다.
-
Oracle GoldenGate는
AUTO_INCREMENT열 속성을 지원합니다. 증분 값은 Extract에 의해 이진 로그에서 캡처되고 Replicat 삽입 작업의 대상 테이블에 적용됩니다. -
Oracle GoldenGate는 MySQL 고유 복제와 동시에 작동할 수 있습니다.
-
Oracle GoldenGate는 MySQL에 대해
DYNSQL기능을 지원합니다.
주: XA 트랜잭션은 캡처에 지원되지 않으며 binlog에 기록된 XA 트랜잭션은 Extract가 비정상 종료되도록 합니다. 따라서 Extract가 캡처하도록 구성된 데이터베이스에 대해 XA 트랜잭션을 사용해서는 안됩니다. XA 트랜잭션이 Oracle GoldenGate 캡처를 위해 구성되지 않은 데이터베이스에 사용되는 경우 MySQL 서버 구성 파일에서 binlog-ignore-db 매개변수를 사용하여 MySQL 이진 로그에 로그인하지 못하도록 해당 데이터베이스를 제외합니다.
자동 하트비트 테이블 지원의 제한 사항은 다음과 같습니다.
-
하트비트 테이블을 추가할 때 오류가 발생하지 않도록 하트비트 테이블을 생성할 데이터베이스가 이미 존재하는지 확인하십시오.
-
하트비트 내역 지연 보기에서는 시스템 시간과 관련하여
heartbeat_received_ts,incoming_heartbeat_age및outgoing_heartbeat_age와 같은 필드의 정보가 표시됩니다. 운영 체제 시간이 올바른 현재 시간대 정보로 설정되었는지 확인해야 합니다. -
파일 끝별 위치(EOF)는 MySQL에서 지원됩니다. Oracle GoldenGate Extract for MySQL의 경우 파일 끝에 해당하는 위치를 찾고 거기서 트랜잭션을 읽기 시작합니다. 데이터가 바이너리 로그에 지속적으로 기록되는 경우 EOF 위치가 정확하지 않습니다.
Extract는 다음을 사용하여 추가 및 변경됩니다.
ADD EXTRACT *group_name*, TRANLOG, EOFALTER EXTRACT *group_name*, EOF
MySQL DDL의 객체 및 작업에 대한 지원 세부정보
다음은 Oracle GoldenGate가 DDL 작업의 캡처 및 복제를 위해 지원하는 MySQL 객체 및 작업 유형 목록입니다.
-
MySQL에 대한 DDL 복제는 MySQL 데이터베이스 간에 소스 및 대상으로만 지원됩니다.
-
MySQL 8.0 이상에서는 DDL 작업의 추출 및 복제가 지원됩니다. 지원되는 DDL 작업은 다음과 같습니다.
-
CREATE TABLE(CREATE TABLE AS SELECT제외) -
DROP TABLE -
TRUNCATE TABLE(GETTRUNCATES를 사용한 지원) -
ALTER TABLE TRUNCATE PARTITION -
ALTER TABLE ADD COLUMN -
ALTER TABLE ADD COLUMN AFTER -
ALTER TABLE DROP COLUMN -
ALTER TABLE MODIFY COLUMN(COLUMN_NAME,TYPE,SIZE) -
ALTER TABLE ADD (constraints) PRIMARY KEY -
ALTER TABLE DROP PRIMARY KEY
-
-
MySQL 8.0의 경우 로컬 및 원격 DDL 캡처가 지원됩니다.
-
TRUNCATE작업은GETTRUNCATESExtract 및 Replicat 매개변수를 통해 DML로 지원되며 MySQL DDL 지원을 위해 Oracle GoldenGate를 구성할 필요가 없습니다. -
DDL 복제는 Oracle GoldenGate 양방향 구성에서 지원되지 않습니다.
-
binlog_row_metadata데이터베이스 설정을FULL로 설정할 수 없는 클라우드 기반 데이터베이스 서비스에 대해서는 DDL 복제가 지원되지 않습니다.
MySQL에 대해 지원되지 않는 객체 및 작업
MySQL용 Oracle GoldenGate는 다음 객체 및 작업을 지원하지 않습니다.
-
보이지 않는 열
-
Replicat용 Oracle GoldenGate
BATCHSQL기능입니다. -
다음 문자 집합은 지원되지 않습니다.
-
ULIB_CS_ARMSCII8, /* 미국 국가 166-9 */
-
ULIB_CS_GEOSTD8, /* Geogian 기준 */
-
ULIB_CS_KEYBCS2, /* 케메니키 MS-DOS
-
-
DDL이 사용으로 설정된 경우
FETCHMOCOLS및FETCHMODCOLEXCEPTTABLE 옵션을 사용하여 NLS LOB 데이터를 캡처할 수 없습니다. -
테이블 이름을 바꾸는 중입니다.
-
내장 프로시저 내의 DDL 문은 지원되지 않습니다.
-
Oracle GoldenGate 설치 서버의 시간대가 소스 데이터베이스 서버의 시간대와 일치하지 않으면 대상 데이터베이스로 전송된 TIMESTAMP 데이터가 소스 데이터베이스와 다릅니다. Oracle GoldenGate 마이크로서비스 설치의 경우 시간대가 동일하더라도 Extract는 시간대를 UTC로 해결합니다. 다음 query를 실행하여 소스 데이터베이스 시간대를 확인합니다.
select @@system_time_zone;그러면 PDT와 같은 시간대 값이 반환됩니다.
배포에서 소스 Extract(
TZ)를 포함하는 변수를 생성하고 소스 데이터베이스 시간대 값으로 설정합니다. 그런 다음 실행 중인 Oracle GoldenGate 프로세스를 정지하고 관리 서비스를 재시작한 다음 추출 및 복제를 시작합니다. -
뷰 간 추출 및 복제는 지원되지 않습니다.
-
슬레이브에서 적용한 트랜잭션은 슬레이브의
binlog가 아닌 릴레이 로그에 기록됩니다. 슬레이브가 마스터로부터 받은binlog트랜잭션을 쓰도록 하려면my.cnf에서 log slave-updates 옵션을 1로 사용하여 복제 슬레이브를 시작해야 합니다. 이 파라미터는 다른 이진 로깅 파라미터와 함께 사용됩니다. 마스터의 트랜잭션이 슬레이브의binlog에 있으면 슬레이브에 대한 일반 캡처를 설정하여 슬레이브의binlog을 캡처하고 처리할 수 있습니다.
SingleStoreDB 객체 및 작업의 제한 사항
MySQL용 Oracle GoldenGate는 이제 SingleStoreDB 및 SingleStoreDB 클라우드를 지원하지만 다음과 같은 제한 사항이 있습니다.
-
기본 테이블만 쓸 수 있으므로 SingleStoreDB 내의 뷰에 대한 복제는 지원되지 않습니다.
-
SHARD키의 일부인 열에 대한 업데이트는 지원되지 않습니다. -
명시적
SHARD키가 없는 테이블에 대한 기본 키 업데이트는 지원되지 않습니다. 이는 SingleStoreDB가 이 상황에서 기본 키를SHARD키로 지정하고SHARD키 열에 대한 업데이트가 허용되지 않기 때문입니다. -
여러 파티션에 분산된 기본 또는 고유 키가 없는 SingleStoreDB 테이블에 대한 Replicat의
DBOPTIONS LIMITROWS동작은 지원되지 않습니다. -
SingleStoreDB에 대해서는
DBOPTIONS LIMITROWS및NOLIMITROWS매개변수 옵션이 지원되지 않습니다. -
SingleStoreDB는 데이터베이스 간 트랜잭션을 지원하지 않습니다. 즉, Replicat는 단일 스키마/데이터베이스에 대한 매핑만 지원할 수 있습니다. 여기에는 체크포인트 및 하트비트 테이블에 대한 매핑이 포함되므로 이러한 객체는 복제할 사용자 테이블과 동일한 스키마/데이터베이스 아래에 생성되어야 합니다.
시스템 스키마
다음 스키마 또는 객체는 와일드카드 없이 명시적으로 지정되지 않는 한 Oracle GoldenGate에 의해 자동으로 복제되지 않습니다.
-
MySQL
-
'information_schema' -
'performance_schema' -
'mysql' -
'sys'
-
-
SingleStore
-
'information_schema' -
'cluster' -
'memsql'
-