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

적용 대상:SQL ServerAzure SQL Database

이 가이드에서는 SQL Server 인스턴스를 Azure SQL Database로 마이그레이션하는 방법을 알아봅니다.

온-프레미스 또는 다음에서 실행 중인 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)

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

Diagram of migration process flow.

사전 요구 사항

Azure SQL Database로 SQL Server 마이그레이션을 수행하려면 다음을 확인합니다.

사전 마이그레이션

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

검색

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

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

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

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

평가

참고

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

데이터 원본을 검색한 후에는 Azure SQL Database로 마이그레이션할 수 있는 온-프레미스 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 Database(미리 보기)입니다.
  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 Database(미리 보기)입니다.
  6. Azure 권장 사항 섹션으로 이동하여 Azure 권장 사항 가져오기를 클릭합니다.
  7. 지금 성능 데이터 수집을 선택합니다. 로컬 컴퓨터에서 폴더를 선택하여 성능 로그를 저장한 다음, 시작을 선택합니다.
  8. 10분 후에 Azure Data Studio는 권장 사항을 Azure SQL Database에서 사용할 수 있음을 나타냅니다.
  9. Azure SQL 대상 패널에서 Azure SQL Database 카드를 확인하여 Azure SQL 데이터베이스 SKU 권장 사항을 검토합니다.

자세한 내용은 자습서: Azure Data Studio에서 오프라인으로 Azure SQL Database(미리 보기)로 SQL Server 마이그레이션을 참조하세요.

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

확장된 평가 및 분석

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

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

중요

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

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

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

검색 및 평가 단계의 정보에 따라 적절한 크기의 대상 Azure SQL Database를 만듭니다. 빠른 시작: 단일 데이터베이스 만들기 - Azure SQL Database를 사용하여 수행할 수 있습니다.

Migrate

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

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

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

Azure Data Studio를 사용하여 오프라인 마이그레이션을 수행하려면 아래의 상위 단계를 수행합니다. 자세한 단계별 자습서는 자습서: Azure Data Studio에서 SQL Server를 Azure SQL Database(미리 보기)로 오프라인 마이그레이션을 참조하세요.

  1. Azure Data StudioAzure SQL 마이그레이션 확장을 다운로드하여 설치합니다.
  2. Azure Data Studio의 확장에서 Azure SQL 마이그레이션으로 마이그레이션 마법사를 시작합니다.
  3. 평가할 데이터베이스를 선택하고 마이그레이션 준비 상태 또는 문제(있는 경우)를 확인합니다. 또한 성능 데이터를 수집하고 적절한 크기의 Azure 권장 사항을 가져옵니다.
  4. 구독에서 Azure 계정 및 대상 Azure SQL Database를 선택합니다.
  5. 마이그레이션할 테이블 목록을 선택합니다.
  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 리소스에서 진행률을 모니터링할 수도 있습니다.

데이터 동기화 및 중단

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

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

중요

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

트랜잭션 복제를 사용하여 마이그레이션하는 방법 파악

마이그레이션하는 동안 SQL Server 데이터베이스의 운영을 중지할 수 없는 경우 마이그레이션 솔루션으로 SQL Server 트랜잭션 복제를 사용할 수 있습니다. 이 방법을 사용하려면 원본 데이터베이스가 트랜잭션 복제의 요구 사항을 충족해야 하고 Azure SQL Database와 호환되어야 합니다. 가용성 그룹을 사용한 SQL 복제에 대한 자세한 내용은 Always On 가용성 그룹에 대한 복제 구성(SQL Server)을 참조하세요.

이 솔루션을 사용하려면 마이그레이션하려는 SQL Server 인스턴스에 대한 구독자로 Azure SQL Database의 데이터베이스를 구성합니다. 트랜잭션 복제 배포자는 새 트랜잭션이 계속되는 동안 데이터베이스의 데이터를 동기화합니다(게시자).

