마이그레이션 가이드: SQL Server를 Azure SQL Managed Instance로

적용 대상:Azure SQL Managed Instance

이 가이드는 SQL Server 인스턴스를 Azure SQL Managed Instance로 마이그레이션하는 데 도움이 됩니다.

온-프레미스 또는 다음 환경에서 실행 중인 SQL Server를 마이그레이션할 수 있습니다.

  • Virtual Machines의 SQL Server
  • Amazon EC2(Elastic Compute Cloud)
  • SQL Server용 Amazon RDS(관계형 데이터베이스 서비스)
  • Google Compute Engine
  • SQL Server용 클라우드 SQL - GCP(Google Cloud Platform)

마이그레이션에 대한 자세한 내용은 마이그레이션 개요를 참조하세요. 다른 마이그레이션 가이드는 데이터베이스 마이그레이션을 참조하세요.

Migration process flow

필수 구성 요소

SQL Server를 Azure SQL Managed Instance로 마이그레이션하려면 다음을 수행한 상태여야 합니다.

사전 마이그레이션

원본 환경이 지원되는지 확인한 후에 마이그레이션 전 단계부터 시작합니다. 모든 기존 데이터 원본을 검색하고, 마이그레이션 적합성을 평가하고, 마이그레이션을 방해할 수 있는 차단 문제를 식별합니다.

검색

검색 단계에서 네트워크를 스캔하여 조직에서 사용하는 모든 SQL Server 인스턴스와 기능을 식별합니다.

Azure Migrate를 사용하여 온-프레미스 서버의 마이그레이션 적합성을 평가하고, 성능 기반 크기 조정을 수행하고, Azure에서의 해당 작업에 대한 비용 예측을 제공합니다.

또는 MAP Toolkit(Microsoft Assessment and Planning Toolkit)을 사용하여 현재 IT 인프라를 평가합니다. 도구 키트는 강력한 인벤토리, 평가, 보고 도구를 제공하여 마이그레이션 계획 프로세스를 간소화합니다.

검색 단계에서 사용할 수 있는 도구에 대한 자세한 내용은 데이터 마이그레이션 시나리오에 사용할 수 있는 서비스 및 도구를 참조하세요.

데이터 원본을 검색한 후에는 Azure SQL Managed Instance로 마이그레이션할 수 있는 온-프레미스 SQL Server 인스턴스를 평가하여 마이그레이션 차단 또는 호환성 문제를 식별합니다. 다음 단계를 진행하여 데이터베이스를 평가하고 Azure SQL Managed Instance로 마이그레이션합니다.

Steps for migration to Azure SQL Managed Instance

평가

참고

VMware에서 전체 SQL Server 데이터 자산을 대규모로 평가하는 경우 Azure Migrate를 사용하여 Azure SQL 배포 권장 사항, 대상 크기 조정 및 월별 추정치를 가져옵니다.

SQL Managed Instance가 애플리케이션의 데이터베이스 요구 사항과 호환되는지 확인합니다. SQL Managed Instance는 SQL Server를 사용하는 대부분의 기존 애플리케이션에서 리프트 앤 시프트 방식으로 쉽게 마이그레이션할 수 있도록 디자인되었습니다. 그러나 경우에 따라 아직 지원되지 않는 기능이 필요할 수 있으며 해결 방법을 구현하는 비용이 너무 많이 듭니다.

Azure Data Studio용 Azure SQL 마이그레이션 확장은 Azure 권장 사항을 평가 및 다운로드하고, SQL Server 데이터베이스를 온-프레미스에서 Azure Virtual Machines의 SQL Server로 마이그레이션할 수 있는 원활한 마법사 기반 환경을 제공합니다. 또한 마이그레이션 차단 또는 경고를 강조 표시하는 이 확장에는 워크로드의 성능 요구 사항을 충족하도록 적절한 크기의 Azure SQL Managed Instance를 권장하기 위해 데이터베이스의 성능 데이터를 수집하는 Azure 권장 사항 옵션도(최소 가격으로) 포함되어 있습니다.

