AWS DMS에서 MySQL 호환 데이터베이스를 소스로 사용 - AWS Database Migration Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS DMS에서 MySQL 호환 데이터베이스를 소스로 사용

다음을 사용하여 MySQL 호환 데이터베이스 (MySQL, MariaDB 또는 Amazon Aurora MySQL) 에서 데이터를 마이그레이션할 수 있습니다.AWSDatabase Migration Service. MySQL 버전 5.5, 5.6, 5.7 및 8.0. MariaDB 버전 10.1 10.10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1, 10.1 10.1 10.1, 10.1 10.1 10.6 10.1, 10.1 10.

참고

MySQL 8.0에 대한 Support 에서 사용할 수 있습니다.AWS DMS버전 3.4.0 이상 (트랜잭션 페이로드가 압축된 경우 제외)AWS DMS는 현재 바이너리 로그 암호화가 켜져 있을 때 MySQL 8.0을 소스로 사용하는 CDC 복제를 지원하지 않습니다.

SSL을 사용하여 MySQL 호환 엔드포인트와 복제 인스턴스 간의 연결을 암호화할 수 있습니다. MySQL 호환 엔드포인트에서 SSL을 사용에 대한 자세한 내용은 AWS Database Migration Service에서 SSL 사용 섹션을 참조하십시오.

다음 섹션에서 “자체 관리형”이라는 용어는 온프레미스 또는 Amazon EC2 설치된 모든 데이터베이스에 적용됩니다. 용어”AWS“관리형”은 Amazon RDS, Amazon Aurora 또는 Amazon S3 모든 데이터베이스에 적용됩니다.

PostgreSQL 호환 데이터베이스 및 AWS DMS 사용에 대한 세부 정보는 다음 섹션을 참조하십시오.

AWS DMS를 사용하여 MySQL에서 MySQL로 마이그레이션.

MySQL이 아닌 데이터베이스 엔진에서 MySQL 데이터베이스로 마이그레이션하는 이종 마이그레이션의 경우, 사용할 수 있는 최고의 마이그레이션 도구는 거의 언제나 AWS DMS입니다. MySQL서 MySQL 데이터베이스로 마이그레이션하는 같은 유형의 마이그레이션을 진행하려면 기본 도구가 더 효과적입니다.

다음과 같은 경우에는 mysqldump와 같은 기본 MySQL 데이터베이스 마이그레이션 도구를 사용하는 것이 좋습니다.

  • 같은 유형의 마이그레이션을 수행합니다. 이 경우 MySQL 데이터베이스에서 대상 MySQL 데이터베이스로 마이그레이션합니다.

  • 전체 데이터베이스를 마이그레이션합니다.

  • 기본 도구를 사용하여 최소한의 가동 중지로 데이터를 마이그레이션할 수 있습니다.

기존 MySQL 또는 MariaDB 데이터베이스에서 Amazon RDS MySQL 또는 MariaDB DB 인스턴스로 데이터를 가져올 수 있습니다. 이렇게 하려면 mysqldump를 사용하여 데이터베이스를 복사하고 Amazon RDS MySQL 또는 MariaDB DB 인스턴스에 바로 파이프합니다. mysqldump 명령줄 유틸리티는 한 MySQL 또는 MariaDB 서버에서 다른 MySQL 또는 MariaDB 서버로 데이터를 전송하고 백업본을 만드는 데 흔히 사용됩니다. 이 유틸리티는 MySQL 및 MariaDB 클라이언트 소프트웨어와 함께 포함되어 있습니다.

MySQL 데이터베이스를 Amazon RDS for MySQL 또는 Amazon Aurora MySQL 호환 에디션으로 가져오는 방법에 대한 자세한 내용은 을 참조하십시오.MySQL DB 인스턴스로 데이터 가져오기MySQL 또는 MariaDB DB에서 Amazon RDS MySQL 또는 MariaDB DB 인스턴스로 데이터 가져오기.

AWS DMS를 사용하여 MySQL에서 MySQL로 데이터 마이그레이션

