블로그 이미지
정홍주
Azure에 대한 내용뿐만 아니라 새로운 트렌드로 빅데이터, BI, SharePoint, 앱 등의 내용을 다룹니다.

calendar

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

2012.05.25 17:52 Microsft Azure/SQL Databases

 

SQL Azure Federation (4)

 

SQL Azure Database Portal 에서 Federationhttp://redju.tistory.com/166 에서와 같은 내용으로 생성해보도록 하겠습니다.

 

1.     Federation을 생성합니다.

2.     테이블 생성 쿼리에 Federation을 추가하여 쿼리를 실행합니다.

3.     데이터를 적절한 Federation 멤버에 인서트 합니다.

4.     Federation 결과를 확인하고 모니터링하면서 필요에 따라 SPLITMERGE 를 실행합니다.

 

아래 그림의 경우처럼 해당 데이터베이스를 클릭하고 Summary를 통해 상단의 New Federation 메뉴를 클릭합니다.
 

New Federation 메뉴에서는 Name, Distribution Name을 입력합니다. Data Type bigint 로 선택합니다
 

생성된 것을 확인할 수 있습니다.

 

위 그림의 Orders_Federation의 오른쪽 화살표 아이콘을 클릭하여 Federation Member로 이동합니다. 현재는 Member가 하나이며 클릭시 Query 메뉴에서 Create Federated Table 메뉴를 볼 수 있습니다.
 

Create Federated Table 메뉴를 클릭하여 페더레이션 테이블을 생성합니다.

 

실제 테이블 생성 구문은 아래처럼 입력합니다. 맨 마지막에 FEDERATED ON 구문이 들어갑니다.
 

나중에 SPLIT을 하기 위해 데이터를 입력하는 쿼리를 실행합니다.
 

왼쪽의 AdventureWorks2012_Fed 메뉴를 클릭하여 다시 4 번째 그림으로 이동합니다. LOW 를 클릭하여 Split Federation Member 를 클릭하여 분할 값을 지정합니다. 여기서는 3000으로 지정합니다
 

또는 Split 메뉴를 통해서 분할 값을 입력해도 됩니다.

분할이 진행 중이며 왼쪽의 AdventureWorks2012_Fed 메뉴를 클릭하면 아래와 같은 그림을 살펴볼 수 있습니다.
 

위 그림에서 2 개의 Federation Member 를 확인 가능하며 데이터베이스가 2 개므로 요금이 과금됩니다. 분할된 내용은 LOW~3000, 3000~HIGH 로 구분됩니다. 필요하다면 더 분할 가능합니다. 분할된 내용이 필요없을 경우 병합도 가능합니다만 DROP를 시킬수 있고 데이터의 병합은 쿼리 문으로는 지원되고 있지는 않고 다른 방법으로만 가능합니다.

3000..HIGH 에 대한 내용의 Query 메뉴를 통해 Orders 테이블을 SELECT 하면 현재 값이 없다는 것을 확인이 가능합니다.

해당 Federation Member 에 대한 쿼리를 하려면 위 그림처럼 USE FEDERATION 구문을 통해 처리합니다.

 USE FEDERATION [Orders_Federation] ([OrderID] = 3000) WITH FILTERING = OFF, RESET

GO

 

위 멤버에서 3000 이라고 하는데 2999, 3000, 3001을 입력하면 어떻게 될까요? 2999는 실패하게 됩니다.

 

여기에서는 SQL Azure Database Portal 을 통해 SQL Azure Federation 을 통해 Federation을 생성하고 Federated 테이블을 생성하고 INSERT, SELECT 를 실행하고 SPLIT 을 통해 멤버로 분할되는 것을 알아보았습니다.

분할된 내용을 병합하는 것은 별도로 다루어보도록 하겠습니다.

posted by 정홍주
2012.05.18 07:41 Microsft Azure/SQL Databases

 

SQL Azure Federation -페더레이션 (3)

 

