영업: 1-800-867-1380

Azure SQL 데이터베이스로 데이터베이스를 마이그레이션하는 도구 선택

업데이트 날짜: 2014년 4월

이 항목에서는 SQL Server 이외 데이터베이스, Microsoft Azure SQL 데이터베이스 데이터베이스 또는 SQL Server 데이터베이스를 Microsoft Azure SQL 데이터베이스에 마이그레이션하는 프로젝트에 가장 적합한 도구를 선택하는 방법에 대해 설명합니다. 일반적으로 데이터베이스 마이그레이션에는 스키마 전송과 데이터 전송이 모두 포함됩니다. 스키마와 데이터를 모두 처리하는 마이그레이션 도구도 있고 둘 중 하나만 처리하는 마이그레이션 도구도 있습니다.

데이터베이스를 Microsoft Azure SQL 데이터베이스에 마이그레이션하는 데 사용할 수 있는 몇 가지 프로세스와 도구가 있습니다. 선택하는 도구는 마이그레이션 중인 데이터베이스의 유형, 크기 및 복잡도에 따라 다릅니다.

저자: Shaun Tinline-Jones
참여자: Steve Howard
검토자: Shawn Hernan

SQL Server Migration Assistant를 사용하여 데이터베이스를 Access, MySQL, Oracle, Sybase 등의 다른 제품에서 Microsoft Azure SQL 데이터베이스로 마이그레이션할 수 있습니다. 자세한 내용은 방법: Windows Azure SQL 데이터베이스와 함께 SQL Server Migration Assistant 사용를 참조하십시오.

Microsoft 코드명 'Data Transfer'는 CSV 또는 Excel 파일의 데이터를 Microsoft Azure SQL 데이터베이스로 전송할 수 있습니다. 자세한 내용은 Windows Azure SQL 데이터베이스 랩 Microsoft 코드명 "데이터 전송" 자습서를 참조하십시오.

데이터를 Microsoft Azure SQL 데이터베이스의 데이터베이스에서 다른 데이터베이스로 마이그레이션하려면 SQL 데이터베이스 복사SQL 데이터 동기화를 사용할 수 있습니다.

Microsoft Azure SQL 데이터베이스는 데이터베이스 복사 기능을 지원합니다. 이 기능은 Microsoft Azure SQL 데이터베이스에서 기존 데이터베이스를 복사하여 트랜잭션이 일치하는 데이터베이스를 만듭니다. 데이터베이스를 복사하려면 새 데이터베이스를 만들 Microsoft Azure SQL 데이터베이스 서비스의 master 데이터베이스에 연결하고 CREATE DATABASE 명령을 사용해야 합니다.

CREATE DATABASE destination_database_name AS COPY OF 
[source_server_name.]source_database_name

새 데이터베이스는 동일한 서비스에 배치하거나 다른 서비스에 배치할 수 있습니다. 이 문을 실행하는 사용자는 대상 서비스에서는 새 데이터베이스를 만들 수 있는 dbmanager 역할에 속해야 하고 원본 데이터베이스에서는 dbowner 역할에 속해야 합니다. 자세한 내용은 Azure SQL 데이터베이스에서 데이터베이스 복사를 참조하십시오.

SQL 데이터 동기화(미리 보기)를 사용하면 Microsoft Azure SQL 데이터베이스와 SQL Server 또는 Microsoft Azure SQL 데이터베이스에 호스팅된 데이터베이스 간에 정기 동기화를 만들고 예약할 수 있습니다. 자세한 내용은 SQL 데이터 동기화를 참조하십시오.

