Azure SQL Database로 SQL Server 데이터베이스 마이그레이션SQL Server database migration to Azure SQL Database

적용 대상: 예Azure SQL Database APPLIES TO: yesAzure SQL Database

이 문서에서는 SQL Server 2005 이상 데이터베이스를 Azure SQL Database으로 마이그레이션하는 기본 방법에 대해 알아봅니다.In this article, you learn about the primary methods for migrating a SQL Server 2005 or later database to Azure SQL Database. Azure SQL Managed Instance로 마이그레이션하는 방법에 대 한 자세한 내용은 AZURE sql Managed Instance SQL Server 인스턴스 마이그레이션을 참조 하세요.For information on migrating to Azure SQL Managed Instance, see Migrate a SQL Server instance to Azure SQL Managed Instance. 다른 플랫폼에서 마이그레이션하는 방법에 대한 마이그레이션 정보는 Azure Database 마이그레이션 가이드를 참조하세요.For migration information about migrating from other platforms, see Azure Database Migration Guide.

단일 데이터베이스 또는 풀링된 데이터베이스로 마이그레이션Migrate to a single database or a pooled database

SQL Server 2005 이상의 데이터베이스를 Azure SQL Database으로 마이그레이션하는 데는 두 가지 기본 방법이 있습니다.There are two primary methods for migrating a SQL Server 2005 or later database to Azure SQL Database. 첫 번째 방법이 더 간단하지만, 마이그레이션하는 동안 다소 상당한 가동 중지 시간이 있을 수 있습니다.The first method is simpler but requires some, possibly substantial, downtime during the migration. 두 번째 방법은 좀 복잡하지만, 마이그레이션하는 동안 가동 중지 시간이 대폭 줄어듭니다.The second method is more complex, but substantially eliminates downtime during the migration.

두 경우 모두 DMA(Data Migration Assistant)를 사용하여 원본 데이터베이스가 Azure SQL Database와 호환되는지 확인해야 합니다.In both cases, you need to ensure that the source database is compatible with Azure SQL Database using the Data Migration Assistant (DMA). SQL Database는 서버 수준 및 데이터베이스 간 작업과 관련 된 문제를 제외 하 고 SQL Server의 기능 패리티 에 근접 하 고 있습니다.SQL Database is approaching feature parity with SQL Server, other than issues related to server-level and cross-database operations. SQL Server 데이터베이스를 마이그레이션하려면 부분적으로 지원되거나 지원되지 않는 기능을 사용하는 데이터베이스 및 애플리케이션을 어느 정도 다시 엔지니어링하여 이러한 비호환성 문제를 해결해야 합니다.Databases and applications that rely on partially supported or unsupported functions need some re-engineering to fix these incompatibilities before the SQL Server database can be migrated.


Microsoft Access, Sybase, MySQL Oracle, DB2를 비롯한 비-SQL Server 데이터베이스를 Azure SQL Database로 마이그레이션해야 할 경우 SQL Server Migration Assistant를 참조하세요.To migrate a non-SQL Server database, including Microsoft Access, Sybase, MySQL Oracle, and DB2 to Azure SQL Database, see SQL Server Migration Assistant.

방법 1: 마이그레이션하는 동안 가동 중지 시간을 사용한 마이그레이션Method 1: Migration with downtime during the migration

일부 가동 중지 시간이 발생 하거나 나중에 마이그레이션할 수 있도록 프로덕션 데이터베이스의 테스트 마이그레이션을 수행 하는 경우이 메서드를 사용 하 여 단일 또는 풀링된 데이터베이스로 마이그레이션합니다.Use this method to migrate to a single or a pooled database if you can afford some downtime or you're performing a test migration of a production database for later migration. 자습서를 보려면 SQL Server 데이터베이스 마이그레이션을 참조하세요.For a tutorial, see Migrate a SQL Server database.

다음 목록에는 이 방법을 사용한 단일 또는 풀링된 데이터베이스의 SQL Server 데이터베이스 마이그레이션에 대한 일반적인 워크플로가 포함되어 있습니다.The following list contains the general workflow for a SQL Server database migration of a single or a pooled database using this method. SQL Managed Instance로 마이그레이션하려면 sql Managed Instance로 마이그레이션을 참조 하세요.For migration to SQL Managed Instance, see Migration to SQL Managed Instance.