AWS DMS예를 들어, 온프레미스에 있는 원본 MySQL 데이터베이스에서 MySQL용 대상 Amazon RDS 또는 Aurora MySQL 인스턴스로 데이터를 마이그레이션할 수 있습니다. 코어 또는 베이직 MySQL 데이터 유형은 대부분은 성공적으로 마이그레이션됩니다.

원본 데이터베이스에서는 지원되지만 대상에서는 지원되지 않는 데이터 형식은 성공적으로 마이그레이션되지 않을 수 있습니다. AWS DMS는 데이터 형식이 알려지지 않은 일부 데이터를 문자열로 스트리밍합니다. XML과 같은 일부 데이터 유형은 작은 파일로 성공적으로 마이그레이션할 수 있지만 대형 문서의 경우 실패할 수 있습니다.

다음 표에는 원본 MySQL 데이터 유형과 이러한 데이터 형식이 성공적으로 마이그레이션될 수 있는지 여부가 나와 있습니다.

데이터 형식 마이그레이션 성공 부분 마이그레이션 진행 예정 마이그레이션 진행하지 않을 예정
INT X
BIGINT X
MEDIUMINT X
TINYINT X
DECIMAL (p,s) X
BINARY X
BIT (M) X
BLOB X
LONGBLOB X
MEDIUMBLOB X
TINYBLOB X
DATE X
DATETIME X
TIME X
TIMESTAMP X
X
DOUBLE X
FLOAT X
VARCHAR(N) X
VARBINARY(N) X
CHAR(N) X
TEXT X
LONGTEXT X
MEDIUMTEXT X
TINYTEXT X
JSON X
GEOMETRY X
POINT X
LINESTRING X
POLYGON X
MULTILINESTRING X
MULTIPOLYGON X
GEOMETRYCOLLECTION X
ENUM X
SET X

AWS DMS용 소스로 MySQL 호환 데이터베이스 사용

AWS DMS용 원본으로 MySQL 데이터베이스를 사용하기 전에 다음 사전 요구 사항이 있는지 확인해야 합니다. 이러한 사전 요구 사항은 자체 관리형 또는 자체 관리형 모두에 적용됩니다.AWS-관리형 소스.

Replication Admin 역할이 할당된 AWS DMS용 계정이 있어야 합니다. 역할에는 다음 권한이 있어야 합니다.

  • 복제 클라이언트— 이 권한은 CDC 업무에만 필요합니다. 즉, full-load-only 작업에는 이 권한이 필요하지 않습니다.

  • 복제 슬레이브— 이 권한은 CDC 업무에만 필요합니다. 즉, full-load-only 작업에는 이 권한이 필요하지 않습니다.

  • 수퍼— 이 권한은 5.6.6 이전의 MySQL 버전에서만 필요합니다.

또한, AWS DMS 사용자에게는 복제를 위해 지정된 원본 테이블에 대해 SELECT 권한이 있어야 합니다.

AWS DMS용 소스로 자체 관리형 MySQL 호환 데이터베이스 사용

AWS DMS용 원본으로 다음 자체 관리형 MySQL 호환 데이터베이스를 사용할 수 있습니다.

  • MySQL Community Edition

  • MySQL Standard Edition

  • MySQL Enterprise Edition

  • MySQL Cluster Carrier Grade Edition

  • MariaDB Community Edition

  • MariaDB Enterprise Edition

  • MariaDB Column Store

CDC를 사용하려면 이진 로깅을 활성화해야 합니다. 이진 로깅을 활성화하려면, MySQL의 my.ini(Windows) 또는 my.cnf(UNIX) 파일에서 다음 파라미터를 구성해야 합니다.

파라미터

server-id

이 파라미터 값을 1 이상의 값으로 설정합니다.

log-bin

log-bin=E:\MySql_Logs\BinLog과 같은 이진 로그 파일로 이 경로를 설정합니다. 파일 확장자를 포함해서는 안 됩니다.

binlog_format

이 파라미터를 ROW로 설정합니다. 복제 중에는 이 설정을 사용하는 것이 좋습니다. 어떤 경우에는 다음과 같은 이유가 있습니다.binlog_format를 로 설정합니다.STATEMENT타겟에 데이터를 복제할 때 불일치가 발생할 수 있습니다. 또한 데이터베이스 엔진은 다음과 같은 경우 일관성이 없는 유사한 데이터를 타겟에 씁니다.binlog_format를 로 설정합니다.MIXED데이터베이스 엔진이 자동으로 전환되기 때문입니다.STATEMENT기반 로깅으로 인해 대상 데이터베이스에 일관되지 않은 데이터를 쓸 수 있습니다.

