Azure SQL Database 데이터 이전 (Full text Search 포함)

Microsoft SQL Server를 온프레미스 서버나 Azure VM에 설치해서 사용하다가 Azure SQL Database로 이전하는 경우가 있다. 이전 방법은 총 4가지가 있다.

  1. Visual Studio용 SQL Server 데이터 도구(“SSDT”) 사용.
  2. SqlPackage.exe 를 이용하는 방법
  3. SQL Server Management Studio 를 사용하는 방법
  4. SQL Azure 마이그레이션 마법사(“SAMW”) 를 사용하는 방법

이중에서 SSMS(SQL Server Management Studio)를 사용해서 데이터 이전을 할 때 경험있어 공유 한다.

먼저 Before 환경은 Microsoft SQL Server 2014 Standard 버전이고 Full Text Search 를 사용하는 Database이다. 다행히 Azure SQL Server는 최신 버전이 V12라고 하는데 V12에 Full Text Search 도 지원을 하게 되었다.

데이터 이전의 순서와 관련 문서는 아래와 같다. 아래 내용은 Azure Portal / PowerShell / SQLPackage.exe 를 사용해서도 가능하다.

1. SSMS 업그레이드: 최신버전으로 받아야 한다.

다운로드 링크 (13.0.16100)

Azure SQL Database가 Full Text Search를 지원한 시점이 늦기 때문에 기존 SSMS 툴들이 Validation 과정에서 오류를 내고 작동하지 않는다. 최신버전에서는 이런 문제가 발생하지 않는다. SSMS 2014 (12.0.2548.0) 에서는 아래와 같은 오류를 발생시켰는데 툴을 업그레이드 하면 해결 된다.

Error SQL71564: The element Full-text Catalog: [CAT_FOOTAGE] is not supported in Microsoft Azure SQL Database v12 (Preview).
Error SQL71564: The element Full-text Index on [dbo].[Keyword] is not supported in Microsoft Azure SQL Database v12 (Preview).
Error SQL71564: The element SqlFullTextIndexColumnSpecifier: <unnamed> has property LanguageId set to a value that is not supported in Microsoft Azure SQL Database v12 (Preview).

2. BACKPAC 파일 만들기

문서를 따라서 진행하면 된다.

시작하면서  Validation Check를 하는데 흔히 발생하는 오류는 사용자에 관한 오류다. 로컬에 직접 설치된 SQL Server는 Windows 사용자 계정을 데이터베이스 관리자로 추가 하여 Windows 로그인으로 SQL Server로 접속이 가능하지만 Azure SQL은 SQL 사용자만 생성되고 로그인 가능하다. 따라서 Windows 사용자에 관련된 오류가 발 생할 수 있다.

3. Azure 포탈에서 SQL Server 만들기

Azure 포탈에서 SQL Server(Logical Server) 를 만들어 준비한다. Azure SQL Database를 만들면서 함께 SQL Server 가 만들어지지만 (여기서 용어가 헷갈리는데 SQL Server는 서버 인프라를 말하고 Azure SQL Database는 데이터베이스 자체를 말한다) SSMS를 사용해서 임포트를 할 때 새로운 DB를 만들면서 진행하기 때문에 이름이 겹치지 않게 Database는 만들어 놓지 않아도 된다.

4. BACKPAC 파일 임포트

임포트 과정도 문서를 따라서 하면 된다.

문서화도 잘 되어 있고 툴도 정비가 되어서 어렵지 않게 걱정했던 데이터 이전을 완료했다.