Azure Data Studio용 Azure SQL 마이그레이션 확장을 사용하여 데이터베이스를 평가하여 다음을 가져올 수 있습니다.

Azure SQL 마이그레이션 확장을 사용하여 환경을 평가하려면 다음 단계를 수행합니다.

  1. Azure Data Studio용 Azure SQL 마이그레이션 확장을 엽니다.
  2. 원본 SQL Server 인스턴스에 연결합니다.
  3. Azure Data Studio의 Azure SQL 마이그레이션 마법사에서 Azure SQL 마이그레이션 단추를 클릭합니다.
  4. 평가할 데이터베이스를 선택하고 다음을 클릭합니다.
  5. Azure SQL 대상을 선택합니다. 이 경우 Azure SQL Managed Instance입니다.
  6. 보기/선택을 클릭하여 평가 보고서를 검토합니다.
  7. 마이그레이션 차단 및 기능 패리티 문제를 찾습니다. 평가 보고서를 조직의 다른 팀 또는 직원과 공유할 수 있는 파일로 내보낼 수도 있습니다.
  8. 마이그레이션 후 활동을 최소화하는 데이터베이스 호환성 수준을 결정합니다.

Azure SQL 마이그레이션 확장을 사용하여 Azure 권장 사항을 얻으려면 다음 단계를 수행합니다.

  1. Azure Data Studio용 Azure SQL 마이그레이션 확장을 엽니다.
  2. 원본 SQL Server 인스턴스에 연결합니다.
  3. Azure Data Studio의 Azure SQL 마이그레이션 마법사에서 Azure SQL 마이그레이션 단추를 클릭합니다.
  4. 평가할 데이터베이스를 선택하고 다음을 클릭합니다.
  5. Azure SQL 대상을 선택합니다. 이 경우 Azure SQL Managed Instance입니다.
  6. Azure 권장 사항 섹션으로 이동하여 Azure 권장 사항 가져오기를 클릭합니다.
  7. 지금 성능 데이터 수집을 선택합니다. 로컬 컴퓨터에서 폴더를 선택하여 성능 로그를 저장한 다음, 시작을 선택합니다.
  8. 10분 후에 Azure Data Studio는 권장 사항을 Azure SQL Managed Instance에서 사용할 수 있음을 나타냅니다.
  9. Azure SQL 대상 패널에서 Azure SQL Managed Instance 카드를 확인하여 Azure SQL Managed Instance SKU 권장 사항을 검토합니다.

자세한 내용은 자습서: Azure Data Studio를 사용하여 SQL Server를 Azure SQL Managed Instance로 온라인 마이그레이션을 참조하세요.

자세한 내용은 자습서: Azure Data Studio를 사용하여 SQL Server를 Azure SQL Managed Instance로 오프라인 마이그레이션을 참조하세요.

평가에서 여러 장애 요소가 발견되어 데이터베이스가 Azure SQL Managed Instance로 마이그레이션할 준비가 되지 않은 것으로 확인되는 경우 다음을 고려하세요.

확장된 평가 및 분석

Azure Data Studio용 Azure SQL Migration 확장Azure Migrate는 분석을 위해 확장된 평가 및 평가 보고서의 통합 수행을 지원합니다.

여러 서버 및 데이터베이스를 대규모로 평가하고 분석하여 데이터 자산을 광범위하게 확인하려면 다음 링크를 클릭하여 자세한 내용을 참조하세요.

중요

추가 분석 및 대상의 준비 상태를 위해 결과를 Azure Migrate로 업로드하는 것을 허용하는 DMA 명령줄 유틸리티를 사용하여 여러 데이터베이스에 대한 대규모 평가 실행을 자동화할 수도 있습니다.

최적 크기의 관리되는 인스턴스에 배포

Azure Data Studio용 Azure SQL 마이그레이션 확장을 사용하여 적합한 크기의 Azure SQL Managed Instance 권장 사항을 다운로드할 수 있습니다. 확장은 원본 SQL Server 인스턴스에서 성능 데이터를 수집하여 최소한의 비용으로 워크로드의 성능 요구 사항을 충족하는 올바른 크기의 Azure 권장 사항을 제공합니다. 자세한 내용은 온-프레미스 SQL Server 데이터베이스에 적합한 크기의 Azure 권장 사항 가져오기를 참조하세요.