expire_logs_days

이 파라미터 값을 1 이상의 값으로 설정합니다. 디스크 공간의 과사용을 방지하려면, 기본값 0을 사용하지 않는 것이 좋습니다.

binlog_checksum

이 파라미터를 NONE로 설정합니다.

binlog_row_image

이 파라미터를 FULL로 설정합니다.

log_slave_updates

원본으로 MySQL 또는 MariaDB 읽기 전용 복제본을 사용하고 있는 경우 이 파라미터를 TRUE로 설정합니다.

원본에서 NDB(클러스터 방식) 데이터베이스 엔진을 사용하는 경우, 해당 스토리지 엔진을 사용하는 테이블에 대해 CDC를 활성화하도록 다음 파라미터를 구성해야 합니다. 이러한 변경 사항을 MySQL의 my.ini(Windows) 또는 my.cnf(UNIX) 파일에 추가합니다.

파라미터

ndb_log_bin

이 파라미터를 ON로 설정합니다. 이 값은 클러스터링된 테이블의 변경 사항이 이진 로그에 로깅되도록 보장해 줍니다.

ndb_log_update_as_write

이 파라미터를 OFF로 설정합니다. 이 값은 이진 로그에서 UPDATE 문을 INSERT 문으로 쓰지 않도록 해줍니다.

ndb_log_updated_only

이 파라미터를 OFF로 설정합니다. 이 값은 이진 로그가 변경된 열뿐만 아니라 전체 행을 포함하도록 해줍니다.

사용AWS-관리형 MySQL 호환 데이터베이스를 의 소스로 사용AWS DMS

다음을 사용할 수 있습니다.AWS-관리형 MySQL 호환 데이터베이스를 소스로AWS DMS:

  • MySQL Community Edition

  • MariaDB Community Edition

  • Amazon Aurora MySQL-Compatible Edition

를 사용하는 경우AWS-관리형 MySQL 호환 데이터베이스를 의 소스로 사용AWS DMSCDC 필수 요건이 다음과 같은 조건이 있는지 확인하십시오.

  • MySQL용 RDS 및 MariaDB용 RDS에 대한 바이너리 로그를 활성화하려면 인스턴스 수준에서 자동 백업을 활성화하십시오. Aurora MySQL 클러스터에 대한 이진 로그를 활성화하려면 변수를 변경하십시오.binlog_format파라미터 그룹에 있습니다.

    자동 백업 설정에 대한 자세한 내용은 단원을 참조하십시오.자동 백업 작업에서Amazon RDS User Guide.

    Amazon RDS for MySQL 데이터베이스의 이진 로깅 역할 설정에 대한 자세한 내용은 단원을 참조하십시오.이진 로깅 형식 설정에서Amazon RDS User Guide.

    Aurora MySQL 클러스터에 대한 이진 로깅 역할 설정에 대한 자세한 내용은 단원을 참조하십시오.Amazon Aurora MySQL 클러스터에 대한 이진 로깅을 켜려면 어떻게 해야 합니까?.

  • CDC를 사용할 계획이라면 바이너리 로깅을 켜세요. MySQL용 Amazon RDS 데이터베이스의 이진 로깅 설정에 대한 자세한 내용은 을 참조하십시오.이진 로깅 형식 설정에서Amazon RDS User Guide.

  • AWS DMS에 이진 로깅을 사용할 수 있어야 합니다. 왜냐하면AWS-managed MySQL 호환 데이터베이스는 가능한 한 빨리 이진 로그를 삭제하므로 로그를 사용할 수 있는 기간을 늘려야 합니다. 예를 들어, 로그 보존을 24시간으로 늘리려면 다음 명령을 실행합니다.

    call mysql.rds_set_configuration('binlog retention hours', 24);
  • binlog_format 파라미터를 "ROW"로 설정합니다.

    참고

    MariaDB의 경우binlog_format매개변수가 로 전환됨ROW복제를 위해 후속 바이너리 로그는 여전히 에서 생성됩니다.MIXED형식 이렇게 하면 DMS에서 변경 데이터 캡처를 수행하지 못할 수 있습니다. 그래서, 바꿀 때binlog_formatMariaDB 파라미터. 재부팅을 수행하거나 복제 작업을 시작한 다음 중지합니다.

  • binlog_row_image 파라미터를 "Full"로 설정합니다.

  • binlog_checksum 파라미터를 "NONE"로 설정합니다. Amazon RDS MySQL에서의 파라미터 설정에 대한 자세한 내용은 단원을 참조하십시오.자동 백업 작업에서Amazon RDS User Guide.

  • Amazon RDS MySQL 또는 Amazon RDS MariaDB 읽기 전용 복제본을 원본으로 사용하는 경우 읽기 전용 복제본에서 백업을 활성화하고log_slave_updates파라미터 가 로 설정됨TRUE.

