의 대상으로 My SQL호환 데이터베이스 사용 AWS Database Migration Service - AWS 데이터베이스 마이그레이션 서비스

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

의 대상으로 My SQL호환 데이터베이스 사용 AWS Database Migration Service

가 AWS DMS 지원하는 소스 데이터 엔진 AWS DMS에서를 사용하여 내 SQL호환 데이터베이스로 데이터를 마이그레이션할 수 있습니다. 온프레미스 My SQL호환 데이터베이스로 마이그레이션하는 경우 AWS DMS 에서는 소스 엔진이 AWS 에코시스템 내에 있어야 합니다. 엔진은 Amazon RDS, Amazon Aurora 또는 Amazon S3와 같은 AWS관리형 서비스일 수 있습니다. 또는 엔진이 Amazon의 자체 관리형 데이터베이스에 있을 수 있습니다EC2.

SSL를 사용하여 My SQL호환 엔드포인트와 복제 인스턴스 간의 연결을 암호화할 수 있습니다. My SQL호환 엔드포인트와 SSL 함께를 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요SSL와 함께 사용 AWS Database Migration Service.

가 대상으로 AWS DMS 지원하는 MySQL 버전에 대한 자세한 내용은 섹션을 참조하세요대상 AWS DMS.

다음 My SQL호환 데이터베이스를 대상으로 사용할 수 있습니다 AWS DMS.

  • 내SQL 커뮤니티 에디션

  • 내SQL Standard Edition

  • 내SQL Enterprise Edition

  • 내SQL 클러스터 캐리어 등급 에디션

  • MariaDB Community Edition

  • MariaDB Enterprise Edition

  • MariaDB Column Store

  • Amazon Aurora MySQL

참고

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

InnoDB 이외의 스토리지 엔진에 테이블이 필요한 경우 내 SQL호환 대상에서 테이블을 수동으로 생성하고 아무것도 하지 않음 옵션을 사용하여 테이블을 마이그레이션할 수 있습니다. 자세한 내용은 전체 로드 작업 설정 단원을 참조하십시오.

의 대상으로 My SQL호환 데이터베이스를 사용하는 방법에 대한 자세한 내용은 다음 섹션을 AWS DMS참조하세요.

의 대상으로 My SQL호환 데이터베이스 사용 AWS Database Migration Service

의 대상으로 My SQL호환 데이터베이스를 사용하기 전에 다음 사전 조건을 완료했는지 AWS DMS확인합니다.

  • 내 SQL호환 데이터베이스에 대한 읽기/쓰기 권한이 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>'@'%';
  • 전체 로드 마이그레이션 단계 중에 대상 테이블에 대해 외래 키를 비활성화해야 합니다. 전체 로드 중에 My SQL호환 데이터베이스에서 외래 키 검사를 비활성화하려면 다음 명령을 대상 엔드포인트에 대한 AWS DMS 콘솔의 추가 연결 속성 섹션에 추가할 수 있습니다.

    Initstmt=SET FOREIGN_KEY_CHECKS=0;
  • AWS DMS 가 데이터를 대상 데이터베이스로 로드할 수 있도록 데이터베이스 파라미터 local_infile = 1을 설정합니다.

  • 내SQL별 마이그레이션 전 평가를 사용하는 경우 다음 권한을 부여합니다.

    grant select on mysql.user to <dms_user>; grant select on mysql.db to <dms_user>; grant select on mysql.tables_priv to <dms_user>; grant select on mysql.role_edges to <dms_user> #only for MySQL version 8.0.11 and higher

의 대상으로 My SQL호환 데이터베이스를 사용하는 것에 대한 제한 사항 AWS Database Migration Service

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

  • 데이터 정의 언어(DDL) 문 TRUNCATE PARTITION, DROP 및 TABLE RENAME TABLE.

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

  • 전체 로드 작업에서 내 SQL호환 대상에 데이터를 로드할 때 AWS DMS 는 작업 로그의 제약으로 인해 발생하는 오류를 보고하지 않습니다. 이로 인해 중복 키 오류 또는 레코드 수와의 불일치가 발생할 수 있습니다. 이는 내SQL가 LOAD DATA 명령을 사용하여 로컬 데이터를 처리하는 방식에 의해 발생합니다. 전체 로드 단계에서 다음을 꼭 수행해야 합니다.

    • d제약 조건 비활성화

    • AWS DMS 검증을 사용하여 데이터가 일치하는지 확인합니다.

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

    Some changes from the source database had no impact when applied to the target database. See awsdms_apply_exceptions table for details.
  • Aurora Serverless는 내SQL 버전 5.7과 호환되는 Amazon Aurora 버전 2의 대상으로 사용할 수 있습니다. (Aurora Serverless를 MySQL 5.7과 호환하려면 Aurora MySQL 버전 2.07.1을 선택합니다.) Aurora Serverless에 관한 자세한 내용을 알아보려면 Amazon Aurora 사용 설명서Aurora Serverless v2 사용을 참조하세요.

  • AWS DMS 인스턴스가 쓰기 가능 모드RDS, 즉 read_onlyinnodb_read_only 파라미터가 0 또는 로 설정된 경우를 제외하고는 Aurora 또는 Amazon에 대한 리더 엔드포인트 사용을 지원하지 않습니다OFF. Amazon RDS 및 Aurora를 대상으로 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.