검색 및 평가 단계의 정보에 따라 적절한 크기의 대상 SQL Managed Instance를 만듭니다. Azure Portal, PowerShell또는 ARM(Azure Resource Manager) 템플릿을 사용하여 해당 작업을 수행할 수 있습니다.

SQL Managed Instance는 클라우드로 이동할 온-프레미스 워크로드에 맞게 조정됩니다. 작업에 적합한 수준의 리소스를 선택할 때 유연성이 높은 구매 모델이 도입되었습니다. 온-프레미스 환경에서는 실제 코어와 IO 대역폭을 사용해 이러한 워크로드의 크기를 조정하는 데 익숙할 것입니다. 관리형 인스턴스에 대한 구매 모델은 가상 코어 수 또는 “vCore 수”를 기반으로 하며, 추가 스토리지 및 IO를 별도로 사용할 수 있습니다. vCore 모델은 현재 온-프레미스에서 사용하는 제품과 비교하여 클라우드의 컴퓨팅 요구 사항을 더 쉽게 이해할 수 있는 방법입니다. 이 구매 모델을 사용하면 클라우드에서 대상 환경의 크기를 올바르게 조정할 수 있습니다. 올바른 서비스 계층 및 특성을 선택하는 데 도움이 될 수 있는 몇 가지 일반적인 지침이 여기에 설명되어 있습니다.

  • 기준 CPU 사용량을 기반으로 SQL Server에서 사용 중인 코어 수와 일치하는 관리되는 인스턴스를 프로비저닝할 수 있습니다. 단, 관리되는 인스턴스가 설치된 VM 특성과 일치하도록 CPU 특성을 스케일링해야 할 수도 있습니다.
  • 기준 메모리 사용량에 따라 일치하는 메모리가 있는 서비스 계층을 선택합니다. 메모리 양은 직접 선택할 수 없으므로 메모리가 일치하는 vCore 양을 사용하여 관리되는 인스턴스를 선택해야 합니다(예: 표준 시리즈(Gen5)의 5.1GB/vCore).
  • 파일 하위 시스템의 기준 IO 대기 시간을 기반으로 범용(대기 시간이 5ms 초과) 및 중요 비즈니스용(대기 시간이 3ms 미만) 서비스 계층 중에서 선택합니다.
  • 예상 IO 성능을 얻도록 기준 처리량을 기반으로 데이터 또는 로그 파일의 크기를 미리 할당합니다.

배포 시 컴퓨팅 및 스토리지 리소스를 선택한 다음, 나중에 Azure Portal을 사용하여 애플리케이션의 가동 중지 시간을 도입하지 않고 변경할 수 있습니다.

Managed Instance Sizing

VNet 인프라와 관리되는 인스턴스를 만드는 방법을 알아보려면 관리되는 인스턴스 만들기를 참조하세요.

중요

대상 VNet 및 서브넷을 관리형 인스턴스 VNet 요구 사항에 따라 유지해야 합니다. 호환되지 않는 경우 새 인스턴스를 만들거나 이미 만든 인스턴스를 사용하지 못할 수 있습니다. 새 네트워크 만들기기존 네트워크 구성에 대해 자세히 알아보세요.

마이그레이션

마이그레이션 전 단계와 관련된 작업을 완료하면 스키마 및 데이터 마이그레이션을 수행할 준비가 된 것입니다.

선택한 마이그레이션 방법을 사용하여 데이터를 마이그레이션합니다.

SQL Managed Instance는 온-프레미스 또는 Azure VM 데이터베이스 구현에서 대량의 데이터베이스 마이그레이션이 필요한 사용자 시나리오를 대상으로 합니다. 인스턴스 수준 및/또는 데이터베이스 간 기능을 정기적으로 사용하는 애플리케이션의 백 엔드를 리프트 앤 시프트 방식으로 이동해야 하는 경우에 최적의 선택입니다. 이러한 시나리오의 경우 애플리케이션을 다시 구성하지 않고도 Azure에서 전체 인스턴스를 해당 환경으로 이동할 수 있습니다.

