Azure Database for MySQL 가져오기 CLI를 사용하여 온-프레미스 MySQL 서버 마이그레이션
온-프레미스 MySQL 서버를 Azure Database for MySQL 유연한 서버로 마이그레이션해야 합니다. 네트워크 설정에 의해 원본 서버와 대상 서버 간의 직접 연결이 차단되어 있으므로, 오프라인 마이그레이션을 수행하기로 합니다. 다음 다이어그램에는 프로시저가 요약되어 있습니다.
필수 조건
원본 서버에 다음 설정이 구성되어 있는지 확인합니다.
-
lower_case_table_names = 1 innodb_file_per_table = ON innodb_page_size = 16348 (MySQL Default)
시스템 테이블스페이스 이름은
ibdata1
이어야 합니다.시스템 테이블스페이스 크기는 12MB 이상이어야 합니다. (MySQL 기본값)
INNODB 엔진만 지원됩니다.
-
Azure Blob Storage 컨테이너가 필요합니다. 적절한 컨테이너가 없는 경우 이 빠른 시작을 사용하여 컨테이너를 만듭니다. Azure Blob 컨테이너의 SAS(공유 액세스 서명) 토큰이 필요합니다. 성능을 최적화하려면 스토리지와 대상 유연한 서버를 동일한 지역에 유지합니다.
데이터베이스에 변경이 발생하지 않도록 애플리케이션을 종료해야 합니다.
프로시저
MySQL 데이터베이스의 물리적 백업을 만듭니다. Percona의 오픈 소스 XtraBackup 도구를 사용합니다.
다음 단계에 따라 백업 파일을 Azure Blob Storage에 업로드합니다.
변수를 입력한 후 이 명령을 실행하여 가져오기를 트리거합니다. Standard_D2ds_v4를 변경하여 컴퓨팅 크기를 수정할 수도 있습니다.
-
az mysql flexible-server import create --data-source-type "azure_blob" --data-source $BLOB_DATA_URL --data-source-backup-dir "mysql_backup_percona" –-data-source-token $SAS_TOKEN --resource-group $RESOURCE_GROUP --name $FLEXIBLE_SERVER_NAME –-sku-name Standard_D2ds_v4 --tier GeneralPurpose –-version 8.0 -–location westus --auto-scale-iops Enabled
가져오기에 걸리는 시간은 백업 파일 크기에 비례합니다. 1GiB 백업 파일은 가져오는 데 약 1분이 걸리고, 1TB 파일은 약 23분이 걸립니다.
-
다음 제한 사항에 유의합니다.
- 사용자와 권한은 마이그레이션되지 않습니다. 가져오기 작업이 완료된 후 로그인을 마이그레이션하려면 사용자와 권한을 수동으로 덤프해야 합니다.
- 가져오기 중에는 고가용성을 사용할 수 없으므로 마이그레이션이 완료된 후 고가용성을 활성화합니다.
사용자와 권한을 마이그레이션한 후 애플리케이션을 유연한 서버에 연결하면 마이그레이션이 완료됩니다.
팁
또는 온라인 마이그레이션을 진행하고 있었다면, 앞에서 설명한 대로 내보내기와 가져오기를 수행한 다음, 원본에서 대상으로의 복제 설정을 완료했을 것입니다. 대상이 원본과 완전히 동기화되었을 때 원본 데이터베이스를 종료하기 전에 애플리케이션을 컷오버했을 것입니다.