AWS DMS에서 MySQL 데이터베이스를 소스로 사용 시 적용되는 제한 사항

MySQL 데이터베이스를 원본으로 사용하는 경우 다음 사항을 고려하십시오.

  • 변경 데이터 캡처 (CDC) 는 Amazon RDS MySQL 5.5 이하에 지원되지 않습니다. Amazon RDS MySQL 경우 버전 5.6, 5.7 또는 8.0의 경우 CDC를 활성화해야 합니다. CDC는 자체 관리형 MySQL 5.5 소스에 대해 지원됩니다.

  • CDC의 경우,CREATE TABLE,ADD COLUMN, 및DROP COLUMN열 데이터 유형 변경 및renaming a column가 지원됩니다. 그러나,DROP TABLE,RENAME TABLE및 열 기본값, 열 NULL 허용 여부, 문자 집합 등과 같은 다른 속성에 대한 업데이트는 지원되지 않습니다.

  • 소스에서 분할된 테이블의 경우, 대상 테이블 준비 모드대상에서 테이블 삭제로 지정하면 AWS DMS가 파티션 없이 MySQL 대상에 심플 테이블을 생성합니다. 파티션을 나눈 테이블을 대상의 파티션을 나눈 테이블로 마이그레이션하려면 대상 MySQL 데이터베이스에서 파티션을 나눈 테이블을 미리 생성해야 합니다.

  • ALTER TABLE table_name ADD COLUMN column_name 문을 사용하여 테이블의 시작(FIRST) 또는 중간(AFTER)에 열을 추가하는 것은 지원되지 않습니다. 열은 항상 테이블 끝에 추가됩니다.

  • 테이블 이름에 대/소문자가 포함되어 있고, 대/소문자를 구분하지 않는 파일 이름이 있는 운영 체제에서 소스 엔진이 호스팅되는 경우, CDC가 지원되지 않습니다. HFS+를 사용하는 마이크로소프트 윈도우 또는 OS X를 예로 들 수 있습니다.

  • 전체 로드에 Aurora MySQL 호환 에디션 서버리스를 사용할 수 있지만 CDC에서는 사용할 수 없습니다. 이는 MySQL에 대한 필수 조건을 활성화할 수 없기 때문입니다. 자세한 내용을 알아보려면 다음 섹션을 참조하세요.파라미터 그룹 및 Aurora Serverless v1..

  • 열의 AUTO_INCREMENT 속성은 대상 데이터베이스 열로 마이그레이션되지 않습니다.

  • 표준 블록 스토리지에 이진 로그가 저장되지 않으면 변경 사항 캡처가 지원되지 않습니다. 예를 들어, 바이너리 로그가 Amazon S3 저장되어 있으면 CDC가 작동하지 않습니다.

  • 기본적으로 AWS DMS에서는 InnoDB 스토리지 엔진이 있는 대상 테이블을 생성합니다. InnoDB가 아닌 스토리지 엔진을 사용해야 하는 경우, 테이블을 수동으로 생성하고 이를 아무 작업 안 함 모드를 사용하여 마이그레이션해야 합니다.

  • Aurora MySQL 복제본은 소스로 사용할 수 없습니다.AWS DMSDMS 마이그레이션 작업 모드가 아닌 경우기존 데이터 마이그레이션—완전 부하 전용.

  • MySQL 호환 소스가 전체 로드 도중 중지되는 경우, AWS DMS 작업은 오류로 중지되지 않습니다. 작업은 성공적으로 종료되지만 대상과 원본이 동기화되지 않았을 수 있습니다. 그러한 경우, 작업을 다시 시작하거나 영향을 받은 테이블을 다시 로드하십시오.

  • 열의 일부에 생성된 색인 값은 마이그레이션되지 않습니다. 예를 들어 CREATE INDEX first_ten_chars ON 색인 고객(이름(10))은 대상에서 생성되지 않습니다.

  • 경우에 따라 작업이 LOB (”) 를 복제하지 않도록 구성되어 있습니다.SupportLobs“이 (가) 작업 설정에서 false이거나LOB 열을 포함하지 마십시오.작업 콘솔에서 선택됨) 이 경우, AWS DMS가 MEDIUMBLOB, LONGBLOB, MEDIUMTEXT 및 LONGTEXT 열을 대상으로 마이그레이션하지 않습니다.

    BLOB, TINYBLOB, TEXT 및 TINYTEXT 열은 영향을 받지 않으며 대상으로 마이그레이션됩니다.

  • MariaDB 원본 및 대상 데이터베이스에서는 임시 데이터 테이블 또는 시스템 버전 테이블이 지원되지 않습니다.

  • 두 Amazon RDS Aurora MySQL 클러스터 간에 마이그레이션하는 경우 RDS Aurora MySQL 소스 엔드포인트는 복제본 인스턴스가 아닌 읽기/쓰기 인스턴스여야 합니다.

  • AWS DMS현재는 MariaDB에 대한 뷰 마이그레이션을 지원하지 않습니다.

  • AWS DMSMySQL용 파티션을 나눈 테이블에 대한 DDL 변경을 지원하지 않습니다.

  • AWS DMS는 현재 XA 트랜잭션을 지원하지 않습니다.

  • AWS DMS는 복제를 위한 GTID를 지원하지 않습니다.

  • AWS DMS바이너리 로그 트랜잭션 압축을 지원하지 않습니다.

