마이그레이션 도구 옵션 살펴보기

완료됨

Azure Database for MySQL 유연한 서버로 데이터를 계획하고 마이그레이션하는 데 사용할 수 있는 여러 가지 도구가 있습니다. 다음 섹션에 설명된 대로 각 옵션에는 장단점이 있습니다.

Azure Migrate를 사용하여 MySQL 워크로드 검색 및 평가

Azure Migrate는 물리적 환경에 호스트된 서버, 데이터베이스, 웹 애플리케이션을 비롯한 온-프레미스 인프라를 대규모로 Azure PaaS(Platform-as-a-Service) 및 IaaS(Infrastructure-as-a-Service) 대상으로 검색, 평가 및 마이그레이션하기 위한 중앙 집중식 허브를 제공합니다. Azure Migrate(미리 보기)의 MySQL 검색 및 평가 기능은 다음을 수행하여 계획 단계에서 도움을 줍니다.

  • 사용자 환경에서 MySQL 인스턴스와 해당 특성 검색
  • Azure Database for MySQL – 유연한 서버로의 마이그레이션 준비 상태 평가
  • Azure Database for MySQL – 유연한 서버에서 MySQL 워크로드를 호스팅하는 데 적절한 컴퓨팅 및 스토리지 SKU와 관련 비용에 대한 추천을 받아보세요.

Azure Database for MySQL Import CLI

Azure Database for MySQL Import는 MySQL 온-프레미스 또는 VM(가상 머신) 워크로드를 Azure Database for MySQL - 유연한 서버로 원활하게 마이그레이션할 수 있는 단일 CLI 명령입니다. 단순하고 빠른 마이그레이션 경로를 제공합니다. 이 명령은 사용자 입력에 따라 구성된 대상 유연한 서버를 프로비전한 다음, Azure Blob Storage 계정에 저장된 원본 서버의 실제 백업 파일(Percona XtraBackup을 사용하여 가져온)을 대상 유연한 서버 인스턴스로 복원합니다.

CLI 명령은 다음과 같습니다. az mysql flexible-server --import

가져오기 CLI를 평가할 때 다음 고려 사항을 고려해야 합니다.

  • 원본 서버 구성에는 다음 매개 변수와 값이 포함되어야 합니다.

    lower_case_table_names = 1
    innodb_file_per_table = ON
    
  • 시스템 테이블스페이스 이름은 크기가 12MB(MySQL 기본값) 이상인 ibdata1이어야 합니다.

  • 마이그레이션에는 InnoDB 엔진만 지원됩니다.

  • 구성(방화벽, 사용자, 권한)과 같은 원본 서버의 특정 요소는 마이그레이션되지 않습니다.

  • 성능 최적화를 위해 마이그레이션 중에는 HA(고가용성)가 사용하지 않도록 설정됩니다. 마이그레이션이 완료된 후 HA를 다시 사용하도록 설정해야 합니다.

Azure Database Migration Service

Azure Database Migration Service는 Azure 데이터 플랫폼으로의 데이터베이스 마이그레이션을 간소화, 안내, 자동화하는 데 도움이 되는 완전 관리형 서비스입니다.

Azure Database Migration Service는 반복 가능한 마이그레이션 프로젝트를 만들고 실행하여 작동합니다. 원본은 온-프레미스 워크로드부터 Amazon RDS MySQL과 같은 클라우드 기반 워크로드까지 다양합니다. Azure Database Migration Service는 기술적으로는 오프라인 마이그레이션 도구이지만 MySQL binlog를 사용하여 가동 중지 시간이 거의 없는 온라인 마이그레이션을 수행합니다.

mysqldump

일반적으로 MySQL과 함께 설치되는 mysqldump 클라이언트 유틸리티는 데이터베이스 백업 도구입니다. mysqldump를 사용하여 원본 데이터베이스의 스키마와 콘텐츠를 SQL 문으로 덤프할 수 있습니다. 그런 다음 이러한 문을 있는 그대로 실행하여 전체 또는 부분 콘텐츠를 대상 데이터베이스에 복원할 수 있습니다.

