Azure SQL 마이그레이션 확장을 사용하여 Azure SQL Database로 마이그레이션

완료됨

Azure로 마이그레이션하는 동안 데이터베이스를 오프라인으로 전환할 수 있는 경우, 사용할 수 있는 몇 가지 도구가 있습니다.

여기 자전거 제조 시나리오에서 HR 데이터베이스는 중요 비즈니스용으로 간주되지만 주말에는 거의 사용되지 않습니다. 금요일 저녁과 월요일 아침 사이에 오프라인 마이그레이션을 실행하려고 계획했지만 최적 마이그레이션 방법을 평가하려고 합니다.

모든 마이그레이션 전 검사는 Azure Data Studio용 Azure SQL 마이그레이션 확장 또는 Azure Migrate에서 수행한 것으로 가정합니다. 이 프로세스는 기능 및 호환성 문제가 해결되었는지 확인합니다.

Azure Data Studio용 Azure SQL 마이그레이션 확장을 사용하여 마이그레이션

Azure Data Studio용 Azure SQL 마이그레이션 확장은 SQL Server 데이터베이스를 Azure로 마이그레이션하기를 준비하는 데 도움이 되는 도구입니다. 마이그레이션 준비 상태를 평가하고, 요구 사항에 가장 적합한 Azure 리소스를 권장하며, 마이그레이션 프로세스를 쉽게 하도록 지원합니다. 소규모 및 중간 규모의 데이터베이스에는 확장을 사용하는 것이 좋습니다.

Azure Data Studio용 Azure SQL 마이그레이션 확장의 아키텍처 스크린샷.

Azure SQL 마이그레이션 확장은 최신 버전의 Data Migration Services를 사용하며 SQL Server 데이터베이스가 Azure SQL로 마이그레이션할 준비가 되었는지 여부를 평가할 수 있는 고급 평가 기능이 포함되어 있습니다.

또한 Azure SQL 마이그레이션 확장을 무료로 사용하여 여러 개의 SQL Server 데이터베이스를 마이그레이션할 수 있습니다.

아래 단계에서는 Azure Data Studio용 Azure SQL 마이그레이션 확장을 사용한 Azure SQL Database로의 마이그레이션 프로세스를 강조하여 설명합니다.

단계 설명
설치 Azure Data Studio 및 Azure SQL 마이그레이션 확장을 설치합니다. Azure Data Studio를 열고 Azure SQL로 마이그레이션 마법사를 시작합니다. 이 마법사는 전체 마이그레이션 프로세스를 안내합니다.
1단계: 평가용 데이터베이스 마이그레이션하려는 데이터베이스를 선택합니다.
2단계: 평가 결과 및 권장 사항 마이그레이션 준비 상태를 평가합니다. 이 도구는 마이그레이션 프로세스에 영향을 줄 수 있는 잠재적인 문제를 식별합니다. 현재 데이터베이스에서 성능 데이터를 수집합니다. 이 데이터는 Azure SQL 설정에 대한 권장 사항을 제시하는 데 사용됩니다.
3단계: Azure 대상 Azure 계정과 대상 Azure SQL Database를 선택합니다.
4단계: Azure Database Migration Service 기존 Azure Database Migration Service를 선택하거나 새로 하나 만듭니다.
5단계: 데이터 원본 구성 자체 호스팅 통합 런타임에서 원본에 연결하는 데 사용되는 자격 증명을 입력합니다. 원본에서 대상으로 마이그레이션할 테이블을 선택합니다. 마이그레이션할 테이블을 선택하기 전에 dacpac 확장, Azure Data Studio의 SQL Database Projects 확장 또는 DMA를 사용하여 원본에서 대상으로의 데이터베이스 스키마를 생성했는지 확인합니다.
6단계: 요약 마이그레이션 정보를 검토하고 마이그레이션 프로세스를 시작합니다.

이 Database Migration Service는 빈 테이블이 선택된 경우조차 빈 테이블을 건너뛰어 마이그레이션 프로세스를 최적화합니다.

Important

현재 Azure SQL Database는 이름에 더블 바이트 문자가 포함된 테이블은 마이그레이션을 지원하지 않습니다. 이에 대한 해결 방법으로 마이그레이션 전에 테이블 이름을 일시적으로 바꾸고 마이그레이션이 끝난 후 원래 이름으로 되돌릴 수 있습니다.

마이그레이션 상태

마이그레이션 진행 상황을 계속 알려주는 몇 가지 상태가 있습니다.

  • 복사 준비 중: 서비스에서 대상 테이블 내의 자동 통계, 트리거 및 인덱스를 비활성화하고 있습니다.

  • 복사 중: 원본 데이터베이스에서 대상 데이터베이스로 데이터를 복사하고 있습니다.

  • 복사 완료: 데이터 복사가 완료되고, 서비스가 다른 테이블에서 복사를 완료하기를 기다리고 있습니다.

  • 인덱스 다시 빌드 중: 서비스가 대상 테이블에서 인덱스를 다시 빌드하고 있습니다.

  • 성공: 모든 데이터가 복사되고 인덱스가 다시 빌드되었습니다.

성능 고려 사항

마이그레이션 속도는 대상 Azure SQL Database SKU 및 자체 호스팅 통합 런타임에 따라 크게 달라집니다. 최적의 마이그레이션 환경을 위해서는 마이그레이션 프로세스를 시작하기 전에 Azure SQL Database 컴퓨팅 리소스를 확장하는 것이 좋습니다.

서버가 자체 호스팅 통합 런타임을 설치하게 할 때는 이 머신이 데이터 복사 작업의 CPU 및 메모리 로드를 처리할 수 있는지 확인합니다.

