다음을 통해 공유


MySQL에서 Azure Database for MySQL로 데이터 마이그레이션 - MySQL 변경 내용 복제

"트랜잭션 일관성 사용"이 포함된 오프라인 시나리오를 사용하여 변경 내용 복제 마이그레이션을 실행하면 기업은 데이터베이스가 계속 작동하는 동안 해당 데이터베이스를 Azure로 마이그레이션할 수 있습니다. 즉, 중요한 애플리케이션의 최소 가동 중지 시간으로 마이그레이션을 완료하여 서비스 수준 가용성에 미치는 영향과 최종 고객의 불편을 줄 수 있습니다.

참고 항목

이 문서에는 Microsoft에서 더 이상 사용하지 않는 용어인 슬레이브라는 용어에 대한 참조가 포함되어 있습니다. 소프트웨어에서 용어가 제거되면 이 문서에서 해당 용어가 제거됩니다.

현재 구현

"트랜잭션 일관성 사용"이 포함된 오프라인 마이그레이션 시나리오를 실행하여 들어오는 변경 내용을 복제할 bin 로그 파일 및 위치를 가져와야 합니다. DMS 포털 UI는 일관된 스냅샷을 위해 원본에서 잠금을 가져온 시간에 맞춰진 이진 로그 파일 이름과 위치를 표시합니다. 변경 내용 복제 마이그레이션에서 이 값을 사용하여 들어오는 변경 내용을 스트리밍할 수 있습니다.

원본 세부 정보 추가 화면의 스크린샷.

변경 내용 복제 마이그레이션을 실행하는 동안 대상이 원본 서버를 거의 따라잡으면 원본 데이터베이스에 들어오는 모든 트랜잭션을 중지하고 보류 중인 모든 트랜잭션이 대상 데이터베이스에 적용될 때까지 기다립니다. 대상 데이터베이스가 원본 서버에서 최신 상태인지 확인하려면 'SHOW MASTER STATUS;' 쿼리를 실행한 다음, 해당 위치를 마지막으로 커밋된 binlog 이벤트(마이그레이션 진행률에 표시됨)와 비교합니다. 두 위치가 동일하면 대상이 모든 변경 내용을 따라잡았으므로 컷오버를 시작할 수 있습니다.

변경 내용 복제 작동 방식

현재 구현은 소스 서버의 binlog 변경 사항을 스트리밍하고 이를 대상 서버에 적용하는 것을 기반으로 합니다. 데이터 입력 복제와 마찬가지로 이는 설정이 더 쉬울 수 있으며 원본 서버와 대상 서버 간의 물리적 연결이 필요하지 않습니다.

서버는 여기에 설명된 대로 이진 데이터가 포함된 스트림으로 Binlog를 보낼 수 있습니다. 클라이언트는 스트림을 시작할 초기 로그 위치를 지정할 수 있습니다. 로그 파일 이름은 원본에서 gtid 모드를 사용하는 경우 로그 위치, 해당 파일 내의 위치 및 선택적으로 GTID(전역 트랜잭션 ID)를 설명합니다.

데이터 변경 내용은 개별 행에 대한 데이터를 포함하는 "행" 이벤트로 전송됩니다(삽입, 삭제 또는 업데이트인 작업 유형에 따라 변경 이전 및/또는 이후). 그런 다음, 행 이벤트는 BINLOG 문(MySQL 8.0 참조 설명서 :: 13.7.8.1 BINLOG 문)을 사용하여 원시 형식으로 적용됩니다. 그러나 5.7 서버로의 DMS 마이그레이션의 경우 DMS는 변경 내용을 BINLOG 문으로 적용하지 않고(DMS에는 이를 수행하는 데 필요한 권한이 없기 때문에) 대신 행 이벤트를 INSERT, UPDATE 또는 DELETE 문으로 변환합니다.

필수 조건

변경 내용 복제 마이그레이션을 성공적으로 완료하려면 다음 필수 구성 요소가 있는지 확인합니다.

  • 선택한 MySQL 명령줄 도구를 사용하여 원본 서버에서 log_bin이 사용하도록 설정되어 있는지 여부를 확인합니다. Binlog는 항상 기본적으로 켜져 있는 것은 아니므로 마이그레이션을 시작하기 전에 사용하도록 설정되어 있는지 확인합니다. 원본 서버에서 log_bin이 사용하도록 설정되어 있는지 확인하려면 SHOW VARIABLES LIKE 'log_bin' 명령을 실행합니다.
  • 사용자에게 bin 로그를 적용하기 위한 대상 서버에 대한 "REPLICATION_APPLIER" 또는 "BINLOG_ADMIN" 권한이 있는지 확인합니다.
  • 사용자에게 대상 서버에 대한 "REPLICATION SLAVE" 권한이 있는지 확인합니다.
  • 사용자에게 bin 로그를 읽고 적용하기 위한 원본 서버에 대한 "REPLICATION CLIENT""REPLICATION SLAVE" 권한이 있는지 확인합니다.
  • "트랜잭션 일관성 사용"이 포함된 오프라인 마이그레이션 시나리오를 실행하여 bin 로그 파일 및 위치를 가져옵니다.
  • 변경 내용 마이그레이션 복제를 대상으로 하는 경우 원본 서버에서 binlog_expire_logs_seconds 매개 변수를 구성하여 복제본이 변경 내용을 커밋하기 전에 binlog 파일이 제거되지 않도록 합니다. 2일 이상을 두고 시작하는 것이 좋습니다. 컷오버에 성공하면 값을 초기화할 수 있습니다.

제한 사항

  • 변경 내용 복제 마이그레이션을 수행할 때 대상 서버의 데이터베이스 이름은 원본 서버의 이름과 동일해야 합니다.
  • 지원은 ROW binlog 형식으로 제한됩니다.
  • DDL 변경 내용 복제는 DMS UI에서 선택한 개체에 대한 데이터 정의 및 관리 문 복제 옵션을 선택한 경우에만 지원됩니다. 복제 기능은 초기 로드 후에 발생하고 이진 로그에 대상에 기록되는 데이터 정의 및 관리 문 복제를 지원합니다.
  • 변경 내용을 복제할 때는 데이터베이스 또는 테이블 이름 바꾸기가 지원되지 않습니다.