MySQL을 AWS DMS에서 소스로 사용 시 추가 연결 속성

추가 연결 속성을 사용하여 MySQL 원본을 구성할 수 있습니다. 소스 엔드포인트 생성 시 이러한 설정을 지정합니다. 연결 속성 설정이 여러 개인 경우, 추가 공백 없이 세미콜론으로 구분하십시오(예: oneSetting;thenAnother).

다음 표에는 Amazon RDS MySQL 소스로 사용할 때 사용할 수 있는 추가 연결 속성이 나와 있습니다.AWSDMS.

이름 설명
eventsPollInterval

데이터베이스가 유휴 상태일 때 이진 로그에서 새 변경 사항/이벤트를 확인하는 빈도를 지정합니다.

기본값: 5

유효한 값: 1—60.

예: eventsPollInterval=5;

이 예에서 AWS DMS는 이전 로그에 변경 사항이 있는지 5초마다 확인합니다.

executeTimeout

에 대한AWS DMS버전 3.4.7 이상에서는 MySQL 소스 엔드포인트에 대한 클라이언트 명령문 제한 시간을 초 단위로 설정합니다.

기본값: 60

예: executeTimeout=1500;

이 예제에서는 다음과 같은 모든 문장을AWS DMS1500초보다 오래 걸리는 경우 MySQL 원본 데이터베이스에 대한 실행 제한 시간이 초과됩니다.

serverTimezone

원본 MySQL 데이터베이스의 시간대를 지정합니다.

예: serverTimezone=US/Pacific;

시간대 데이터를 작은따옴표로 묶지 마세요.

afterConnectScript

AWS DMS가 엔드포인트에 연결된 즉시 실행할 스크립트를 지정합니다. SQL 문의 성공 여부에 상관없이 마이그레이션 작업이 계속 실행됩니다.

유효한 값: 세미콜론으로 구분된 하나 이상의 유효한 SQL 문

