[SQL SERVER]Hekaton-- Data Files in Windows Azure

[SQL SERVER]Hekaton-- Data Files in Windows Azure

透過SQL2014支援將datafile存放在Azure Blob(混和雲),實作我個人第一次Azure初體驗。

這項特性有以下優點,下面我將一步一步紀錄整個過程

1.簡單快速移轉

image

資料和Local Server完全切割,移轉時無需考慮資料存放位置。

2.HA和DR簡化優勢

成本考量下,我覺得利用這特性,把所有資料存放在一個DataCenter的Azure VM,DR移轉整個Azure VM。

3.安全性高

 

 

 

1.建立儲存體帳戶(前提是你得先註冊Windows Azure)

image

 

 

2.建立容器

image

 

取得主要金鑰

image

image

 

透過Azure Storage Explorer進行權限設定

新增儲存體帳戶

image

 

設定權限

image

點選Security並選擇Shared Access Policues tab,

新增sqlpolicy(給予Read、write、delete、list權限,並輸入開始和結束時間)

 

選擇Shared Access Signatures tab

image

點選 Generate Signatures

 

建立SQL認證

CREATE CREDENTIAL [<path to the container>]

WITH IDENTITY = 'SHARED ACCESS SIGNATURE'

SECRET = '<SAS Key>'

image

這裡的認證需用我們之前所建立的Azure storage認證

 

測試連接Azure storage

image

 

image

帳號金鑰就是Azure storage的存取金鑰。

 

連接成功

image

 

 

 

Create DB on Azure

CREATE DATABASE MyDBonAzure
ON
   (NAME = MyDBonAzure1, FILENAME = 'https://ricodbstorage.blob.core.windows.net/sqldata/MyDBonAzure1.mdf', SIZE = 50mb),
   (NAME = MyDBonAzure2, FILENAME = 'https://ricodbstorage.blob.core.windows.net/sqldata/MyDBonAzure2.ndf', SIZE = 50mb),
   (NAME = MyDBonAzure3, FILENAME = 'https://ricodbstorage.blob.core.windows.net/sqldata/MyDBonAzure3.ndf', SIZE = 50mb)
LOG ON
(NAME = MyDBonAzure_log, FILENAME = 'https://ricodbstorage.blob.core.windows.net/sqldata/MyDBonAzure_log.ldf', SIZE = 50mb)

image

將該資料庫的data and log file全部指到Azure storage。

image

200mb總共花了23秒(有一點慢)

 

image

建立成功。

 

建立資料表

create table mytest
(
c1 int identity(1,1),
c2 varchar(10),
c3 nvarchar(30) index idx1,
c4 datetime,
constraint PK_mytest primary key(c1)
)

image

image

 

 

SSMS管理

image

data file放在azure storage上,表示該DB有一些限制,詳細可以看MSDN,

 

image

 

資料都在雲端(azure),所有效能考量第一步就是要減少資料網路來回次數(善用cache & SP)和傳輸封包(記得啟用頁面壓縮),

當然還有計價方式也須注意。

 

 

 

參考

SQL Server 2014 and Windows Azure Blob Storage Service: Better Together

Windows Azure 中的 SQL Server 資料檔案

Windows Azure SQL Database 的效能考量