SQL 인스턴스를 이동하려면 다음을 신중하게 계획해야 합니다.

  • 배치해야 하는 모든 데이터베이스(같은 인스턴스에서 실행되는 데이터베이스)의 마이그레이션.
  • 로그인, 자격 증명, SQL 에이전트 작업 및 연산자, 서버 수준 트리거를 포함하여 애플리케이션이 종속된 인스턴스 수준 개체의 마이그레이션.

SQL Managed Instance는 정기적인 DBA 활동의 일부를 기본 제공되는 플랫폼에 위임할 수 있도록 하는 관리되는 서비스입니다. 따라서 고가용성이 기본 제공되므로, 정기 백업을 위한 유지 관리 작업 또는 Always On 구성 같은 일부 인스턴스 수준 데이터는 마이그레이션할 필요가 없습니다.

이 문서에서는 권장되는 다음의 두 가지 마이그레이션 옵션에 대해 설명합니다.

  • Azure Data Studio용 Azure SQL 마이그레이션 확장 - 가동 중지 시간이 거의 없는 마이그레이션입니다.
  • 네이티브 RESTORE DATABASE FROM URL - SQL Server의 네이티브 백업을 사용하며 약간의 가동 중지 시간 필요

이 가이드에서는 가장 인기 있는 두 가지 옵션인 Azure DMS(Database Migration Service)와 네이티브 백업 및 복원에 대해 설명합니다.

다른 마이그레이션 도구는 마이그레이션 옵션 비교를 참조하세요.

Azure Data Studio용 Azure SQL 마이그레이션 확장을 사용하여 마이그레이션(가동 중지 시간 최소화)

Azure Data Studio를 사용하여 최소 가동 중지 마이그레이션을 수행하려면 아래의 상위 단계를 수행합니다. 자세한 단계별 자습서는 Azure Data Studio를 사용하여 온라인으로 SQL Server를 Azure SQL Managed Instance로 마이그레이션을 참조하세요.

  1. Azure Data StudioAzure SQL 마이그레이션 확장을 다운로드하여 설치합니다.
  2. Azure Data Studio의 확장에서 Azure SQL 마이그레이션으로 마이그레이션 마법사를 시작합니다.
  3. 평가할 데이터베이스를 선택하고 마이그레이션 준비 상태 또는 문제(있는 경우)를 확인합니다. 또한 성능 데이터를 수집하고 적절한 크기의 Azure 권장 사항을 가져옵니다.
  4. 구독에서 Azure 계정 및 대상 Azure SQL Managed Instance를 선택합니다.
  5. 데이터베이스 백업의 위치를 선택합니다. 데이터베이스 백업은 온-프레미스 네트워크 공유 또는 Azure Blob Storage 컨테이너에 있습니다.
  6. Azure Data Studio의 마법사를 사용하여 새 Azure Database Migration Service를 만듭니다. 이전에 Azure Data Studio를 사용하여 Azure Database Migration Service를 만들었다면 원하는 경우 동일한 서비스를 다시 사용할 수 있습니다.
  7. 선택 사항: 백업이 온-프레미스 네트워크 공유에 있는 경우, 원본 SQL Server 및 백업 파일이 포함된 위치에 연결할 수 있는 컴퓨터에 자체 호스팅 통합 런타임을 다운로드하여 설치합니다.
  8. 데이터베이스 마이그레이션을 시작하고 Azure Data Studio에서 진행률을 모니터링합니다. Azure Portal의 Azure Database Migration Service 리소스에서 진행률을 모니터링할 수도 있습니다.
  9. 컷오버를 완료합니다.
    1. 원본 데이터베이스로 들어오는 모든 트랜잭션을 중지합니다.
    2. Azure SQL Managed Instance에서 대상 데이터베이스를 가리키도록 애플리케이션 구성을 변경합니다.
    3. 지정된 백업 위치에 있는 원본 데이터베이스의 모든 비상 로그 백업을 가져옵니다.
    4. 모니터링 세부 정보 페이지에서 모든 데이터베이스 백업의 상태가 ‘복원됨’인지 확인합니다.
    5. 모니터링 세부 정보 페이지에서 ‘중단 완료’를 선택합니다.