SQL Server에서 Microsoft Azure SQL 데이터베이스로 마이그레이션하는 프로젝트는 크기와 복잡성에 따라 광범위하게 분류될 수 있습니다.

  1. 크기: 전송할 데이터의 양 및 스키마 개체 수입니다. 데이터가 많을수록 데이터를 Microsoft Azure SQL 데이터베이스로 전송하는 데 더 오래 걸리고 Microsoft Azure SQL 데이터베이스에서 마이그레이션 프로세스를 제한할 가능성이 더 높습니다. 대규모 마이그레이션의 경우 동시 데이터 로드 작업 시작, 제한된 가능성이 낮은 작은 일괄 처리로 작업 분리 등의 최적화 작업을 수행할 수 있는 마이그레이션 프로세스를 선택해야 합니다. 제한된 작업을 자동으로 다시 시도할 수 있는 마이그레이션 도구는 대규모 마이그레이션에 더욱 중요합니다. 데이터베이스는 일반적으로 200MB 내외의 데이터에서 임계값이 교차합니다. 매우 많은 수의 개체(예: 1000 이상)를 포함하는 데이터베이스는 분할해도 여전히 크기가 클 수 있습니다. 마이그레이션 프로세스에서 스키마 전송을 단일 트랜잭션으로 수행하는 경우 트랜잭션에 사용되는 로그 공간의 양으로 인해 전송이 제한될 수 있습니다.

  2. 복잡성: 데이터베이스 및 연결된 응용 프로그램에 필요한 엔지니어링 변경 범위입니다. 복잡한 구조의 개체가 많을수록 Microsoft Azure SQL 데이터베이스에서 지원하지 않는 구문 요소가 데이터베이스에 포함될 가능성이 커지므로 마이그레이션 프로젝트에서 더 많은 개발 작업이 요구됩니다. 간단한 마이그레이션 프로젝트에서는 데이터베이스를 Microsoft Azure SQL 데이터베이스에서 실행하기 위해 스키마를 변경할 필요가 없으며, 응용 프로그램을 실행하려면 연결 문자열만 변경하면 됩니다. 복잡한 마이그레이션 프로젝트에서는 Microsoft Azure SQL 데이터베이스에서 지원되지 않는 요소를 처리하기 위해 데이터베이스의 스키마를 변경하거나, 원격 데이터베이스를 효율적으로 사용하려면 응용 프로그램을 변경해야 합니다.

데이터베이스를 다음과 같은 네 가지 범주 또는 사분면으로 분류할 수 있습니다.

처음에 작고 간단한 것으로 평가되었던 마이그레이션 프로젝트에서 나중에 연구하는 동안 많은 정보가 확인되면 다른 사분면을 이동할 수 있습니다. 다음은 이에 대한 몇 가지 이유입니다.

  • 상대적으로 작은 데이터베이스를 마이그레이션할 경우 이동 시간이 짧다면 데이터 전송을 최적화할 필요가 있습니다.

  • 데이터베이스에서 스키마를 변경해야 하며, 이러한 변경은 데이터베이스를 사용하는 응용 프로그램의 코드에 영향을 줍니다.

  • Azure SQL 데이터베이스 환경에서 응용 프로그램을 효율적으로 작동하려면 변경이 필요합니다. 예를 들어 네트워크 대기 시간을 줄이기 위해 강력한 다시 시도 논리 또는 코드 변경이 필요합니다.

데이터베이스 스키마, 응용 프로그램 또는 둘 모두를 변경해야 하는지 여부가 복잡한 데이터베이스 마이그레이션으로 분류하는 데 사용되는 가장 일반적인 기준입니다. 예를 들어 스키마를 변경하려면 일반적으로 데이터베이스를 사용하는 응용 프로그램을 변경해야 합니다. 이러한 변경은 개발 작업을 프로젝트의 일부로 통합하고, 새 데이터베이스와 해당 데이터베이스를 사용하는 응용 프로그램의 새 버전에 대한 배포를 조정하는 것을 의미합니다. 이러한 프로젝트의 경우 개발 프로젝트 작업을 지원하는 마이그레이션 도구를 선택합니다. 필요한 스키마 및 응용 프로그램 변경에 대한 자세한 내용은 Azure SQL 데이터베이스 마이그레이션 프로젝트 계획를 참조하십시오.