대규모 데이터 세트의 경우 SQL 문을 실행하여 덤프를 복원하면 성능이 저하될 수 있습니다. 예를 들어, 인덱스는 한 번에 한 문씩 업데이트되므로 디스크 I/O 성능이 오버로드될 수 있습니다. 따라서 mysqldump를 대량 데이터 마이그레이션에 최적화된 mydumpermyloader와 같은 도구와 페어링하면 마이그레이션 속도를 높일 수 있습니다. 가져오는 데이터를 수용하기 위해 대상 데이터베이스의 랜딩 존인 데이터베이스 스키마를 다시 만들려면 mysqldump를 사용합니다.

경우에 따라 마이그레이션 데이터 전송을 사용자 지정해야 합니다. 테스트를 위해 데이터 하위 집합을 내보내거나 고객에 대한 대상 데이터베이스의 데이터를 바꿀 수 있습니다. 마이그레이션하기 전에 테스트 데이터베이스의 문제를 디버깅하기 위해 개인 데이터를 수정하는 등 데이터를 수정할 수도 있습니다.

이러한 시나리오에서는 mysqldump가 최고의 유연성을 제공합니다. SQL 문이 포함된 파일을 내보내므로 대상 서버에서 문을 실행하기 전에 데이터를 수정하는 방법을 선택할 수 있습니다.

mydumper 및 myloader

mydumpermyloader는 오픈 소스 MySQL 백업 도구인 MyDumper 패키지의 일부입니다. 전체 스키마를 SQL 문으로 출력하여 선형으로 다시 실행하는 mysqldump 도구와 달리 MyDumper 도구는 병렬 처리를 활용하고 테이블 및 사람이 읽을 수 있는 형식으로 별도의 파일을 사용할 뿐만 아니라 정확한 원본 및 대상 이진 로그 위치를 유지하는 등의 이점을 제공합니다.

대규모 데이터베이스를 마이그레이션하려면 mydumpermyloader를 사용하는 것이 좋습니다. 이러한 도구는 병렬 처리를 사용하여 10배 이상의 성능을 제공하기 때문입니다.

이 도구는 Linux용 rpm 및 deb 패키지와 Homebrew를 통해 macOS용 이진 릴리스로 제공됩니다. 다른 플랫폼에서는 원본에서 도구를 컴파일해야 하므로 복잡성이 발생합니다.

MySQL Workbench

MySQL Workbench는 MySQL 작업을 위한 GUI(그래픽 사용자 인터페이스)를 제공하고 데이터베이스 마이그레이션용 도구를 포함한 다양한 도구에 대한 액세스를 제공합니다. MySQL Workbench는 MySQL Workbench 기능 목록에 설명된 대로 MySQL의 커뮤니티 및 상용 버전에서 사용할 수 있습니다.

MySQL binlog

mysqlbinlog 도구는 테이블 수정이나 데이터 삽입, 업데이트 및 삭제와 같은 데이터베이스 변경 이벤트를 기록하는 MySQL 이진 로그를 사용합니다. 각 변경 내용은 점진적으로 증가하는 위치를 사용하여 식별되며, mysqlbinlog 도구를 사용하여 각 변경 내용을 검사하고 조작할 수 있습니다.

온라인 및 오프라인 마이그레이션의 일부로 이진 로그를 사용할 수 있습니다.

  • 온라인 마이그레이션에서 이진 로그는 원본에서 대상으로 실시간 데이터 변경 내용을 복제하기 위한 핵심 메커니즘입니다.
  • 오프라인 마이그레이션의 경우 이진 로그는 이전에 마이그레이션된 스냅샷 이후의 변경 내용을 정확하게 생성하여 증분 마이그레이션을 가능하게 합니다.

이진 로그 유지 관리에는 추가 처리 및 스토리지 리소스가 필요합니다.