백업 및 복원

신속하고 간편하게 데이터베이스를 마이그레이션할 수 있도록 하는 Azure SQL Managed Instance의 주요 기능 중 하나는 Azure Storage에 저장된 데이터베이스 백업(.bak) 파일의 원시 복원입니다. 백업과 복원은 데이터베이스 크기에 따른 비동기 작업입니다.

다음 다이어그램은 프로세스의 상위 수준 개요를 제공합니다.

Diagram shows SQL Server with an arrow labeled BACKUP / Upload to URL flowing to Azure Storage and a second arrow labeled RESTORE from URL flowing from Azure Storage to a SQL Managed Instance.

참고 항목

백업을 수행하고 백업을 Azure Storage에 업로드하고 Azure SQL Managed Instance에 네이티브 복원 작업을 수행하는 데 소요되는 시간은 데이터베이스 크기에 따라 다릅니다. 대규모 데이터베이스의 경우 작업을 수용할 수 있도록 충분한 가동 중지 시간을 확보하세요.

다음 표에는 실행되는 원본 SQL Server 버전에 따라 사용할 수 있는 방법에 대한 자세한 정보가 나와 있습니다.

단계 SQL 엔진 및 버전 백업/복원 방법
Azure Storage에 백업 저장 2012 SP1 CU2 이전 Azure Storage에 .bak 파일 직접 업로드
2012 SP1 CU2~2016 사용되지 않는 WITH CREDENTIAL 구문을 사용하여 직접 백업
2016 이상 WITH SAS CREDENTIAL 구문을 사용하여 직접 백업
Azure Storage에서 관리형 인스턴스로 복원 SAS CREDENTIAL을 사용하여 URL에서 복원

중요

  • 원시 복원 옵션을 사용하여 투명한 데이터 암호화로 보호된 데이터베이스를 관리형 인스턴스로 마이크레이션하는 경우에는 데이터베이스를 복원하기 전에 온-프레미스 또는 Azure VM SQL Server의 해당 인증서를 마이그레이션해야 합니다. 자세한 단계는 TDE 인증서를 관리형 인스턴스로 마이그레이션을 참조하세요.
  • 시스템 데이터베이스의 복원은 지원되지 않습니다. master 또는 msdb 데이터베이스에 저장된 인스턴스 수준 개체를 마이그레이션하려면, 해당 개체를 스크립팅하고 대상 인스턴스에서 T-SQL 스크립트를 실행하는 것이 좋습니다.