데이터베이스를 Microsoft Azure SQL 데이터베이스로 마이그레이션하려면 스키마와 데이터를 모두 전송해야 합니다. Azure SQL 데이터베이스 마이그레이션 마법사 및 DAC(데이터 계층 응용 프로그램) BACPAC 파일과 같은 스키마와 데이터를 모두 전송하므로 그대로 사용할 수 있는 도구도 있고, 스키마(예: DAC 패키지) 또는 데이터(예: bcp) 중 하나만 전송하는 도구도 있습니다. 마이그레이션 요구 사항에 데이터 또는 스키마만 전송하는 도구를 사용하도록 명시되어 있는 경우(예: 대규모 프로젝트에서 bcp를 사용하여 데이터 전송) 해당 도구와 데이터베이스의 다른 부분을 전송하는 도구를 연계하여 사용합니다.

Azure SQL 데이터베이스 마이그레이션 마법사 및 SSDT(SQL Server Data Tools)와 같은 도구는 Microsoft Azure SQL 데이터베이스에서 지원되지 않는 개체 및 구문을 대부분 찾지만 현재 버전의 도구에서도 이러한 문제를 모두 찾지는 못합니다. 따라서 이러한 도구는 데이터베이스 개발 중에 초기 분석 단계에서 대부분의 문제를 찾는 데 적합합니다. 모든 스키마 문제가 해결되었는지 테스트하는 가장 확실한 방법은 데이터베이스를 Microsoft Azure SQL 데이터베이스로 테스트 배포하는 것입니다. 응용 프로그램 코드에서 모든 Transact-SQL 구문 문제가 해결되었는지 테스트하는 가장 확실한 방법은 테스트 Microsoft Azure SQL 데이터베이스 시스템에서 데이터베이스 복사본에 대해 실행 중인 응용 프로그램의 기능을 테스트하는 것입니다.

많은 스키마를 변경해야 하는 복잡한 마이그레이션 프로젝트에서는 일반적으로 다음과 같은 여러 작업을 통합하고 여러 도구를 사용합니다.

  • SSDT의 데이터베이스 프로젝트로 스키마를 추출합니다.

  • Microsoft Azure SQL 데이터베이스에서 Microsoft Azure SQL 데이터베이스에서 지원하지 않는 개체에 대한 첫 번째 분석을 수행하도록 프로젝트 대상을 설정합니다. 이후 데이터베이스 개발 작업에서 Microsoft Azure SQL 데이터베이스에서 지원되지 않는 구문에 대한 실시간 플래그 지정을 활용할 수 있도록 대상을 Microsoft Azure SQL 데이터베이스로 설정해 둡니다.

  • 데이터베이스 개발 작업을 실행하여 모든 필요한 스키마 변경을 수행합니다. SSDT에 지원되지 않는 개체가 없다고 보고되면 Microsoft Azure SQL 데이터베이스에 대한 테스트 배포를 수행하여 데이터베이스에 남아 있는 개체를 Microsoft Azure SQL 데이터베이스에서 지원하는지 확인합니다.

  • 동시 응용 프로그램 개발 작업을 실행하여 스키마 변경으로 인해 필요한 모든 코드 변경을 수행합니다. 응용 프로그램에서 생성되는 TRANSACT-SQL 문에 대한 추적 정보를 생성하고 Azure SQL 데이터베이스 마이그레이션 마법사를 사용하여 Microsoft Azure SQL 데이터베이스에서 지원되지 않는 구문을 검사합니다.

  • 이전 스키마 구조에서 새 스키마로 데이터를 가져오는 데 필요한 모든 변환을 수행하는 데이터 전송 프로세스를 빌드합니다. 이렇게 하는 가장 쉬운 방법은 SQL Server Integration Services를 사용하는 것입니다.

  • 통합 데이터베이스 및 응용 프로그램 테스트를 수행합니다. 데이터베이스를 Microsoft Azure SQL 데이터베이스에서 실행한 후 기능을 포괄적으로 테스트하여 응용 프로그램에서 생성되는 Transact-SQL 문이 Microsoft Azure SQL 데이터베이스에서 작동하는지 확인합니다.

  • 데이터베이스 스키마 및 응용 프로그램에 대한 배포 패키지를 빌드합니다. 프로덕션 시스템에 대해 데이터 전송 프로세스를 실행하는 데 필요한 스크립트를 빌드합니다.

  • 데이터베이스 스키마 및 응용 프로그램의 통합 프로덕션 배포를 수행하고 데이터 전송 프로세스를 실행합니다.