VSSSDT 마이그레이션 다이어그램

  1. DMA(Data Migration Assistant)의 최신 버전을 사용하여 데이터베이스 호환성에 대해 평가합니다.Assess the database for compatibility by using the latest version of the Data Migration Assistant (DMA).
  2. Transact-SQL 스크립트와 같은 필요한 수정 프로그램을 준비합니다.Prepare any necessary fixes as Transact-SQL scripts.
  3. 마이그레이션 진행되는 동안 원본 데이터베이스에 대해 일관된 트랜잭션의 복사본을 만들거나, 원본 데이터베이스에서 새 트랜잭션이 발생하지 않도록 합니다.Make a transactionally consistent copy of the source database being migrated or halt new transactions from occurring in the source database while migration is occurring. 이 두 번째 방식을 진행하는 방법에는 클라이언트 연결을 사용하지 않도록 설정하거나 데이터베이스 스냅샷을 만드는 경우가 포함됩니다.Methods to accomplish this latter option include disabling client connectivity or creating a database snapshot. 마이그레이션 후에 트랜잭션 복제를 사용하여 마이그레이션된 데이터베이스를 마이그레이션 구분 지점 이후에 발생한 변경 내용으로 업데이트할 수 있습니다.After migration, you may be able to use transactional replication to update the migrated databases with changes that occur after the cutoff point for the migration. 트랜잭션 마이그레이션을 사용하여 마이그레이션을 참조하세요.See Migrate using Transactional Migration.
  4. Transact-SQL 스크립트를 배포하여 데이터베이스 복사본에는 수정 내용을 적용합니다.Deploy the Transact-SQL scripts to apply the fixes to the database copy.
  5. Data Migration Assistant를 사용 하 여 Azure SQL Database의 새 데이터베이스로 데이터베이스 복사본을 마이그레이션합니다 .Migrate the database copy to a new database in Azure SQL Database by using the Data Migration Assistant.


DMA를 사용하는 대신, BACPAC 파일을 사용할 수도 있습니다.Rather than using DMA, you can also use a BACPAC file. Azure SQL Database에서 BACPAC 파일을 새 데이터베이스로 가져오기를 참조 하세요.See Import a BACPAC file to a new database in Azure SQL Database.

마이그레이션하는 동안 데이터 전송 성능 최적화Optimizing data transfer performance during migration

다음 목록에는 가져오기 프로세스 도중 최상의 성능을 위한 권장 사항을 포함합니다.The following list contains recommendations for best performance during the import process.

  • 전송 성능을 최대화할 수 있도록 예산 범위 내에서 가장 높은 서비스 계층과 컴퓨팅 크기를 선택합니다.Choose the highest service tier and compute size that your budget allows to maximize the transfer performance. 마이그레이션을 완료한 후 규모를 축소하여 비용을 절감할 수 있습니다.You can scale down after the migration completes to save money.
  • BACPAC 파일과 대상 데이터 센터 간의 거리를 최소화합니다.Minimize the distance between your BACPAC file and the destination data center.
  • 마이그레이션하는 동안 autostatistics 사용 안 함Disable autostatistics during migration
  • 파티션 테이블 및 인덱스Partition tables and indexes
  • 인덱싱된 뷰를 삭제하고 완료된 후 다시 만들기Drop indexed views, and recreate them once finished
  • 거의 쿼리하지 않는 기록 데이터를 다른 데이터베이스로 제거 하 고이 기록 데이터를 Azure SQL Database의 개별 데이터베이스로 마이그레이션합니다.Remove rarely queried historical data to another database and migrate this historical data to a separate database in Azure SQL Database. 그러면 탄력적 쿼리를 사용하여 이 기록 데이터를 쿼리할 수 있습니다.You can then query this historical data using elastic queries.

마이그레이션이 완료된 후 성능 최적화Optimize performance after the migration completes

마이그레이션이 완료된 후 전체 검색으로 통계를 업데이트합니다.Update statistics with full scan after the migration is completed.

방법 2 트랜잭션 복제 사용Method 2: Use Transactional Replication

마이그레이션이 진행 되는 동안 프로덕션에서 SQL Server 데이터베이스를 제거 하는 것을 감당할 수 없는 경우 마이그레이션 솔루션으로 트랜잭션 복제를 SQL Server 사용할 수 있습니다.When you can't afford to remove your SQL Server database from production while the migration is occurring, you can use SQL Server transactional replication as your migration solution. 이 방법을 사용하려면 원본 데이터베이스가 트랜잭션 복제의 요구 사항을 충족해야 하고 Azure SQL Database와 호환되어야 합니다.To use this method, the source database must meet the requirements for transactional replication and be compatible for Azure SQL Database. AlwaysOn을 사용한 SQL 복제에 대한 자세한 내용은 AlwaysOn 가용성 그룹에 대한 복제 구성(SQL Server)을 참조하세요.For information about SQL replication with Always On, see Configure Replication for Always On Availability Groups (SQL Server).

이 솔루션을 사용 하려면 Azure SQL Database에서 마이그레이션할 SQL Server 인스턴스의 구독자로 데이터베이스를 구성 합니다.To use this solution, you configure your database in Azure SQL Database as a subscriber to the SQL Server instance that you wish to migrate. 트랜잭션 복제 배포자는 새 트랜잭션이 계속 발생하는 동안 데이터베이스의 데이터를 동기화합니다(게시자).The transactional replication distributor synchronizes data from the database to be synchronized (the publisher) while new transactions continue occur.

