AWS Database Migration Service에서 MySQL 호환 데이터베이스를 대상으로 사용 - AWS Database Migration Service

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

AWS Database Migration Service에서 MySQL 호환 데이터베이스를 대상으로 사용

AWS DMS를 사용하면 AWS DMS가 지원하는 소스 데이터 엔진 중 하나에서 MySQL 호환 데이터베이스로 데이터를 마이그레이션할 수 있습니다. 온프레미스 MySQL 호환 데이터베이스로 마이그레이션하는 경우AWS DMS소스 엔진이 다음 위치에 있어야 합니다.AWS생태계. 엔진이 켜져 있을 수 있습니다.AWS- Amazon RDS, Amazon Aurora 또는 Amazon S3 S3와 같은 관리형 서비스입니다. 또는 Amazon EC2 자체 관리형 데이터베이스에 있을 수도 있습니다.

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

AWS DMS는 MySQL 및 Aurora MySQL 버전 5.5, 5.6, 5.7 및 8.0 을 지원합니다. 또한 다음과 같습니다.AWS DMS는 MariaDB 버전 10.0.24 ~ 10.0.28, 10.1, 10.3, 10.4 및 10.5.

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

  • Amazon Aurora MySQL

참고

원본 스토리지 엔진(MyISAM, MEMORY 등)에 상관 없이 AWS DMS는 기본적으로 MySQL 호환 대상 테이블을 InnoDB 테이블로서 생성합니다.

InnoDB 이외에 스토리지 엔진에 테이블이 있어야 하는 경우, MySQL 호환 대상에서 테이블을 수동으로 생성하고 아무 작업 안 함 옵션을 사용하여 테이블을 마이그레이션할 수 있습니다. 자세한 정보는 전체 로드 작업 설정을 참조하십시오.

MySQL 호환 데이터베이스를 AWS DMS의 대상으로 사용하여 작업하는 방법에 대한 자세한 내용은 다음 단원을 참조하십시오.

AWS Database Migration Service에서 어떤 MySQL 호환 데이터베이스든지 대상으로 사용

AWS DMS에서 MySQL 호환 데이터베이스를 대상으로 사용하기 전에 다음 사전 조건이 완료되어 있는지 확인해야 합니다.

  • MySQL 호환 데이터베이스에 대한 읽기/쓰기 권한이 있는 사용자 계정을 AWS DMS에 제공합니다. 필요한 권한을 생성하려면 다음 명령을 실행합니다.

    CREATE USER '<user acct>'@'%' IDENTIFIED BY '<user password>'; GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON <schema>.* TO '<user acct>'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
  • 전체 로드 마이그레이션 단계 중에 대상 테이블에 대해 외래 키를 비활성화해야 합니다. 전체 로드 중에 MySQL 호환 데이터베이스에서 외래 키 검사를 비활성화하려면 다음 명령을Extra connection attributesAdvanced대상 엔드포인트의 단원입니다.

    initstmt=SET FOREIGN_KEY_CHECKS=0
  • AWS DMS가 데이터를 대상 데이터베이스로 로드할 수 있도록 데이터베이스 매개 변수 local_infile = 1을 설정합니다.

AWS Database Migration Service에서 MySQL 호환 데이터베이스를 대상으로 사용할 때 적용되는 제한 사항

MySQL 데이터베이스를 대상으로 사용 시 AWS DMS는 다음을 지원하지 않습니다.

  • 데이터 정의 언어(DDL)는 TRUNCATE PARTITION, DROP TABLE 및 CREATE TABLE 명령을 수행합니다.

  • ALTER TABLE table_name ADD COLUMN column_name 문을 사용하여 테이블의 시작이나 중간에 열 추가.

  • 전체 로드 작업에서 MySQL 호환 대상으로 데이터를 로드하는 경우AWS DMS작업 로그에 중복 키 오류를 보고하지 않습니다. 이는 MySQL이 CSV 로드 데이터를 처리하는 방식 때문입니다.

  • 열의 값을 기존 값으로 업데이트하면 MySQL 호환 데이터베이스는 0 rows affected 경고를 반환합니다. 이 동작은 사실 오류는 아니지만, 다른 데이터베이스 엔진이 이러한 상황을 처리하는 방식과는 다릅니다. 예를 들어, Oracle은 행 하나를 업데이트합니다. MySQL 호환 데이터베이스의 경우, AWS DMS가 awsdms_apply_exceptions 제어 테이블에 항목을 생성하고 다음 경고를 로깅합니다.

    Some changes from the source database had no impact when applied to the target database. See awsdms_apply_exceptions table for details.
  • MySQL 버전 5.6과 호환되는 Amazon Aurora 버전 1의 대상으로 Aurora Serverless를 사용할 수 있습니다. MySQL 버전 5.7과 호환되는 Amazon Aurora 버전 2의 대상으로 Aurora Serverless를 사용할 수 있습니다. MySQL 5.7 호환성이 있는 Aurora Serverless를 사용할 수 있도록 Aurora MySQL 버전 2.07.1을 선택합니다. Aurora Serverless에 대한 자세한 내용은 단원을 참조하십시오.Amazon Aurora Serverless 사용Amazon Aurora 사용 설명서.

  • Aurora 리더 엔드포인트 사용. MySQL 리더 엔드포인트는 다음과 같습니다.read_only매개 변수를 변경할 수 없습니다. 다음과 같은 경우 Amazon RDS for MySQL 리더 엔드포인트를 사용할 수 있습니다.read_only매개 변수가 0으로 설정되어 있습니다.