백업 및 복원을 사용하여 마이그레이션하려면 다음 단계를 수행합니다.

  1. Azure Blob Storage에 데이터베이스를 백업합니다. 예를 들면 SQL Server Management StudioURL에 백업을 사용합니다. Microsoft Azure 도구를 사용하여 SQL Server 2012 SP1 CU2 이전 버전의 데이터베이스를 지원할 수 있습니다.

  2. SQL Server Management Studio를 사용하여 Azure SQL Managed Instance에 연결합니다.

  3. 데이터베이스 백업을 통해 Azure Blob Storage 계정에 액세스하기 위해 공유 액세스 서명을 사용하여 자격 증명을 만듭니다. 예를 들면 다음과 같습니다.

    CREATE CREDENTIAL [https://mitutorials.blob.core.windows.net/databases]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE'
    , SECRET = 'sv=2017-11-09&ss=bfqt&srt=sco&sp=rwdlacup&se=2028-09-06T02:52:55Z&st=2018-09-04T18:52:55Z&spr=https&sig=WOTiM%2FS4GVF%2FEEs9DGQR9Im0W%2BwndxW2CQ7%2B5fHd7Is%3D'
    
  4. Azure Storage Blob 컨테이너에서 백업을 복원합니다. 예를 들면 다음과 같습니다.

    RESTORE DATABASE [TargetDatabaseName] FROM URL =
      'https://mitutorials.blob.core.windows.net/databases/WideWorldImporters-Standard.bak'
    
  5. 복원이 완료되면 SQL Server Management Studio 내 개체 탐색기에서 데이터베이스를 확인합니다.

이 마이그레이션에 대해 자세히 알아보려면 SSMS를 사용하여 Azure SQL Managed Instance로 데이터베이스 복원을 참조하세요.

참고

데이터베이스 복원 작업은 비동기적이며 다시 시도할 수 있습니다. 연결이 끊어지거나 제한 시간이 만료되는 경우 SQL Server Management Studio에서 오류가 발생할 수 있습니다. Azure SQL Database는 백그라운드에서 데이터베이스 복원을 계속 시도하며, sys.dm_exec_requestssys.dm_operation_status 보기를 사용하여 복원 진행률을 추적할 수 있습니다.

데이터 동기화 및 중단

원본에서 대상으로 데이터의 변경 내용을 지속적으로 복제/동기화하는 마이그레이션 옵션을 사용하는 경우 원본 데이터와 스키마가 대상에서 변경되고 드리프트될 수 있습니다. 데이터 동기화를 진행할 때, 마이그레이션 프로세스 도중에 원본에 대한 모든 변경 내용이 대상에 캡처되고 적용되었는지 확인하세요.

원본과 대상의 데이터가 모두 동일한지 확인한 후 원본에서 대상 환경으로 전환할 수 있습니다. 비즈니스/애플리케이션 팀과 함께 전환 프로세스를 계획하여 전환 시 비즈니스 연속성에 영향을 미치지 않는 선에서 최소한으로 전환하는 것이 중요합니다.

중요

DMS를 사용하는 마이그레이션의 일부로 중단을 수행하는 것과 관련된 특정 단계에 대한 자세한 내용은 마이그레이션 중단 수행을 참조하세요.

마이그레이션 후 작업

마이그레이션 단계를 성공적으로 완료한 후 모든 기능이 원활하고 효율적으로 작동되게 하려면 일련의 마이그레이션 후 작업을 수행해야 합니다.

마이그레이션 후 단계는 데이터 정확도 문제를 조정하고 완성도를 확인할 뿐만 아니라 워크로드 관련 성능 문제를 해결하는 데 매우 중요합니다.

애플리케이션 모니터링 및 수정

관리되는 인스턴스로 마이그레이션한 후에는 워크로드의 애플리케이션 동작과 성능을 추적해야 합니다. 이 프로세스에는 다음 작업이 포함됩니다.

테스트 수행

데이터베이스 마이그레이션의 테스트 접근 방식은 다음 작업으로 구성됩니다.

  1. 유효성 검사 테스트 개발: 데이터베이스 마이그레이션을 테스트하려면 SQL 쿼리를 사용해야 합니다. 원본 데이터베이스와 대상 데이터베이스 둘 다에서 실행할 유효성 검사 쿼리를 만들어야 합니다. 유효성 검사 쿼리는 정의한 범위를 포함해야 합니다.
  2. 테스트 환경 설정: 테스트 환경에는 원본 데이터베이스와 대상 데이터베이스의 복사본이 포함되어야 합니다. 테스트 환경을 격리해야 합니다.
  3. 유효성 검사 테스트 실행: 원본 및 대상에서 유효성 검사 테스트를 실행한 다음, 결과를 분석합니다.
  4. 성능 테스트 실행: 원본 및 대상에서 성능 테스트를 실행한 다음, 결과를 분석하고 비교합니다.

고급 기능 사용

SQL Managed Instance에서 제공하는 고급 클라우드 기반 기능(예: 기본 제공되는 고가용성, 위협 탐지, 워크로드 모니터링 및 튜닝)을 활용할 수 있습니다.

Azure SQL 분석을 사용하여 중앙 집중 방식으로 관리되는 인스턴스의 거대한 집합을 모니터링할 수 있습니다.

일부 SQL Server 기능은 데이터베이스 호환성 수준이 최신 호환성 수준(150)으로 변경된 후에만 사용할 수 있습니다.

다음 단계