의 대상으로 My SQL호환 데이터베이스를 사용할 때 엔드포인트 설정 AWS DMS

엔드포인트 설정을 사용하여 추가 연결 속성을 사용하는 것과 유사한 My SQL호환 대상 데이터베이스를 구성할 수 있습니다. AWS DMS 콘솔을 사용하거나 --my-sql-settings '{"EndpointSetting": "value", ...}' JSON 구문과 AWS CLI함께의 create-endpoint 명령을 사용하여 대상 엔드포인트를 생성할 때 설정을 지정합니다.

다음 표에는 MySQL를 대상으로 사용할 수 있는 엔드포인트 설정이 나와 있습니다.

명칭 설명

TargetDbType

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

기본 값: MULTIPLE_DATABASES

유효값: {SPECIFIC_DATABASE, MULTIPLE_DATABASES}

예제: --my-sql-settings '{"TargetDbType": "MULTIPLE_DATABASES"}'

ParallelLoadThreads

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

기본값: 1

유효값: 1~5

예제: --my-sql-settings '{"ParallelLoadThreads": 1}'

AfterConnectScript

AWS DMS 가 엔드포인트에 연결된 즉시 실행할 스크립트를 지정합니다.

예를 들어 내 SQL호환 대상에서 수신된 문을 데이터베이스의 기본 컴파일 인 문자 집합인 latin1 문자 집합으로 변환하도록 지정할 수 있습니다. 이 파라미터는 일반적으로 UTF8 클라이언트에서 변환할 때 성능을 개선합니다.

예제: --my-sql-settings '{"AfterConnectScript": "SET character_set_connection='latin1'"}'

MaxFileSize

내 SQL호환 데이터베이스로 데이터를 전송하는 데 사용되는 모든 .csv 파일의 최대 크기(KB)를 지정합니다.

기본값: 32,768KB(32MB)

유효값: 1–1,048,576

--my-sql-settings '{"MaxFileSize": 512}'

추가 연결 속성을 사용하여 My SQL호환 대상 데이터베이스를 구성할 수도 있습니다.

다음 표에는 MySQL를 대상으로 사용할 수 있는 추가 연결 속성이 나와 있습니다.

명칭 설명

Initstmt=SET FOREIGN_KEY_CHECKS=0;

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

예제: --extra-connection-attributes "Initstmt=SET FOREIGN_KEY_CHECKS=0;"

Initstmt=SET time_zone

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

기본 값: UTC

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

예제: --extra-connection-attributes "Initstmt=SET time_zone=US/Pacific;"

또는 --my-sql-settings 명령의 AfterConnectScript 파라미터를 사용하여 외래 키 점검을 비활성화하고 데이터베이스의 시간대를 지정할 j수 있습니다.

내의 대상 데이터 유형SQL

다음 표에는를 사용할 때 지원되는 내SQL 데이터베이스 대상 데이터 형식 AWS DMS 과 AWS DMS 데이터 형식의 기본 매핑이 나와 있습니다.

AWS DMS 데이터 유형에 대한 자세한 내용은 섹션을 참조하세요AWS Database Migration Service에서 사용되는 데이터 형식.

AWS DMS 데이터 유형

내SQL 데이터 유형

BOOLEAN

BOOLEAN

BYTES

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

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

DATE

DATE

TIME

TIME

TIMESTAMP

“저울이 => 0이고 =< 6인 경우: DATETIME (저울)

스케일이 => 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에 ucs2와 LONGTEXT 함께를 사용합니다SET.

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

CLOB

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

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

길이가 0이면 LONGTEXT (전체 LOB 지원)를 사용합니다.