AWS DMS에서 MySQL 호환 데이터베이스를 소스로 사용 - AWSDatabase 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.0.24 ~ 10.0.28, 10.1, 10.2, 10.3, 10.4, 10.5) 및 Amazon Aurora MySQL도 온프레미스에 대해 지원됩니다.

참고

에서 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-managed” 은 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 데이터베이스를 MySQL용 Amazon RDS 또는 Amazon Aurora MySQL 호환 에디션으로 가져오는 방법에 대한 자세한 내용은 단원을 참조하십시오.MySQL DB 인스턴스로 데이터 가져오기MySQL 또는 MariaDB DB에서 Amazon RDS MySQL 또는 MariaDB DB 인스턴스로 데이터 가져오기.

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

AWS DMS에서는 예를 들어 온프레미스의 소스 MySQL 데이터베이스에서 대상 Amazon RDS for MySQL 또는 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
YEAR 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 작업에만 필요합니다. 즉, 전체 로드 전용 작업에서는 이 권한이 필요하지 않습니다.

  • 복제 슬레이브— 이 권한은 CDC 작업에만 필요합니다. 즉, 전체 로드 전용 작업에서는 이 권한이 필요하지 않습니다.

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

또한, 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 DMS에서 CDC에 대해 다음과 같은 사전 조건이 있는지 확인합니다.

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

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

    MySQL용 Amazon RDS 데이터베이스에 대한 바이너리 로깅 설정에 대한 자세한 내용은 단원을 참조하십시오.이진 로깅 형식 설정Amazon RDS 사용 설명서.

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

  • CDC를 사용하려는 경우 이진 로깅을 켭니다. MySQL용 Amazon RDS 데이터베이스에 대한 바이너리 로깅 설정에 대한 자세한 내용은 단원을 참조하십시오.이진 로깅 형식 설정Amazon RDS 사용 설명서.

  • 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 사용 설명서.

  • Amazon RDS MySQL 또는 Amazon RDS MariaDB 읽기 전용 복제본을 소스로 사용하고 있는 경우, 읽기 전용 복제본에서 백업을 활성화합니다.

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

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

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

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

  • 소스에서 분할된 테이블의 경우, 대상 테이블 준비 모드대상에서 테이블 삭제로 지정하면 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이거나 작업 콘솔에서 Don't include LOB columns가 선택되지 않음). 이 경우, AWS DMS가 MEDIUMBLOB, LONGBLOB, MEDIUMTEXT 및 LONGTEXT 열을 대상으로 마이그레이션하지 않습니다.

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

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

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

  • AWS DMS현재 MySQL 8.0.20에 도입된 압축된 트랜잭션 로그 페이로드를 지원하지 않습니다.

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

  • AWS DMS은 (는) MySQL용으로 파티션을 나눈 테이블에 대한 DDL 변경을 지원하지 않습니다.

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

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

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

다음 표에는 Amazon RDS MySQL 에 대한 원본으로 사용 시 사용할 수 있는 추가 연결 속성이 나와 있습니다.AWSDMS.

이름 설명
eventsPollInterval

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

기본값: 5

유효한 값: 1—60개

예: eventsPollInterval=5;

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

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

MEDIUMINT

INT4

BIGINT

INT8

TINYINT

INT1

DECIMAL(10)

NUMERIC (10,0)

BINARY

BYTES(1)

BIT

BOOLEAN

BIT(64)

BYTES(8)

BLOB

BYTES(66535)

LONGBLOB

BLOB

MEDIUMBLOB

BLOB

TINYBLOB

BYTES(255)

DATE

DATE

DATETIME

DATETIME

TIME

STRING

TIMESTAMP

DATETIME

YEAR

INT2

DOUBLE

REAL8

FLOAT

REAL(DOUBLE)

지원되는 FLOAT 범위는 -1.79E+308~-2.23E-308, 0, 그리고 2.23E-308~1.79E+308입니다.

FLOAT 값이 이 범위를 벗어나는 경우, FLOAT 데이터 형식을 STRING 데이터 형식에 매핑합니다.

VARCHAR (45)

WSTRING (45)

VARCHAR (2000)

WSTRING (2000)

VARCHAR (4000)

WSTRING (4000)

VARBINARY (4000)

BYTES (4000)

VARBINARY (2000)

BYTES (2000)

CHAR

WSTRING

TEXT

WSTRING

JSON

NCLOB

LONGTEXT

NCLOB

MEDIUMTEXT

NCLOB

TINYTEXT

WSTRING (255)

GEOMETRY

BLOB

POINT

BLOB

LINESTRING

BLOB

POLYGON

BLOB

MULTIPOINT

BLOB

MULTILINESTRING

BLOB

MULTIPOLYGON

BLOB

GEOMETRYCOLLECTION

BLOB

ENUM

WSTRING (길이)

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

SET

WSTRING (길이)

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

참고

경우에 따라 DATETIME 및 TIMESTAMP 데이터 형식을 “0" 값으로 지정할 수 있습니다 (예: 000000-00). 그런 경우 복제 작업의 대상 데이터베이스가 DATETIME 및 TIMESTAMP 데이터 형식의 “0" 값을 지원하는지 확인해야 합니다. 그렇지 않으면, 이 값이 대상에서 null로 기록됩니다.