Microsoft Azure SQL 데이터베이스 프로젝트를 실행하는 방법은 Azure SQL 데이터베이스 마이그레이션 프로젝트 계획를 참조하십시오.

Azure SQL 데이터베이스 마이그레이션 마법사에서 오버헤드를 최소화해야 하며, 도구에서 문제를 찾지 못한 기간을 파악하도록 마법사를 구성하거나 일부 항목을 더 이상 문제로 고려하지 않도록 마법사를 수정할 수 있습니다. 이 도구는 모든 사분면에 적용되며 마이그레이션 프로젝트의 구상 단계에서 가장 유용한 도구입니다. 다른 도구에서는 제공하지 않는 이 도구만의 기능으로는 SQL 프로파일러 추적 파일 분석 기능이 있습니다. 이 도구는 동적 Transact-SQL을 포함할 수 있도록 크게 확장된 기능을 제공합니다. 또한 추적 분석을 통해 종단 간 기능 테스트 품질을 향상시킬 수 있습니다. 이 마법사에서는 데이터 및 스키마 전송을 여러 작업으로 분할하므로 실패한 작업만 다시 시도할 수 있습니다. 따라서 대형 데이터베이스를 마이그레이션하는 기능이 향상됩니다.

SSDT(SQL Server Data Tools)에서는 모든 사분면에 유용한 실용적인 기능을 제공합니다. Visual Studio와 밀접하게 통합되어 복잡한 마이그레이션을 수행하는 데 특히 유용합니다. 개체를 도구로 가져오고 빌드 프로세스 중에 경고 및 오류가 발생하면 분석이 수행됩니다. SSDT에서는 강력한 기능을 제공하므로 복잡한 솔루션을 수용할 수 있습니다. SSDT는 Microsoft에서 권장하는 Microsoft Azure SQL 데이터베이스 및 내부 SQL Server 데이터베이스 개발 도구입니다.

다음 표에서는 SQL Server 데이터베이스를 Microsoft Azure SQL 데이터베이스로 마이그레이션하는 데 사용할 수 있는 도구 및 프로세스의 특성을 간략히 보여 줍니다.

 

도구

스키마

Azure SQL 데이터베이스 호환성 검사

Data

데이터 전송 효율성

참고

SQL 데이터베이스 마이그레이션 마법사

좋음

  • 유용한 기능(예: 추적 파일 평가)

  • CodePlex의 오픈 소스

  • Microsoft에서 지원하지 않음

SQL Server Data Tools

아니요

해당 없음

  • 마이그레이션 개발 작업을 관리하는 데 적합

  • 복잡한 스키마 변경 처리

  • 전체 Azure SQL 데이터베이스 지원

DAC 패키지

아니요

해당 없음

  • 데이터를 제외한 모든 데이터베이스 개체를 포함한 엔터티

  • 전체 Azure SQL 데이터베이스 지원

DAC BACPAC 가져오기 내보내기

좋음

  • DAC 프레임워크를 사용하여 DAC와 데이터 내보내기/가져오기

  • 클라우드 전용 서비스 지원 사용 가능

  • CodePlex의 SQL DAC 예

스크립트 생성 마법사

약간

나쁨

  • Azure SQL 데이터베이스 스크립트 생성에 대한 명시적 옵션 있음

  • 작은 데이터베이스에 적합함

bcp

아니요

해당 없음

좋음

  • 기존 테이블에 데이터의 효율적인 전송

  • 하나의 BCP 명령이 하나의 데이터베이스 전송

SQL Server Integration Services

아니요

해당 없음

좋음

  • 최고의 유연성

SQL Server 가져오기 및 내보내기 마법사

아니요

해당 없음

좋음

  • SSIS 위의 단순 UI(SQL Server Management Studio에서도 사용할 수 있음)

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft