본문 바로가기
Azure & Windows/Azure

Migrate a On-Premise SQL DB to Azure SQL Using SSMS

by 강철 벼룩 2016. 4. 13.

이번 포스팅은 On-premise에서 사용중인 DB 서버의 가용성 문제로 애플리케이션의 DB 서비스를 Microsoft Azure SQL 서버로 마이그레이션했던 과정을 정리한 것입니다.

 

글에서는 On-premise에서 사용하던 DB 서버인 MS SQL Server 2012에서, SSMS(SQL Server Management Studio) 사용하여 Azure SQL 서버로 데이터베이스를 마이그레이션 합니다.

 

Azure SQL 데이터베이스는 PaaS 입니다. 이미 오랫동안 입증된 SQL 서버 기술을 통합해 클라우드에서 완벽하게 관리되는 관계형 데이터베이스 서비스를 플랫폼으로 제공하는 것입니다. 하드 드라이브와 서버, 스토리지와 같은 물리적 하드웨어는 Microsoft에서 관리하지만 데이터베이스 인스턴스와 관련 로그인, 사용자 그리고 역할  등은 서비스 이용자가 관리할 있습니다.

 

On-premise 데이터베이스를 Azure 마이그레이션 하기 위해서는 먼저 Azure SQL DB 인스턴스를 먼저 만들어야 합니다.



Azure SQL 데이터베이스 만들기


먼저, Windows Azure 포털에 로그인 합니다. 

다음 그림에서처럼 포털의 왼편 하단 메뉴에서 [SQL 데이터베이스] 선택합니다.



 가운데 상단에서 [추가] 단추를 클릭하면, 다음 그림과 같은 화면이 나옵니다.




여기서 입력할  항목은 다음과 같습니다. 빨간색 * 표시는 반드시 입력해야 하는 값입니다.


☞ 데이터베이스 이름:  프로그래밍에서 사용하거나 SSMS, Visual Studio에서 연결할 데이터베이스 이름 입니다.

구독: MSDN 구독이 있는 경우.
리소스 그룹: (만든 적이 없는 경우) 리소스 그룹 이름을 입력합니다.

소스 선택: 백업 등이 있으면 선택할 있습니다. (여기서는 데이터베이스)

서버: 기존에 만든 서버가 없다면 새로운 서버를 만듭니다. 이후에 데이터베이스를 추가할 동일한 서버 하위로 추가할 있습니다. 서버 이름과 서버 관리자 로그인, 암호, 서버의 위치 등을 결정합니다.


가격 책정 계층: 사용하려는 데이터베이스의 예상되는 트랜잭션을 기준으로 선택합니다. 나중에 변경할 있습니다. 다음 그림은 가격 책정  계층의 일부를 나타낸 것입니다.



데이터 정렬: 기본 값을 사용합니다. 값을 변경하는 경우의 영향에 관해 미리 숙지하고 변경해야 합니다.


이제 최종적으로 입력한 정보는 다음 그림과 같습니다.



하단의 [만들기] 단추를 클릭하면 다음 그림처럼 배포가 시작됩니다.



배포가 완료되면 대시보드에서 만들어진 데이터베이스 클릭하여 다음과 같은 설정화면으로 들어갈 있습니다.



설정 화면에서 "데이터베이스 연결 문자열 표시" 링크를 클릭하면 다음 그림처럼 데이터베이스 연결 문자열을 얻을 있습니다. [데이터베이스 연결 문자열] 창에서 환경에 맞는 문자열 표시 상자 오른 편의 단추를 클릭하면 클립보드로 복사됩니다.



예를 들어, ADO.NET 경우는 다음과 같은 샘플 문자열을 얻을 있습니다.


Server=tcp:transwriting.database.windows.net,1433;Database=mydb;User ID=dbadmin@transwriting;Password={your_password_here};Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

 

여기서 {your_password_here} 부분에 조금 전에 만든 암호를 입력해서 사용합니다.



 SSMS 사용한 데이터베이스 마이그레이션


이제 On-Premise SQL 서버로 와서 SSMS 시작하고 로그인 합니다.

SSMS에서 마이그레이션하려는 데이터베이스를 오른 클릭한 [태스크] 선택하면 컨텍스트 메뉴에서 [Windows Azure SQL 데이터베이스에 데이터베이스 배포]라는 메뉴를 확인할 있습니다. 메뉴를 클릭합니다.



이제 데이터베이스 배포 마법사가 시작됩니다.



[다음] 클릭하고 조금 전에 반은 Azure SQL 서버에 연결을 하면 많은 경우 다음과 같은 연결 에러 화면을 만나게 됩니다. 원인은 SSMS에서 Azure SQL 인스턴스로 액세스할 Azure에서 해당 접근에 대한 방화벽 예외를 주지 않았기 때문입니다.



다시 Azure 포털로 돌아가서  이전에 만든 Azure SQL 서버를 클릭하면 나오는 화면에서 "방화벽 설정 표시" 링크를 클릭하면 펼쳐지는 창에서 필요한 예외 정보를 입력합니다.



설정이 끝난 다시 SSMS 배포 마법사 화면으로 돌아와 다시 연결을 시도하면 정상적으로 연결이 되는 것을 확인할 있습니다.  이후 입력할 정보는 다음과 같습니다.



☞ 새 데이터베이스 이름: Azure SQL 서버에 추가로 만들 데이터베이스 이름을 넣습니다.

Windows Azure SQL 데이터베이스 설정: Azure SQL 가격책정 계층을 선택하는 입력 항목입니다.


모든 정보를 정확히 입력했는지 확인하고 [마침] 클릭합니다.




여기까지 왔다면 모든 작업이 순조롭게 완료됩니다. 끝나고 나면 SSMS Visual Studio에서 방금 만든 Azure SQL 데이터베이스 인스턴스에 연결할 있습니다.