이전 블로그에서 SSMS를 통해서 간단히 데이터베이스 관련 개체를 생성해보았는데 실제 Sample 데이터베이스 같은 스키마와 데이터를 SQL Azure로 마이그레이션해서 클라우드 웹 응용 프로그램 등을 지원하게 해야 하므로 로컬 데이터베이스를 SQL Azure로 마이그레이션하는 방법을 알아보려고 합니다.
AdventureWork2008 예제 데이터베이스를 통해서 시도를 해보겠습니다. 스크립트는 Sqlcmd를 통
해서 접근할 수 도 있습니다.
일단 로컬 서버의 AdventureWork2008 데이터베이스의 스키마를 실행해보면 지원되지 않는 T-SQL 기능들을 알 수 있습니다. 지원되지 않는 T-SQL 기능들을 정리하고 스키마와 데이터를 SQL Azure에 게시해보도록 하겠습니다.
AdventureWork2008 의 스키마를 생성하기 위해 데이터베이스를 오른쪽 클릭하여 태스크 메뉴에서 스크립트 생성을 클릭합니다.
옵션들을 default 로 해서 스키마를 생성해 ‘HJ’ 데이터베이스에서 실행해보겠습니다.
HJ 데이터베이스에서 실행할 것이므로 데이터베이스 생성, USE 구문에 대한 부분은 제거합니다.
생성된 스크립트를 실행해보면 “sys.sp_addextendedproperty” 저장 프로시저를 찾을 수 없다는 에러가 발생합니다.
[그림2-1 스크립트 생성]
그래서 위 그림과 같이 스크립트를 생성할 때 옵션을 수정해주어야 합니다.
l Convert UDDTs to Base Types => True
l USE Database 스크립팅 => False
l 확장 속성 스크립팅=> False
스크립트 생성에서 옵션을 지정했지만 CREATE TYPE 구문 등은 남아있으므로 아래와 같은 정리 작업을 해주어야 실행이 성공할 수 있습니다.
l ANSI_NULLS 제거
l CREATE TYPE 구문 제거
l ON FileGroup 을 Primary 그룹으로 변경
l NOT FOR REPLICATION 제거
l PAD_INDEX 제거
l Windows LOGIN
l INDEX 관련
l XML SCHEMA 관련
l XML INDEX 구문 제거
l ON [Primary] 구문 제거
l HierarchId, FILESTREAM
생각보다 정리할게 너무 많고 손이 참 많이 갑니다. 왜 해야되냐는 의구심이 팍 ㅠㅠ
힘내서 자 성공적으로 끝나고 아래 그림과 같이 테이블과 개체들이 생성되었습니다.
[그림2-2 스크립트 실행]
이제 데이터를 전송, 게시해보도록 하겠습니다.
게시 마법사를 통해 INSERT 구문을 실행해도 상관없으며 SQL Server Integration Services(SSIS)를 이용해서 접근할 수도 있습니다. 실무라면 SSIS가 더 일반적이겠죠.
[그림2-3 INSERT]
[그림2-4 SSIS]
이상 클라우딩 환경에서 이용할 데이터베이스 개체와 데이터를 간단히 처리해보았습니다.
지원되지 않는 T-SQL 기능에 대한 부분은 아래 링크를 확인해보시기 바랍니다. 아직 CTP1이랍니다.
http://msdn.microsoft.com/en-us/library/ee336281.aspx
http://msdn.microsoft.com/en-us/library/ee336253.aspx
감사합니다.
'Cloud' 카테고리의 다른 글
SQL Azure 사용 시 주의점(1) - 방화벽 설정 (0) | 2009.11.12 |
---|---|
구름 속의 미래 : Windows® Azure™ Platform [2] (0) | 2009.10.11 |
SQL Azure 알아보기 (1) - 데이터베이스 개체 생성 (0) | 2009.09.13 |
SQL Azure - CTP1 (0) | 2009.08.26 |
구름 속의 미래 : Windows® Azure™ Platform [1] (1) | 2009.08.13 |