Azure SQL Database 마이그레이션 툴 – Microsoft SQL Server Migration Assistant

요즘 On-prem 서버 또는 VM에 SQL Server를 설치해서 사용하시던 많은 분들이 Azure SQL Database로 이전하고 있다. 관리도 편하고 안정성과 속도도 좋기 때문에 클라우드로 이전할 때 가능하다면 Azure SQL Database를 검토한다. 이 때 Microsoft SQL Server Migration Assistant 툴을 사용하면 마이그레이션이 가능한지 확인을 하거나 (Assessment) 실제 스키마와 데이터를 마이그레이션(Migration) 할 수 있다.

SQL Server와 Azure SQL Database는 대부분 호환되지만 클라우드와 On-Prem의 특성으로 인한 차이점이 존재한다. 예를들어 Azure SQL Database는 Windows Authentication을 지원하지 않는다. 마이그레이션도 MDF, LDF 파일을 사용할 수 없다. 따라서 이런 툴이 서비스를 지원하는 것이다. 앞으로 Azure SQL Database Managed Instance가 둘 사이의 차이점을 줄여줄 것이고,  Azure SQL Migration Service (Preview) 가 더 편리한 마이그레이션 환경을 제공할 것이다.

툴은 총 6단계를 거치게 되는데 내부적으로는 아래 다이어그램처럼 작동한다.

1.소스 데이터베이스 (Select Source)

로컬에 있는 소스 데이터베이스의 AAKorea3 라는 데이터베이스를 선택.

2. 타겟 데이터베이스 (Select Target)

Azure 포탈을 통해서 미리 많들어 놓은 Azure SQL Database를 선택. 여기서 SQL Database 의 방화벽에 작업하는 머신의 IP를 넣어야 접속 가능하다.

3. 오브젝트 선택 (Select Object)

이 단계에서 마이그레이션 오류나 경고를 볼 수 있다. 지금 테스트로 마이그레이션 하는 데이터베이스는 스키마가 단순하기도 하고 SQL Database의 여러가지 기능을 사용하지 않아서 오류가 보이지 않고 일반적인 경고만 몇 개 보이지만 상황에 따라서 오류가 있을 수 있고 적절한 조치를 해줘야 한다.

여기서 발생한 경고는 “중요! ntext, 텍스트, 및 이미지 데이터 형식은 나중 버전의 SQL Server에서 제거 됩니다. 향후 개발 작업에서는 이 데이터 형식을 사용하지 않도록 하고 현재 이 데이터 형식을 사용하는 응용 프로그램은 수정하세요. 대신 nvarchar(max), varchar(max)및 varbinary(max) 를 사용합니다.” 이런 내용인데 이번에는 수정하지 않고 넘어가기로 한다.

4. 스크립트 생성 (Script & Deploy schema)

마이그레이션을 위한 스크립트 생성

5. 테이블 선택 (Select Table)

마이그레이션 할 테이블 선택.

6. 데이터 마이그레이션 (Migrate Data)

데이터 이전을 해서 최종 마이그레이션 완료.

여기까지 SQL Database (2012버전)에서 Azure SQL로 마이그레이션을 Microsoft SQL Server Migration Assistant 툴을 이용해서 해봤다. 스키마가 다르고 사용하는 기능이나 Query가 다르니 상황마다 오류나 가이드가 다를 것이고 실제 Application 을 붙여서 테스트 해야 될 것이다.

다른 종류의 DBMS에서도도 Azure SQL Database로 마이그레이션 할 경우가 있는데 Migration Assistant 는 여러가지 버전이 있다.

다음 포스트에서는 이중에서 MySQL에 대해서 테스트 해보자.