Azure SQL ADF(Azure Data Factory)가 작업을 시작하는 데 시간이 걸리기 때문에 대규모 테이블에서(테이블이 작다 하더라도) 데이터베이스 마이그레이션이 느려질 수 있습니다.

대규모 Blob 열이 있는 테이블은 시간 초과로 인해 마이그레이션하지 못할 수 있습니다.

단일 컴퓨터에서 자체 호스팅 통합 런타임당 최대 10개의 동시 데이터베이스 마이그레이션을 권장합니다. 동시 데이터베이스 마이그레이션을 늘리려면 자체 호스팅 런타임을 스케일 아웃하거나 서로 다른 컴퓨터에 별도의 인스턴스를 만듭니다.

마이그레이션 모니터링

데이터베이스 마이그레이션을 시작한 후에는 Azure Data Studio에서 진행 상황을 모니터링할 수 있습니다. 또한 Azure Portal의 Azure Database Migration Service 리소스에서 진행 상황을 추적할 수 있습니다.

Azure Data Studio에서 마이그레이션 모니터링

데이터베이스 마이그레이션 상태에서 진행 중, 완료 및 실패한 마이그레이션(있는 경우)을 추적하거나 모든 데이터베이스 마이그레이션을 볼 수 있습니다.

  1. 마이그레이션 대시보드에서 진행 중인 데이터베이스 마이그레이션을 선택하여 진행 중인 마이그레이션을 확인합니다.

    Azure Data Studio용 Azure 마이그레이션 확장의 마이그레이션 대시보드 스크린샷.

  2. 데이터베이스 이름을 선택하면 자세한 내용을 확인할 수 있습니다.

    Azure Data Studio용 Azure 마이그레이션 확장의 마이그레이션 상세 정보 스크린샷.

  3. 마이그레이션 상태 속성이 완료 중으로 바뀌고, 마이그레이션이 완료된 후에는 성공으로 바뀝니다.

    Azure Data Studio용 Azure 마이그레이션 확장에서 마이그레션이 완료되었음을 나타내는 마이그레이션 상세 정보의 스크린샷.

Azure Portal에서 마이그레이션 모니터링

또는 Azure Database Migration Service를 사용하여 마이그레이션 작업을 모니터링할 수 있습니다.

데이터베이스 마이그레이션을 모니터링하려면 일반적으로 Azure Portal로 이동하여 Database Migration Service 인스턴스를 찾습니다. 서비스를 찾았으면 인스턴스 개요를 볼 수 있습니다. 마이그레이션 모니터링을 선택하여 진행 중인 데이터베이스 마이그레이션에 대한 자세한 정보에 액세스합니다.

Azure Portal의 Azure Database Migration Service에 있는 모니터링 페이지의 스크린샷.

마이그레이션 상태가 성공이면 대상 서버로 이동하여 대상 데이터베이스를 확인합니다. 데이터베이스 스키마와 데이터를 확인합니다.

대규모 마이그레이션

오프라인에서 PowerShell 또는 Azure CLI를 사용하여 SQL Server 온-프레미스에서 Azure SQL Database로 데이터베이스를 마이그레이션할 수도 있습니다.

다음 예제에서는 AdventureWorks 데이터베이스를 Azure SQL Database로 마이그레이션합니다.


$sourcePass = ConvertTo-SecureString "password" -AsPlainText -Force
$targetPass = ConvertTo-SecureString "password" -AsPlainText -Force

New-AzDataMigrationToSqlDb `
-ResourceGroupName MyGroup `
-SqlDbInstanceName myserver `
-Kind "SqlDb" `
-TargetDbName AdventureWorks `
-SourceDatabaseName AdventureWorks `
-SourceSqlConnectionAuthentication SQLAuthentication `
-SourceSqlConnectionDataSource myserver.microsoft.com `
-SourceSqlConnectionUserName user `
-SourceSqlConnectionPassword $sourcePass `
-Scope "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.Sql/servers/myserver" `
-TargetSqlConnectionAuthentication SQLAuthentication `
-TargetSqlConnectionDataSource myserver.database.windows.net `
-TargetSqlConnectionUserName user `
-TargetSqlConnectionPassword $targetPass `
-MigrationService "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.DataMigration/SqlMigrationServices/MyService"

다음 예제에서는 AdventureWorks 데이터베이스의 하위 테이블 집합을 마이그레이션합니다.


New-AzDataMigrationToSqlDb `
-ResourceGroupName MyGroup `
-SqlDbInstanceName myserver `
-Kind "SqlDb" `
-TargetDbName AdventureWorks `
-SourceDatabaseName AdventureWorks `
-SourceSqlConnectionAuthentication SQLAuthentication `
-SourceSqlConnectionDataSource myserver.microsoft.com `
-SourceSqlConnectionUserName user `
-SourceSqlConnectionPassword $sourcePass `
-Scope "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.Sql/servers/myserver" `
-TargetSqlConnectionAuthentication SQLAuthentication `
-TargetSqlConnectionDataSource myserver.database.windows.net `
-TargetSqlConnectionUserName user `
-TargetSqlConnectionPassword $targetPass `
-TableList "[Person].[Person]", "[Person].[EmailAddress]" `
-MigrationService "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.DataMigration/SqlMigrationServices/MyService"

사용 가능한 Azure 마이그레이션 확장 PowerShell 및 Azure CLI 명령에 대한 자세한 내용은 데이터 마이그레이션 확장용 PowerShell 모듈데이터 마이그레이션 확장용 Azure CLI 링크를 참조하세요.