MySQL 호환 데이터베이스를 AWS DMS의 대상으로 사용 시 추가 연결 속성

추가 연결 속성을 사용하여 MySQL 호환 대상을 구성할 수 있습니다. 대상 엔드포인트 생성 시 이러한 설정을 지정합니다. 연결 속성 설정이 여러 개인 경우, 추가 공백 없이 세미콜론으로 구분하십시오.

다음 표에는 AWS DMS의 MySQL 호환 대상 생성 시 사용할 수 있는 추가 구성 설정이 나와 있습니다.

이름 설명

targetDbType

대상에 있는 원본 테이블을 단일 데이터베이스 또는 다중 데이터베이스로 마이그레이션할 위치를 지정합니다. 지정하는 경우SPECIFIC_DATABASE를 사용할 때 데이터베이스 이름을 지정해야 합니다.AWS CLI또는AWS Management Console.

기본값: MULTIPLE_DATABASES

유효한 값: {SPECIFIC_DATABASE, MULTIPLE_DATABASES}

예: targetDbType=MULTIPLE_DATABASES

parallelLoadThreads

데이터를 MySQL 호환 대상 데이터베이스로 로드할 때의 성능을 개선합니다. 데이터를 MySQL 호환 대상 데이터베이스에 로드할 때 사용할 스레드 개수를 지정합니다. 각 스레드마다 별도의 연결이 필요하기 때문에 대량의 스레드를 설정하면 데이터베이스 성능에 부정적인 영향을 줄 수 있습니다.

기본값: 1

유효한 값: 1~5

예: parallelLoadThreads=1

initstmt=SET FOREIGN_KEY_CHECKS=0

외래 키 점검을 비활성화합니다.

initstmt=SET time_zone

대상 MySQL 호환 데이터베이스의 시간대를 지정합니다.

기본값: UTC

유효한 값: 대상 MySQL 데이터베이스에서 사용할 수 있는 표준 시간대 이름입니다.

예: initstmt=SET time_zone=UTC

afterConnectScript=SET character_set_connection='latin1'

MySQL 호환 대상이 받은 명령문을 latin1 문자 세트로 변환해야 함을 지정합니다. 이 문자 세트는 데이터베이스의 기본 컴파일 입력 문자 세트입니다. 이 파라미터는 UTF8 클라이언트로부터 변환될 때 일반적으로 성능을 개선합니다.

maxFileSize

데이터를 MySQL 호환 데이터베이스로 전송할 때 사용되는 .csv 파일의 최대 크기(KB 단위)를 지정합니다.

기본값: 32,768 킬로바이트 (32 메가바이트)

유효한 값: 1~1,048,576

예: maxFileSize=512

CleanSrcMetadataOnMismatch

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

기본값: false

예: CleanSrcMetadataOnMismatch=false

MySQL용 대상 데이터 형식

다음 테이블에는 AWS DMS를 사용하고 기본적으로 AWS DMS 데이터 형식에 매핑할 때 지원되는 MySQL 데이터베이스 대상 데이터 형식이 나와 있습니다.

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

AWS DMS 데이터 형식

MySQL 데이터 형식

BOOLEAN

BOOLEAN

BYTES

길이가 1~65,535인 경우, VARBINARY(길이)를 사용합니다.

길이가 65,536~2,147,483,647인 경우, LONGLOB를 사용합니다.

날짜

날짜

TIME

TIME

TIMESTAMP

“크기가 0 이상이고 6 이하인 경우: 데이트타임 (스케일)

크기가 7 이상이고 9 이하인 경우: VARCHAR (37)”

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

DECIMAL (p,s)

REAL4

FLOAT

REAL8

DOUBLE PRECISION

STRING

길이가 1~21,845인 경우, VARCHAR(길이)를 사용합니다.

길이가 21,846~2,147,483,647인 경우, LONGTEXT를 사용합니다.

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

길이가 1~32,767인 경우, VARCHAR(길이)를 사용합니다.

길이가 32,768~2,147,483,647인 경우, LONGTEXT를 사용합니다.

BLOB

길이가 1~65,535인 경우, BLOB를 사용합니다.

길이가 65,536~2,147,483,647인 경우, LONGBLOB를 사용합니다.

길이가 0인 경우, LONGBLOB(전체 LOB 지원)를 사용합니다.

NCLOB

길이가 1~65,535인 경우, TEXT를 사용합니다.

길이가 65,536~2,147,483,647인 경우, CHARACTER SET용 ucs2와 함께 LONGTEXT를 사용합니다.

길이가 0인 경우, CHARACTER SET용 ucs2와 함께 LONGTEXT(전체 LOB 지원)를 사용합니다.

CLOB

길이가 1~65,535인 경우, TEXT를 사용합니다.

길이가 65536~2147483647인 경우, LONGTEXT를 사용합니다.

길이가 0인 경우, LONGTEXT(전체 LOB 지원)를 사용합니다.