트랜잭션 복제를 사용하면 데이터 또는 스키마에 대한 모든 변경 내용이 Azure SQL Database의 데이터베이스에 표시됩니다. 동기화가 완료되고 마이그레이션 준비가 끝나면 데이터베이스를 가리키도록 애플리케이션의 연결 문자열을 변경합니다. 트랜잭션 복제를 통해 원본 데이터베이스에 남아 있는 모든 변경 내용이 드레이닝되고 모든 애플리케이션이 Azure SQL Database를 가리킨 후에는 트랜잭션 복제를 제거할 수 있습니다. 이제 Azure SQL Database의 데이터베이스는 프로덕션 시스템입니다.

또한 트랜잭션 복제를 사용하여 데이터베이스의 하위 집합을 마이그레이션할 수 있습니다. 사용자가 Azure SQL Database로 복제하는 게시물을 복제되는 데이터베이스의 테이블 하위 집합으로 제한할 수 있습니다. 복제되는 각 테이블에 대해 데이터를 행의 하위 집합 및/또는 열의 하위 집합으로 제한할 수 있습니다.

트랜잭션 복제 워크플로

중요

Azure 및 SQL Database에 대한 업데이트와 동기화 상태를 유지하려면 최신 버전의 SQL Server Management Studio를 사용합니다. 이전 버전의 SQL Server Management Studio는 SQL Database를 구독자로 설정할 수 없습니다. 최신 버전의 SQL Server Management Studio를 다운로드합니다.

단계 메서드
배포 설정 SQL Server Management Studio | Transact-SQL
게시물 만들기 SQL Server Management Studio | Transact-SQL
구독 만들기 SQL Server Management Studio | Transact-SQL

SQL Database로 마이그레이션하기 위한 몇 가지 팁과 차이점

  • 로컬 배포자 사용
    • 이렇게 하면 서버의 성능에 영향을 미칠 수 있습니다.
    • 성능에 영향을 미치지 않아야 하면 다른 서버를 사용할 수 있지만 관리가 복잡해집니다.
  • 스냅샷 폴더를 선택할 때 선택하는 폴더가 복제하려는 모든 테이블의 BCP를 수용하기에 충분한지 확인합니다.
  • 스냅샷을 만들 경우 완료될 때까지 연결된 테이블이 잠기므로, 스냅샷을 적절하게 예약해야 합니다.
  • 푸시 구독만 Azure SQL Database에서 지원됩니다. 원본 데이터베이스에서만 구독자를 추가할 수 있습니다.

마이그레이션 권장 사항

Azure SQL Database로의 마이그레이션을 가속화하려면 다음과 같은 권장 사항을 고려해야 합니다.

리소스 경합 권장
원본(일반적으로 온-프레미스) 원본에서 마이그레이션하는 동안 발생하는 기본 병목 상태는 신중한 모니터링이 필요한 데이터 파일 I/O 및 대기 시간입니다. 데이터 파일 I/O 및 대기 시간을 기반으로 또한 가상 머신인지 물리적 서버인지에 따라 스토리지 관리자와 협력하여 병목 상태를 완화할 옵션을 탐색해야 합니다.
대상(Azure SQL Database) 가장 큰 제한 요소는 로그 생성 속도 및 데이터베이스 로그 파일에 대한 대기 시간입니다. Azure SQL Database에서는 최대 96MB/s의 로그 생성 속도를 얻을 수 있습니다. 마이그레이션 속도를 높이려면 대상 Azure SQL Database를 중요 비즈니스용 Gen5 8 vCore로 확장하여 최대 로그 생성 속도를 96MB/s로 설정하고 로그 파일에 대한 짧은 대기 시간도 제공합니다. 하이퍼스케일 서비스 계층은 선택한 서비스 수준과 관계없이 100MB/s의 로그 속도를 제공합니다.
Network 필요한 네트워크 대역폭은 최대 로그 수집 속도 96MB/s(768Mb/s)와 동일합니다. 온-프레미스 데이터 센터에서 Azure로의 네트워크 연결에 따라 최대 로그 수집 속도를 수용할 수 있는 네트워크 대역폭(일반적으로 Azure ExpressRoute)을 확인합니다.

마이그레이션 프로세스 중에 최상의 성능을 위해 이러한 권장 사항을 고려할 수도 있습니다.

  • 전송 성능을 최대화할 수 있도록 예산 범위 내에서 가장 높은 서비스 계층과 컴퓨팅 크기를 선택합니다. 마이그레이션을 완료한 후 규모를 축소하여 비용을 절감할 수 있습니다.
  • BACPAC 파일을 사용하면 BACPAC 파일과 대상 데이터 센터 간의 거리를 최소화합니다.
  • 마이그레이션 도중 자동 업데이트 및 자동 통계 생성을 비활성화합니다.
  • 테이블과 인덱스를 분할합니다.
  • 인덱싱된 뷰를 삭제하고 완료된 후 다시 만들기
  • 다른 데이터베이스에 대해 거의 쿼리되지 않은 기록 데이터를 제거하고 이 기록 데이터를 Azure SQL Database에 있는 별도의 데이터베이스로 마이그레이션합니다. 그러면 탄력적 쿼리를 사용하여 이 기록 데이터를 쿼리할 수 있습니다.

마이그레이션 후

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

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

통계 업데이트

마이그레이션이 완료된 후 전체 검색으로 통계를 업데이트합니다.

애플리케이션 수정

데이터가 대상 환경으로 마이그레이션된 후 이전에 원본을 사용한 모든 애플리케이션이 대상 사용을 시작해야 합니다. 이를 위해 애플리케이션을 변경해야 하는 경우도 있습니다.

테스트 수행

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

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

고급 기능 사용

SQL Database에서 제공하는 고급 클라우드 기반 기능(예:기본 제공되는 고가용성, 위협 검색, 워크로드 모니터링 및 튜닝)을 활용하는 것이 좋습니다.

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

자세히 알아보려면 마이그레이션 후 Azure SQL Database 관리를 참조하세요.

데이터베이스 마이그레이션 호환성 문제 해결

원본 데이터베이스의 SQL Server 버전 및 마이그레이션하려는 데이터베이스의 복잡성에 따라 매우 다양한 호환성 문제가 발생할 수 있습니다. 이전 버전의 SQL Server에는 보다 많은 호환성 문제가 있습니다. 사용자가 선택한 검색 엔진을 사용하는 대상이 지정된 인터넷 검색 외에도 다음 리소스를 사용해 보세요.

중요

Azure SQL Managed Instance를 사용하면 호환성 문제를 최소화하거나 겪지 않고 기존 SQL Server 인스턴스 및 해당 데이터베이스를 마이그레이션할 수 있습니다. Azure SQL Managed Instance란? 참조

다음 단계

다양한 데이터베이스 및 데이터 마이그레이션 시나리오와 특수 작업을 지원하는 데 사용할 수 있는 Microsoft/타사 서비스 및 도구 표는 데이터 마이그레이션용 서비스 및 도구를 참조하세요.

Azure SQL 마이그레이션 확장에 대한 자세한 내용은 다음을 참조하세요.

Azure Migrate에 대해 자세히 알아보려면 다음을 참조하세요.

SQL Database에 대해 자세히 알아보려면 다음을 참조하세요.

클라우드 마이그레이션의 프레임워크 및 채택 주기에 대해 자세히 알아보려면 다음을 참조하세요.

애플리케이션 액세스 레이어를 평가하려면 Data Access Migration Toolkit(미리 보기)을 참조하세요.

데이터 액세스 레이어 A/B 테스트를 수행하는 방법에 관한 자세한 내용은 데이터베이스 실험 도우미를 참조하세요.