예: afterConnectScript=ALTER SESSION SET CURRENT_SCHEMA = system;

CleanSrcMetadataOnMismatch

불일치 발생 시 복제 인스턴스에서 테이블 메타데이터 정보를 지운 후 다시 생성합니다. 예컨대 테이블에서 alter DDL을 실행하면 복제 인스턴스에 캐시된 테이블에 관해 다른 정보가 생길 수 있는 경우를 들 수 있습니다. 부울.

기본값: false

예: CleanSrcMetadataOnMismatch=false;

MySQL용 소스 데이터 형식

다음 표에는 AWS DMS를 사용하는 경우 지원되는 MySQL 데이터베이스 원본 데이터 형식과 AWS DMS 데이터 형식으로부터의 기본 매핑이 나와 있습니다.

대상에서 매핑된 데이터 형식을 확인하는 방법에 대한 정보는 사용 중인 대상 엔드포인트에 대한 섹션을 참조하십시오.

AWS DMS 데이터 형식에 대한 추가 정보는 데이터 형식AWSDatabase Migration Service 단원을 참조하십시오.

MySQL 데이터 형식

AWS DMS 데이터 형식

INT

INT4

BIGINT

INT8

MEDIUMINT

INT4

TINYINT

INT1

SMALLINT

INT2

UNSIGNED TINYINT

UINT1

UNSIGNED SMALLINT

UINT2

부호 없는 매체

UINT4

부호 없는 INT

UINT4

UNSIGNED BIGINT

UINT8

DECIMAL(10)

NUMERIC (10,0)

BINARY

BYTES(1)

BIT

BOOLEAN

BIT(64)

BYTES(8)

BLOB

바이트 (65535)

LONGBLOB

BLOB

MEDIUMBLOB

BLOB

TINYBLOB

BYTES(255)

DATE

DATE

DATETIME

DATETIME

괄호 값이 없는 DATETIME은 밀리초 없이 복제됩니다. 괄호 값이 1~5인 날짜/시간 (예:DATETIME(5)) 는 밀리초 단위로 복제됩니다.

DATETIME 열을 복제할 때 대상의 시간은 동일하게 유지됩니다. UTC로 변환되지 않습니다.

TIME

STRING

TIMESTAMP

DATETIME

타임스탬프 열을 복제할 때 대상에서 시간이 UTC로 변환됩니다.

INT2

DOUBLE

REAL8

FLOAT

REAL(DOUBLE)

FLOAT 값이 다음 범위에 없는 경우 변형을 사용하여 FLOAT를 STRING에 매핑합니다. 변환에 대한 자세한 내용은 변환 규칙 및 작업 섹션을 참조하십시오.

지원되는 플로트 범위는 -1.79E+308에서 -2.23E-308, 0 및 2.23E-308에서 1.79E+308입니다.

VARCHAR (45)

WSTRING (45)

VARCHAR (2000)

WSTRING (2000)

VARCHAR (4000)

WSTRING (4000)

VARBINARY (4000)

BYTES (4000)

VARBINARY (2000)

BYTES (2000)

CHAR

WSTRING

TEXT

WSTRING

LONGTEXT

NCLOB

MEDIUMTEXT

NCLOB

TINYTEXT

스트링 (25)

GEOMETRY

BLOB

POINT

BLOB

LINESTRING

BLOB

POLYGON

BLOB

MULTIPOINT

BLOB

MULTILINESTRING

BLOB

MULTIPOLYGON

BLOB

GEOMETRYCOLLECTION

BLOB

ENUM

문자열 (길이)

여기,길이ENUM에서 가장 긴 값의 길이입니다.

SET

문자열 (길이)

여기,길이쉼표를 포함하여 SET에 있는 모든 값의 전체 길이입니다.

JSON

CLOB

참고

경우에 따라 “0” 값 (즉, 0000-00-00) 을 사용하여 DATETIME 및 TIMESTAMP 데이터 형식을 지정할 수 있습니다. 그렇다면 복제 작업의 대상 데이터베이스가 DATETIME 및 TIMESTAMP 데이터 유형에 대해 “0” 값을 지원하는지 확인하십시오. 그렇지 않으면, 이 값이 대상에서 null로 기록됩니다.