앞에서 SSMS에서 쿼리문을 통한 SQL Federation(http://redju.tistory.com/166)을 살펴보았는데 이번에는 SQL Database Manage Portal 를 통해서 SQL Federation 에 대한 내용을 알아보겠습니다. 다음에서 설정하는 부분에 대한 접근을 해보도록 하겠습니다.

 

SQL Database Manage Portal 에 로그인을 합니다.

 

이미 SQL Federation이 만들어져 있을 경우 SQL Database Manage Portal 에 로그인을 하면 아래와 같이 나타납니다.

 

Databases with Federations 라는 곳을 통해 Federation Root를 살펴볼 수 있습니다.

FederationSQL Database Manage Portal 를 통해 생성할 경우는 해당 데이터베이스 위에 마우스를 가져가면 Summary 링크를 볼 수 있습니다. 링크를 클릭합니다.

 

그러면 아래 그림처럼 오른쪽 상단에서 Federation 메뉴가 활성화 되는 것을 확인할 수 있습니다.

 

New Federation 메뉴를 클릭하면 아래와 같은 화면을 볼 수 있습니다.

 

위 그림과 같은 쿼리는 아래와 같습니다.

CREATE FEDERATION Orders_Federation

(OrderId INT RANGE)

GO

 

위와 같은 쿼리로 진행되는 것은 다음 글에서 다루어보도록 하겠습니다.

 

Federation 이 생성된 경우의 데이터베이스의 Summary 페이지 경우는 아래와 같이 나타납니다.

 

위 그림에 보는 데이터는 Federation Root 이며 오른쪽 Federation -> 아이콘을 클릭해봅니다.

Orders_Federation 같은 경우는 Federation Member 2개라는 것을 확인할 수 있으며 Federation Member SQL Azure Database 이며 요금에 과금이 되는 내용입니다. LOW 3000까지의 값을 가지고 있는 Member를 클릭하고 있습니다.

 

검정색 테두리를 클릭하면 아래와 같은 메뉴를 확인할 수 있습니다.

Query 메뉴를 통해서 바로 쿼리해도 되고 Split 메뉴를 통해서 다시 Member 를 분할 할 수 도 있습니다. 병합은 쿼리문을 통해서 진행 가능합니다. Resize 메뉴를 통해서 데이터베이스 사이즈를 변경할 수 도 있습니다.

 

 

View Summary 메뉴를 통해서 더 구체적인 정보를 확인할 수 있습니다. Root의 경우는 2월에 생성한 데이터베이스이며 Member의 경우는 5월에 생성한 데이터베이스라는 것을 확인할 수 있습니다.

 

 

쿼리 문을 통해 위와 같이 구성하는 것을 다음 글에서 알아보도록 하겠습니다.

 

posted by 정홍주
2012.05.15 08:30 Microsft Azure/SQL Databases

SQL Azure 의 가격 인하와 100MB 에 대한 내용을 이전 내용에서 정리를 했습니다.

http://redju.tistory.com/129

 

100MB 데이터베이스 만들기가 있는지를 찾아보니 데이터베이스 생성시 최하 용량은 1GB 입니다. 데이터베이스의 최대사이즈에 대한 옵션으로 생각하고 SQL Azure 데이터베이스 포탈이나 쿼리 문에서 해보았지만 최대사이즈에는 100MB 옵션이 제공되는 것은 아닙니다.

위에서 말하는 100MB 옵션은 가격에 대한 옵션이며 1GB SQL Azure 데이터베이스를 한달 동안 사용시 100MB 이하로 사용시는 9.9$가 아닌 4.9$ 라는 가격 정책입니다. 가격 계산에 대한 내용은 아래 링크에서의 데이터베이스 가격과 산정 기준의 예를 참고하시면 됩니다.

https://www.windowsazure.com/ko-kr/home/features/sql-azure/

 

테스트하거나 할 경우 100MB 이하로 테스트하면서 진행하는 것이 비용절감에 효과적입니다.

posted by 정홍주
2012.05.11 12:00 Microsft Azure/SQL Databases

SQL Azure Federation(페더레이션) (2)

 

이제 SQL Azure Federation을 생성해보도록 하겠습니다. CREATE FEDERATION CREATE TABLE 구문을 통해 생성하게 됩니다. 페더레이션 분할은 ALTER FEDERATION을 통해서 실행됩니다. 구문을 실행하는 방법은 SQL Server Management Studio SQL Azure 데이터베이스 포탈에서 실행할 수 있습니다. 여기서는 SQL Server Management Studio 를 통해서 먼저 살펴보도록 하겠습니다.

페더레이션을 생성하는 단계는 다음과 같습니다.

l  CREATE FEDERATION – 페더레이션 배포 키 생성

l  USE FEDERATION,  CREATE TABLE FEDERATION ON – 페더레이션된 테이블 생성

l  INSERT – 데이터 추가

l  ALTER FEDERATION – SPLIT/MERGE, 페더레이션 멤버 생성

l  USE FEDERATION – 쿼리, 필터링

 

자 아래와 같이 CREATE FEDERATION 구문을 실행해보겠습니다.

CREATE FEDERATION Orders_Federation

 (OrderId INT RANGE)

GO

 

페더레이션 이름은 Orders_Federation 이며 배포 이름은 OrderId 입니다. 지원되는 데이터 타입은 INT, BIGINT, UNIQUEIDENTIFIER 또는 VARBINARY(최대 900바이트) 입니다. RANGE 분할만 현재 지원됩니다.

 

자 생성된 결과는 아래와 같습니다.  카탈로그뷰를 통해서도 액세스 가능합니다.

 

 

페더레이션을 생성하면 전체 범위를 담당하는 첫번째 페더레이션 멤버가 만들어집니다. Master 데이터베이스에서 sys.databases를 통해 확인 가능하며 멤버 데이터베이스 이름은 동적으로 생성됩니다.

 

페더레이션을 생성하고 난 후 페더레이션된 테이블을 생성해보겠습니다. 해당 페더레이션 멤버로 이동하여야 하며 USE FEDERATION 구문을 통해 실행합니다.

 

USE FEDERATION Orders_Federation (OrderID = 1) WITH RESET, FILTERING = OFF

GO

 

CREATE TABLE Orders(

  [PurchaseOrderID] INT NOT NULL ,

  [EmployeeID] INT NOT NULL,

  [VendorID] INT NOT NULL,

  [ShipMethodID] INT,

  [SubTotal] MONEY,

  [ShipDate] DATETIME,

  [OrderDate] DATETIME,

  PRIMARY KEY (PurchaseOrderID) )

FEDERATED ON (OrderID = PurchaseOrderID)

GO

 

CREATE TABLE 문장을 보시면 맨 마지막에 FEDERATED ON 구문을 볼 수 있습니다.

데이터를 INSERT 해보겠습니다.

 

INSERT Orders VALUES ( 1    ,258  ,1580 ,3   ,201.04 ,'20050517' ,'20050526')

INSERT Orders VALUES ( 2    ,254  ,1496 ,5   ,272.10 ,'20050517' ,'20050526')

INSERT Orders VALUES ( 3    ,257  ,1494 ,2   ,8847.30 ,'20050517' ,'20050526')

INSERT Orders VALUES ( 4    ,261  ,1650 ,5   ,171.08 ,'20050517' ,'20050526')

....,

 

현재는 페더레이션 멤버가 하나이기 때문에 추가로 분할을 시켜보도록 하겠습니다. 페더레이션 분할은 ALTER FEDERATION 구문으로 처리하게 됩니다. 분할은 루트에서 실행하게 되므로 아래와 같이 처리합니다.

USE FEDERATION ROOT WITH RESET

GO

 

ALTER FEDERATION Orders_Federation SPLIT AT (OrderID = 3000)

 

처리된 결과는 쿼리 문에서는 아래를 통해 확인이 가능합니다. 3000 번 행은 새로운 페더레이션 멤버에 속하게 됩니다.

 

-- 페더레이션

SELECT * FROM Sys.Federations

GO

 

-- 페더레이션 멤버

SELECT * FROM sys.federation_member_distributions

WHERE federation_id=65537

GO

 

마지막으로 데이터 SELECT 쿼리 문을 통해 확인해보도록 하겠습니다.

 

USE FEDERATION Orders_Federation

 (OrderID = 1) WITH RESET, FILTERING = OFF

GO

 

SELECT * FROM Orders

GO

-- 페더레이션 멤버 결과값으로 1~2999까지의 행이 나타납니다.

 

 

USE FEDERATION Orders_Federation

 (OrderID = 3001) WITH RESET, FILTERING = OFF

GO

 

SELECT * FROM Orders

GO

-- 페더레이션 멤버 결과값으로 3000~4012까지의 행이 나타납니다.

 

 

USE FEDERATION Orders_Federation

 (OrderID = 3001) WITH RESET, FILTERING = ON

GO

 

SELECT * FROM Orders

GO

-- 페더레이션 멤버 결과값으로 3001 행이 나타납니다.

 

 

위에서 살펴보다시피 페더레이션에 대한 내용은 SELECT 쿼리 문도 다르고 또한 CREATE TABLE 구문도 상이합니다. 또한 페더레이션 멤버는 각기 다른 스키마가 있는 개체를 가지고 있을 수 있습니다.

 

간략히 SQL Server Management Studio에서 SQL AzureFEDERATION 생성에 대한 내용을 다루어보았습니다. 다음은 SQL Azure 데이터베이스 포탈에서 확인해보도록 하겠습니다.

 

posted by 정홍주
2012.05.04 07:05 Microsft Azure/SQL Databases

 

SQL Azure Federation(페더레이션)

SQL Azure의 경우 150GB Business Edition을 제공하고 있습니다. 하지만 150GB 이상 데이터를 처리하려면 어떻게 해야 할까라는 의문이 생깁니다. 150GB 데이터베이스를 여러 개 작성해서 이를 응용 프로그램에서 핸들링하기에는 사실 너무 무리가 많습니다.

On-Premise 에서는 분할 테이블이나 분할 뷰를 통해 여러 서버에 데이터를 분산하여 확장성과 성능을 도모하곤 했었습니다.

클라우딩 환경에서는 SQL Azure Federation(페더레이션)을 통해 행 분할을 통해 응용 프로그램의 데이터베이스 계층에서 확장성과 성능을 높이는 방법을 제공하고 있습니다. Federation(페더레이션)을 통해 확장성, 성능 및 추가 용량을 제공할 수 있으며 가동 중지 시간 없이 동적으로 쿼리 문이나 데이터베이스 포탈에서 작업을 수행 할 수 있습니다. 클라이언트 응용 프로그램은 서비스의 중단 없이 분할 작업 중에 데이터에 액세스할 수 있습니다.

테이블을 생성하기 전에 Federation(페더레이션) 키를 정의하고 범위 값을 지정합니다. Federation(페더레이션)은 페더레이션 루트 데이터베이스와 페더레이션 멤버들로 구성됩니다. 페더레이션에 접근할 때는 페더레이션 루트를 통해서 접근하게 됩니다. ADO.NET을 통해서 접근하게 되며 쿼리 문이 기존과 상이하며 Fan Out 쿼리를 처리하게 됩니다. 아래 논리적, 물리적 다이어그램 그림을 통해 페더레이션 구성을 보다 더 쉽게 이해가 가능합니다. 

그림출처- http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597452.aspx

왼쪽의 사용자 데이터가 페더레이션 루트가 되며 Orders 테이블을 페더레이션 키로 분할했을 경우 오른쪽 화면처럼 페더레이션 멤버들이 구성되게 됩니다. 아래 그림은 페더레이션 멤버에 대한 물리적 다이어그램입니다. 페더레이션 멤버 2SQL Azure 데이터베이스입니다.

 

그림출처- http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597452.aspx

위 그림에서 보는 것처럼 페더레이션 키를 이용해서 분할 하면 물리적으로 페더레이션 멤버 데이터베이스가 생성되어 확장성, 성능, 추가 용량을 제공해주는 클라우드 환경의 SQL Azure의 기능 중의 하나가 SQL Azure Federation(페더레이션)입니다.

아래는 SQL Azure Federation(페더레이션) 관련 참조 링크입니다.

l SQL Azure의 페더레이션(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597452.aspx

l 데이터베이스 페더레이션 관리(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597455.aspx

l CREATE FEDERATION(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597470

l ALTER FEDERATION(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597475

l 페더레이션 지침 및 제한 사항

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597469.aspx

l 데이터베이스 페더레이션에 대한 개발 고려 사항(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597458.aspx

쿼리 문과 데이터베이스 포탈을 통한 SQL Azure Federation(페더레이션)에 대한 내용은 이어서 다루도록 하겠습니다.

posted by 정홍주
2012.04.27 08:50 Microsft Azure/SQL Databases

l  내부 데이터베이스와 SQL Azure 간의 데이터 동기화

동기화 그룹을 생성하고 HUB,와 다른 작업을 구성했다면 내부 데이터베이스를 추가하면 됩니다. 내부 데이터베이스의 경우는 Sync Agent를 통해 동기화가 이루어지며 Sync Agent를 다운로드 받아 등록된 키로 인증하고 내부 데이터베이스를 등록하게 됩니다.

1.     동기화 그룹은 아래와 같이 구성되어 있습니다. 

 

2.     아래쪽 내부 영역의 “SQL Server 데이터베이스를 추가하려면 클릭합니다.” 를 클릭합니다. 

3.     동기화 그룹에 데이터베이스를 추가하는 것은 동기화 그룹에 새 SQL Server 데이터베이스 추가를 선택하고 동기화 방향은 양방향으로 선택하고 다음을 클릭합니다.

  

4.     새 에이전트 설치를 선택하고 다음을 클릭합니다. 

 

5.     새 에이전트 설치에서는 먼저 Agent를 다운로드 받아 설치해야 합니다. 설치 필요한 구성요소는 SQL Server 2008 CLR Types, SQL Server 2008 Shared Management Objects 가 필요합니다. 또한 설치시 서비스 계정에 대한 정보를 입력해야 합니다. Agent 가 설치되는 컴퓨터는 반드시 SQL Server이어야만하는 것은 아닙니다.

 

설치하고 난 후 에이전트 이름을 입력하고 키 생성 버튼을 클릭합니다. 

6.     위 그림의 키를 복사하고 에이전트를 설치한 컴퓨터에서 에이전트를 실행합니다. 그리고 Submit Agent Key Configuration 을 클릭하여 복사한 키로 구성합니다. 

 

7.     키를 구성하였으면 Register 메뉴를 클릭하여 동기화할 데이터베이스를 등록하면 됩니다. 여기서는 로컬의 Demo라는 DB를 등록합니다. 

 8.     내부 데이터베이스 작업이 끝났으면 새 에이전트 설치 창에서 다음을 클릭합니다. 동기화 그룹에 SQL Server 데이터베이스 추가 창에서는 데이터베이스 목록 가져오기를 클릭하고 데이터베이스를 선택하고 마침을 클릭합니다.  

 

9.     리본 메뉴에서 배포를 클릭하고 동기화를 테스트 합니다. 내부 데이터베이스도 변경된 것을 확인이 가능합니다. 

 

동기화 된 결과를 아래와 같이 확인이 가능합니다. Product Name은 사용자 정의 형식으로 인해 동기화에 포함되지 않았습니다. 

posted by 정홍주
2012.04.20 09:00 Microsft Azure/SQL Databases

SQL Azure Data Sync –데이터 동기화 (2)

데이터 동기화 시작하기를 위해 동기화 그룹을 생성하고 데이터 동기화가 되는지 테스트해보도록 하겠습니다.

 

l  동기화 그룹 생성

위 그림에서의 데이터 동기화 시작하기에서 내부 데이터베이스와 SQL Azure 데이터베이스 간 동기화“SQL Azure 데이터베이스 간 동기화를 클릭하거나 리본 메뉴의 동기화 그룹에서 만들기를 클릭할 수 있습니다.

1.     왼쪽 메뉴의 동기화 그룹을 클릭하고 리본 메뉴의 동기화 그룹에서 만들기를 클릭합니다. 

2.     동기화 그룹 이름을 입력합니다. 여기서는 AdventureWorksSync 라고 입력합니다.

3.     SQL Azure 데이터베이스를 동기화 허브로 추가할 수 있습니다. Hub 데이터베이스는 SyncHub 데이터베이스로 지정하겠습니다. 위 그림에서 중간에 있는 “SQL Azure 데이터베이스를 동기화 허브로 추가하려면 클릭합니다.” 클릭합니다.

4.     아래와 같이 서버 이름과 데이터베이스 이름, 사용자 ID와 암호를 입력하고 테스트를 클릭하고 추가를 클릭합니다. 

5.     결과는 다음과 같이 나타납니다. 

6.     이제 동기화할 데이터베이스를 추가합니다. “SQL Azure 데이터베이스를 추가하려면 클릭합니다.” 를 클릭합니다.

7.     서버이름 등 관련 정보와 동기화 방향을 설정합니다. 동기화 방향은 양방향, 허브로 동기화, 허브에서 동기화를 선택할 수 있습니다. 여기서는 양방향을 선택합니다. 그리고 추가를 클릭합니다.
 

8.     동기화 그룹은 아래와 같이 구성됩니다. 

9.     동기화할 다른 서버나 데이터베이스를 추가하면 아래와 같이 구성됩니다. 여러 데이터베이스를 동기화에 포함시킬 수 있습니다. 

10.   동기화할 데이터베이스를 추가했고 동기화 일정, 충돌 해결과 데이터 집합을 오른쪽 창에서 설정할 수 있습니다.

11.   동기화 일정은 적절히 설정하면 되고 최소 단위는 분입니다. 기본값을 설정하고 충돌 해결은 허브 우선으로 선택합니다.

12.   동기화 데이터 집합 정의를 클릭하여 테이블과 필터링을 지정할 수 있습니다.

13.   동기화를 위한 데이터 집합 정의 창에서 보면 사용자 정의 데이터 형식이나 XML 형식은 적색으로 나타나며 동기화를 지원하지 않는다는 것을 알 수 있습니다. 여기서는 Product 테이블을 선택합니다. 

14.   동기화 그룹 만들기가 끝났으면 리본 메뉴의 배포를 클릭합니다. 문제가 있으면 수정하고 다시 배포하면 됩니다. 문제가 없다면 양호로 변경된 것을 확인할 수 있습니다. 

15.   이제 데이터 변경 사항에 대한 테스트를 진행하면 됩니다. SQL Server Management Studio SQL Azure 관리 포털을 통해 진행하면 됩니다.

16.   아래와 같은 쿼리를 두 서버 중 하나의 서버의 AdventureWorks12 데이터베이스에서 실행합니다.

 

UPDATE [Production].[Product]

SET [ProductNumber]='HJ-7288'

WHERE ProductID=1

 

17.   시간이 지나고 다른 서버에서 보면 아래와 같이 데이터가 변경된 것을 확인할 수 있습니다. 데이터 수정, 추가, 삭제에 대한 동기화 진행되는 것을 테스트할 수 있습니다.

  

18.   동기화에 대한 로그는 리본 메뉴의 로그 뷰어를 통해서 확인이 가능합니다.

 

간략히 SQL Azure 간의 데이터 동기화에 대한 동기화 그룹을 설정하는 것과 동기화 테스트 결과를 통해 SQL Azrure 데이터 동기화를 알아보았습니다. 다음에서는 내부 데이터베이스와 SQL Azure 간의 데이터 동기화 설정에 대한 내용을 살펴보겠습니다.

 

posted by 정홍주
2012.04.20 09:00 Microsft Azure/SQL Databases

SQL Azure Data Sync –데이터 동기화 (1)

 

Windows Azure 관리 포털에 보시면 SQL Azure 관련 메뉴가 3 가지 보입니다. 그 중에 하나가 데이터 동기화이며 SQL Azure 간의 데이터 동기화와 내부 데이터베이스와 SQL Azure 간의 데이터 동기화를 제공해주는 기능입니다. 코드 한 줄 없이 구성하여 동기화를 진행할 수 있습니다.

 

관련된 참조 페이지는 아래를 참고할 수 있습니다.

http://msdn.microsoft.com/en-us/library/hh456371.aspx

 

SQL Azure 데이터 동기화를 통해 다양한 시나리오를 구성할 수 있습니다.

l  클라우드와 직접적인 상관없이 지사와 본사 데이터베이스 동기화

l  클라우드 데이터센터의 SQL Azure(, 북미와 유럽)간의 데이터 동기화

l  클라우드 데이터베이스와 로컬 데이터베이스의 동기화

l  통합 개발 데이터베이스

l  개발서버와 운영서버의 데이터 동기화

 

참조-http://social.technet.microsoft.com/wiki/contents/articles/1821.sql-azure-data-sync-overview.aspx

 

위 링크를 통해 SQL Azure 데이터 동기화에 대해 살펴본다면 다양한 시나리오에 적용할 수 있다는 것을 알 수 있습니다. 

 

데이터 동기화를 진행하기 위해서는 Windows Azure 계정이 활성화되어 있어야 하며 SQL Azure 서버가 필요합니다. Windows Azure 관리 포털에서 데이터 동기화 메뉴에서 동기화 그룹을 생성하여 데이터 동기화를 진행할 수 있습니다. 

 

본 글에서는 간단히 SQL Azure Data Sync를 소개하고 서버를 프로비져닝하는 내용을 알아봅니다.

그리고 SQL Azure 간의 데이터 동기화를 구성하는 내용에 대해서 알아보고 다음 글에서 내부 데이터베이스와 SQL Azure 간의 데이터 동기화에 대한 내용을 알아보겠습니다.

 

SQL Azure는 아래 그림과 같이 구성되어 있습니다.

 

 서버가 두 개로 나누어져 있으며 AdventureWorks2012를 서로 양방향으로 동기화하고 동기화의 Hub 데이터베이스는 아래쪽 서버의 SyncHub를 사용하도록 하겠습니다.

 

l  서버 프로비져닝 

1.     Windows Azure 관리 포털의 데이터 동기화를 클릭하여 먼저 서버 프로비져닝을 해야 합니다. 아래 그림에서 데이터 동기화 미리 보기 서버 프로비져닝을 클릭합니다. 

 

2.     프로비져닝 창에서 사용 조건에 동의하고 다음을 클릭합니다.

 

 3.     구독을 선택하고 다음을 클릭합니다.

 

4.     동기화할 데이터베이스에 동일 지역을 선택하고 다음을 클릭합니다.

 

5.     서버 프로비져닝이 끝나면 아래와 같이 지역에 동기화 그룹이 보이고 이제 동기화 그룹을 생성할 수 있습니다.

 

 

이어서 동기화 그룹에 대한 내용을 구성해서 SQL Azure 간의 데이터 동기화를 테스트해보도록 하겠습니다.

posted by 정홍주
2012.04.06 08:30 Microsft Azure/SQL Databases

 

SQL Azure 데이터베이스 내보내기 – BACPAC

 

데이터 계층 응용 프로그램에 대한 내용을 이전 글에서 알아보았습니다. SQL Server, SSDT 을 이용하여 DACPAC을 생성하고 SQL Azure에 데이터 응용 프로그램을 배포하는 것을 알아보았습니다. 

이제 반대로 SQL Azure의 백업 개념을 내보내기 해보도록 하겠습니다. 내보내기는 Windows Azure Storage에 내보내기 해야 합니다. 

아래는 간단한 SQL Azure 데이터베이스 그림입니다.

 

 

Windows Azure 관리 포털에서 SQL Azure 데이터베이스를 내보내기 해보도록 하겠습니다. AdventureWorks2012DAC를 클릭하고 리본에서 내보내기 메뉴를 클릭하면 됩니다.

그러면 Windows Azure Storage 로 내보내기하는 창을 보실 수 있습니다.

 

 

위 창에서 보는 것처럼 먼저 저장소 계정과 컨테이너가 생성되어 있어야 합니다.

그리고 Blob URL에는 파일 이름까지 지정해야 합니다.

마침을 누르고 나서는 상태 리본 메뉴를 통해 내보내기가 되었는지 확인이 가능합니다.

 

 

Windows Azure 저장소로 내보내기가 되었는데 결과는 어떻게 알 수 있을 까요?

위 상태만 가지고는 좀 부족하며 bacpac 파일을 로컬로 다운로드하여 관리하려면 Windows Azure 저장소 API를 통해 이렇게 저렇게 해야 하지만 Windows Azure MMC Storage Explorer를 통해 아래와 같이 손쉽게 알 수 있습니다.

 

 

이 도구는 다음 글에서 좀 더 자세히 알아보도록 하겠습니다. 지금은 BACPAC에만 포커스를..,

 

저장소에 있는 BLOB은 로컬로 다운로드가 가능합니다. Bacpac 파일을 다운로드하고 SQL Server Management Studio를 통해 “Import Data-tire Application” 을 통해 가져오기 가능합니다.

 

 

자 그럼 BACPAC을 통해 가져오기의 결과를 한번 보시죠, 값이 맨 위 그림과 동일하게 나오는 것을 확인 가능합니다.

 

 

BACPAC을 통해 다른 데이터센터에 있는 SQL Azure로 데이터베이스를 복사, 옮기거나 백업으로 관리하거나 로컬의 SQL Server로 가져오기 할 수 있는 것을 알아보았습니다.

 

 

 

posted by 정홍주
2012.03.30 08:30 Microsft Azure/SQL Databases

 

데이터 계층 응용 프로그램(Data-tier Application) (1)

 

SQL Server 2008 R2 SQL Server Management Studio의 개체 탐색기를 보면 데이터 계층 응용 프로그램 이라는 메뉴를 볼 수 있습니다. 영문에서는. Data-tier Application이라고 하는데요. 약자로는 DAC로 얘기하고 있습니다. 

DAC는 응용 프로그램에 사용되는 모든 데이터베이스 및 인스턴스 개체가 포함된 엔터티로 작성, 배포 및 관리할 수 있는 패키징하는 단위라고 할 수 있습니다.

DAC 작업은 Visual Studio 2010에서 데이터 계층 응용 프로그램 프로젝트를 통해서 DAC 패키지를 생성하거나 기존 데이터베이스로부터 DAC 패키지를 만들 수 있습니다.

그리고 데이터 계층 응용 프로그램 배포 마법사를 사용하여 SQL Server, SQL Azure로 배포할 수 있습니다. 

좀 더 자세한 설명은 아래 링크를 참조하십시오.

http://msdn.microsoft.com/ko-kr/library/ee240739.aspx

 

SQL Azure에서 DAC에 대한 부분은 Windows Azure 관리 포탈의 SQL Azure에 보면 내보내기, 가져오기 등의 메뉴를 볼 수 있고 SQL Azure의 비즈니스 연속성 관리 내용으로 BACPAC 에 대한 내용을 볼 수 있습니다 

DAC에 대한 접근은 SQL Server Data Tools 을 통해 손쉽게 접근할 수 있습니다. SSDT DAC 뿐만 아니라 데이터베이스 개체와 스키마에 대한 변경관리, 데이터 관리, 테스트, 배포 등 많은 기능을 제공하는 도구 입니다. SSDT에 대한 내용은 아래 링크를 참조할 수 있습니다. 다음 블로깅에서 구체적으로 다루도록 하겠습니다.

http://msdn.microsoft.com/en-us/data/gg427686 

여기서는 SQL Azure의 데이터베이스를 DACPAC로 내보내기하여 On-Premise SQL Server 로 가져오기를 하는 내용으로 진행해보겠습니다. 

 

SQL Server Management Studio를 통해 SQL Azure 데이터베이스 서버를 연결합니다.

원하는 데이터베이스를 선택하고 오른쪽 클릭하여 태스크에서 데이터 계층 응용 프로그램 추출을 선택하면 마법사가 아래와 같이 실행합니다 

DACPAC 속성 경로를 저장했습니다. 

 유효성 검사가 진행되고 패키지 파일(DACPAC)이 생성됩니다. 검사에서 문제가 있을 경우 파일이 생성되지 않으며 스크립트를 별도로 백업하고 제거하고 다시 실행할 수 있습니다. (뷰의 xquery에서 오류가 발생해서 뷰를 삭제했습니다.)

실제 생성된 DACPAC 파일을 오른쪽 클릭하니 압축 풀기가 있어 풀어보니 스크립트 sql과 메터데이터 xml 파일이 생성된 것을 확인할 수 있었습니다.

INSERT 구문에 대한 정보는 없습니다. 

 

On-premise SQL Server로 데이터 계층 응용 프로그램 가져오기를 한 결과는 아래와 같습니다. 

 

반대로 On-premise SQL Server 에서 SQL Azure로 내보내기도 가능합니다.

다음글에서는 Auzre Portal에서 BACPAC으로 내보내기를 하는 부분을 알아보도록 하겠습니다.

 

 

 

posted by 정홍주
prev 1 2 3 4 5 6 7 8 next