트랜잭션 복제를 사용 하면 데이터 또는 스키마에 대 한 모든 변경 내용이 Azure SQL Database의 데이터베이스에 표시 됩니다.With transactional replication, all changes to your data or schema show up in your database in Azure SQL Database. 동기화가 완료 되 고 마이그레이션할 준비가 되 면 응용 프로그램의 연결 문자열을 변경 하 여 데이터베이스를 가리키도록 합니다.Once the synchronization is complete and you're ready to migrate, change the connection string of your applications to point them to your database. 트랜잭션 복제를 통해 원본 데이터베이스에 남아 있는 모든 변경 사항을 비우고 모든 애플리케이션이 Azure DB를 가리키면 트랜잭션 복제를 제거할 수 있습니다.Once transactional replication drains any changes left on your source database and all your applications point to Azure DB, you can uninstall transactional replication. 이제 Azure SQL Database의 데이터베이스가 프로덕션 시스템입니다.Your database in Azure SQL Database is now your production system.

SeedCloudTR 다이어그램

또한 트랜잭션 복제를 사용하여 데이터베이스의 하위 집합을 마이그레이션할 수 있습니다.You can also use transactional replication to migrate a subset of your source database. 사용자가 Azure SQL Database로 복제하는 게시물을 복제되는 데이터베이스의 테이블 하위 집합으로 제한할 수 있습니다.The publication that you replicate to Azure SQL Database can be limited to a subset of the tables in the database being replicated. 복제되는 각 테이블에 대해 데이터를 행의 하위 집합 및/또는 열의 하위 집합으로 제한할 수 있습니다.For each table being replicated, you can limit the data to a subset of the rows and/or a subset of the columns.

트랜잭션 복제 워크플로를 사용하여 SQL Database로 마이그레이션Migration to SQL Database using Transaction Replication workflow


최신 버전의 SQL Server Management Studio을 사용 하 여 Azure 및 SQL Database 업데이트와 동기화 상태를 유지 합니다.Use the latest version of SQL Server Management Studio to remain synchronized with updates to Azure and SQL Database. 이전 버전의 SQL Server Management Studio는 SQL Database를 구독자로 설정할 수 없습니다.Older versions of SQL Server Management Studio cannot set up SQL Database as a subscriber. SQL Server Management Studio를 업데이트합니다.Update SQL Server Management Studio.

  1. 배포 설정Set up Distribution

  2. 게시물 만들기Create Publication

  3. 구독 만들기Create Subscription

SQL Database로 마이그레이션하기 위한 몇 가지 팁과 차이점Some tips and differences for migrating to SQL Database

  • 로컬 배포자 사용Use a local distributor
    • 이렇게 하면 서버의 성능에 영향을 미칠 수 있습니다.Doing so causes a performance impact on the server.
    • 성능에 영향을 미치지 않아야 하면 다른 서버를 사용할 수 있지만 관리가 복잡해집니다.If the performance impact is unacceptable, you can use another server but it adds complexity in management and administration.
  • 스냅샷 폴더를 선택할 때 선택하는 폴더가 복제하려는 모든 테이블의 BCP를 수용하기에 충분한지 확인합니다.When selecting a snapshot folder, make sure the folder you select is large enough to hold a BCP of every table you want to replicate.
  • 스냅숏 만들기는 완료 될 때까지 연결 된 테이블을 잠그고 스냅숏을 적절 하 게 예약 합니다.Snapshot creation locks the associated tables until it's complete, so schedule your snapshot appropriately.
  • 푸시 구독만 Azure SQL Database에서 지원됩니다.Only push subscriptions are supported in Azure SQL Database. 원본 데이터베이스에서만 구독자를 추가할 수 있습니다.You can only add subscribers from the source database.

데이터베이스 마이그레이션 호환성 문제 해결Resolving database migration compatibility issues

원본 데이터베이스에 있는 SQL Server 버전과 마이그레이션하는 데이터베이스의 복잡성에 따라 발생할 수 있는 다양 한 호환성 문제가 있습니다.There are a wide variety of compatibility issues that you might encounter, depending both on the version of SQL Server in the source database and the complexity of the database you're migrating. 이전 버전의 SQL Server에는 보다 많은 호환성 문제가 있습니다.Older versions of SQL Server have more compatibility issues. 사용자가 선택한 검색 엔진을 사용하는 대상이 지정된 인터넷 검색 외에도 다음 리소스를 사용해 보세요.Use the following resources, in addition to a targeted Internet search using your search engine of choices:

인터넷을 검색하고 이러한 리소스를 사용하는 것 외에도 Azure SQL Database에 대한 Microsoft Q&A 질문 페이지 또는 StackOverflow를 사용합니다.In addition to searching the Internet and using these resources, use the Microsoft Q&A question page for Azure SQL Database or StackOverflow.


Azure SQL Managed Instance를 사용 하면 최소한의 호환성 문제 없이 기존 SQL Server 인스턴스와 해당 데이터베이스를 마이그레이션할 수 있습니다.Azure SQL Managed Instance enables you to migrate an existing SQL Server instance and its databases with minimal to no compatibility issues. 관리 되는 인스턴스를 참조 하세요.See What is a managed instance.

다음 단계Next steps