마이그레이션 가이드: SQL Server를 Azure SQL Database로
적용 대상: SQL Server
Azure SQL 데이터베이스
이 가이드에서는 SQL Server 인스턴스를 Azure SQL Database로 마이그레이션하는 방법을 알아봅니다.
계속하기 전에 필수 조건을 검토하고 사전 마이그레이션 단계를 완료합니다.
마이그레이션
사전 마이그레이션 단계에 대한 단계를 완료한 후 스키마 및 데이터 마이그레이션을 수행할 준비가 된 것입니다.
선택한 마이그레이션 방법을 사용하여 데이터를 마이그레이션합니다.
Azure Data Studio용 Azure SQL 마이그레이션 확장을 사용하여 마이그레이션
Azure Data Studio를 사용하여 오프라인 마이그레이션을 수행하려면 아래의 상위 단계를 수행합니다. 자세한 단계별 자습서는 자습서: Migrate SQL Server에서 Azure SQL Database로 마이그레이션(오프라인)을 참조하세요.
- Azure Data Studio 및 Azure SQL 마이그레이션 확장을 다운로드하여 설치합니다.
- Azure Data Studio의 확장에서 Azure SQL로 마이그레이션 마이그레이션 마법사를 시작합니다.
- 평가할 데이터베이스를 선택하고 마이그레이션 준비 상태 또는 문제(있는 경우)를 확인합니다. 또한 성능 데이터를 수집하고 적절한 크기의 Azure 권장 사항을 가져옵니다.
- 구독에서 Azure 계정 및 대상 Azure SQL Database를 선택합니다.
- 마이그레이션할 테이블 목록을 선택합니다.
- Azure Data Studio의 마법사를 사용하여 새 Azure Database Migration Service를 만듭니다. 이전에 Azure Data Studio를 사용하여 Azure Database Migration Service를 만들었다면 원하는 경우 동일한 서비스를 다시 사용할 수 있습니다.
- 선택 사항: 백업이 온-프레미스 네트워크 공유에 있는 경우, 원본 SQL Server 및 백업 파일이 포함된 위치에 연결할 수 있는 컴퓨터에 자체 호스팅 통합 런타임을 다운로드하여 설치합니다.
- 데이터베이스 마이그레이션을 시작하고 Azure Data Studio에서 진행률을 모니터링합니다. Azure Portal의 Azure Database Migration Service 리소스에서 진행률을 모니터링할 수도 있습니다.
데이터 동기화 및 중단
원본에서 대상으로 데이터의 변경 내용을 지속적으로 복제/동기화하는 마이그레이션 옵션을 사용하는 경우 원본 데이터와 스키마가 대상에서 변경되고 드리프트될 수 있습니다. 데이터 동기화를 진행할 때, 마이그레이션 프로세스 도중에 원본에 대한 모든 변경 내용이 대상에 캡처되고 적용되었는지 확인하세요.
원본 및 대상의 데이터가 동일한지 확인한 후에 원본에서 대상 환경으로의 전환을 수행할 수 있습니다. 비즈니스/애플리케이션 팀과 함께 전환 프로세스를 계획하여 전환 시 비즈니스 연속성에 영향을 미치지 않는 선에서 최소한으로 전환하는 것이 중요합니다.
중요
DMS를 사용하여 마이그레이션의 일부로 컷오버를 수행하는 것과 관련된 특정 단계에 대한 자세한 내용은 자습서: DMS(클래식)를 사용하여 SQL Server를 Azure SQL Database로 마이그레이션을 참조하세요.
트랜잭션 복제를 사용하여 마이그레이션하는 방법 파악
마이그레이션하는 동안 SQL Server 데이터베이스의 운영을 중지할 수 없는 경우 마이그레이션 솔루션으로 SQL Server 트랜잭션 복제를 사용할 수 있습니다. 이 방법을 사용하려면 원본 데이터베이스가 트랜잭션 복제의 요구 사항을 충족해야 하고 Azure SQL Database와 호환되어야 합니다. 가용성 그룹을 사용한 SQL 복제에 대한 자세한 내용은 Always On 가용성 그룹을 사용한 복제 구성을 참조하세요.
이 솔루션을 사용하려면 마이그레이션하려는 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에 있는 별도의 데이터베이스로 마이그레이션합니다. 그러면 탄력적 쿼리를 사용하여 이 기록 데이터를 쿼리할 수 있습니다.
마이그레이션 후
마이그레이션 단계를 성공적으로 완료한 후 모든 것이 원활하고 효율적으로 작동하게 하려면 다음의 마이그레이션 후 작업을 수행해야 합니다.
마이그레이션 후 단계는 데이터 정확도 문제를 조정하고 완성도를 확인할 뿐만 아니라 워크로드 관련 성능 문제를 해결하는 데 매우 중요합니다.
통계 업데이트
마이그레이션이 완료된 후 전체 검색으로 통계를 업데이트합니다.
애플리케이션 수정
데이터가 대상 환경으로 마이그레이션된 후 이전에 원본을 사용한 모든 애플리케이션이 대상 사용을 시작해야 합니다. 이를 위해 애플리케이션을 변경해야 하는 경우도 있습니다.
테스트 수행
데이터베이스 마이그레이션의 테스트 접근 방식은 다음 작업으로 구성됩니다.
- 유효성 검사 테스트 개발: 데이터베이스 마이그레이션을 테스트하려면 SQL 쿼리를 사용해야 합니다. 원본 데이터베이스와 대상 데이터베이스 둘 다에서 실행할 유효성 검사 쿼리를 만들어야 합니다. 유효성 검사 쿼리는 정의한 범위를 포함해야 합니다.
- 테스트 환경 설정: 테스트 환경에는 원본 데이터베이스와 대상 데이터베이스의 복사본이 포함되어야 합니다. 테스트 환경을 격리해야 합니다.
- 유효성 검사 테스트 실행: 원본 및 대상에서 유효성 검사 테스트를 실행한 다음, 결과를 분석합니다.
- 성능 테스트 실행: 원본 및 대상에서 성능 테스트를 실행한 다음, 결과를 분석하고 비교합니다.
고급 기능 사용
SQL Database에서 제공하는 고급 클라우드 기반 기능(예:기본 제공되는 고가용성, 위협 검색, 워크로드 모니터링 및 튜닝)을 활용하는 것이 좋습니다.
일부 SQL Server 기능은 데이터베이스 호환성 수준이 최신 호환성 수준으로 변경된 후에만 사용할 수 있습니다.
자세히 알아보려면 마이그레이션 후 Azure SQL Database 관리를 참조하세요.
데이터베이스 마이그레이션 호환성 문제 해결
원본 데이터베이스의 SQL Server 버전 및 마이그레이션하려는 데이터베이스의 복잡성에 따라 매우 다양한 호환성 문제가 발생할 수 있습니다. 이전 버전의 SQL Server에는 보다 많은 호환성 문제가 있습니다. 사용자가 선택한 검색 엔진을 사용하는 대상이 지정된 인터넷 검색 외에도 다음 리소스를 사용해 보세요.
중요
Azure SQL Managed Instance를 사용하면 호환성 문제를 최소화하거나 겪지 않고 기존 SQL Server 인스턴스 및 해당 데이터베이스를 마이그레이션할 수 있습니다. Azure SQL Managed Instance란? 참조
관련 콘텐츠
- 데이터 마이그레이션 시나리오에 사용할 수 있는 서비스 및 도구
- Azure Data Studio에 대한 Azure SQL 마이그레이션 확장을 사용하여 데이터베이스 마이그레이션
- 자습서: Azure SQL Database로 SQL Server 마이그레이션(오프라인)
- Azure Migrate 정보
- Azure SQL Database란?
- Azure 총 소유 비용 계산기
- Azure용 클라우드 채택 프레임워크
- Azure로 마이그레이션하기 위한 워크로드의 비용 계산 및 크기 조정 모범 사례
- 클라우드 마이그레이션 리소스
- 데이터 액세스 마이그레이션 도구 키트(미리 보기)
- 데이터베이스 실험 도우미 개요