AzureSQLDatabase用戶手冊資料_第1頁
AzureSQLDatabase用戶手冊資料_第2頁
AzureSQLDatabase用戶手冊資料_第3頁
AzureSQLDatabase用戶手冊資料_第4頁
AzureSQLDatabase用戶手冊資料_第5頁
已閱讀5頁,還剩55頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

AzureSQLDatabase

用戶手冊

版本變更:

日期版本號變更內容作者

2016-05-101.00文檔創建,設置文檔目錄結構leizha

目錄

1.前言.............................................................5

2.讀者...........................................................5

3.總體介紹.......................................................5

3.1什么是AzureSQLDatabase..........................................................................5

3.2AzureSQLDatabase與傳統SQLServer虛擬機的區別(非常重要)....5

3.2.1應用遷移..............................................6

遷移現有應用....................................6

遷移新的應用....................................7

3.2.2管理成本..............................................7

管理操作系統....................................7

虛擬機高可用....................................7

數據庫高可用....................................7

3.224使用成本.......................................7

3.2.3擴展..................................................8

向上擴展........................................8

橫向擴展........................................8

3.2.4管理平臺..............................................8

操作系統和虛擬機................................8

SQLServer組件兼容性.............................9

3.2.5其他內容(非常重要).....................................9

服務級別........................................9

兼容性..........................................9

3.3AzureSQLDatabase優勢......................................10

3.3.1降低管理成本.........................................10

3.3.2數據冗余.............................................10

3.3.3SLA服務保障..........................................10

3.3.4自動日志備份(非常重要)................................10

3.3.5跨數據中心只讀副本...................................10

3.3.6跨數據中心故障轉移...................................11

3.3.7數據庫無縫升級.......................................11

3.4AzureSQLDatabase服務層....................................11

3.4.1基本(Basic)服務層....................................12

3.4.2標準(Standard)服務層.................................12

3.4.3高級(Premium)服務層.................................12

3.5AzureSQLDatabase相關矢口識介紹..............................13

3.5.1DTU....................................................................................................13

3.5.2V12....................................................................................................13

提高了兼容性...................................14

提高了性能級別.................................14

更好的支持云SaaS供應商.........................14

增加安全性.....................................15

建議用戶升級AzureSQLDatabaseV12...............................15

如何查看當前的AzureSQLDatabase版本.............15

3.6使用AzureSQLDatabase注意事項(非常重要)...................16

3.6.1數據庫最大容量.......................................16

3.6.2減少并發請求.........................................16

3.6.3數據庫切片...........................................17

3.6.4單個DatabaseServer限制了最大DTU..........................................19

3.6.5單個DatabaseServer最多5000個Database.................................19

3.6.6數據庫備份...........................................20

3.7AzureSQLDatabase的限制....................................20

3.7.1默認時區為UTC時區...................................20

3.7.2暫時不支持SQLAgent.....................................................................20

3.7.3其他限制.............................................20

3.8價格......................................................21

4.開始使用AzureSQLDatabase.............................................................................21

4.1倉1J建AzureSQLDatabaseServer.................................................................21

4.2創建AzureSQLDatabase............................................................................23

4.3連接AzureSQLDatabase(非常重要).............................25

4.4加密連接..................................................28

4.5開始使用..................................................30

4.5.1查看數據庫版本.......................................30

4.5.2查看數據庫時間.......................................31

4.5.3Unicode.............................................................................................31

4.6將SQLServerVM遷移到AzureSQLDatabase..........................................32

4.6.1注意事項.............................................32

4.6.2SSDT..................................................................................................33

4.6.3ExportDataTierApplication.............................................................44

注意事項.......................................44

463.2前提要求.......................................45

4.6.3.3詳細內容.....................................45

4.6.4SQLAzureMigrationWizard............................................................49

4.6.5其他遷移工具.........................................49

4.7使用外部表進行跨庫查詢....................................50

4.8監控......................................................50

4.9切換數據庫服務層和性能級別................................53

4.9.1注意事項.............................................53

4.9.2切換前的評估.........................................54

4.9.3開始切換.............................................54

4.10跨數據中心標準地域復制(StandardGeo-Replication)............................56

4.10.1說明................................................56

4.10.2演示................................................57

L前言

個人分享,僅作為參考資料,非官方解答。

Dem。不給力?請訪問我的個人博客

http:〃blogs.eom/threestone/archive/2012/01/06/2382322.html

2.讀者

WindowsAzure是平臺產品,本文只詳細介紹如何創建和管理AzureSQL

Databaseo本文適合開發人員閱讀。

另外本文會牽涉到部分Azure訂閱相關內容,請讀者先閱讀《Azure管理手

冊》。http:〃blogs.eom/threestone/p/4627388.html

3.總體介紹

3.1什么是AzureSQLDatabase

在傳統IDC環境里,我們如果要使用SQLServer數據庫服務,需要首先安裝

操作系統,然后再安裝和配置SQLServer服務。這樣需要管理的組件有:

1.WindowsServer操作系統

2.SQLServer數據庫服務

這樣管理的時候,不僅需要維護數據庫,還要維護數據庫底層的操作系統,

運行時等。管理復雜,管理成本比較高。

微軟提供數據庫及服務(Database-as-a-Service),包括AzureSQLDatabase和

MySQLDatabaseonAzure0提供給用戶的是一個數據庫連接字符串。注意:這個

數據庫連接字符串后面的操作系統等,無需用戶自己管理。

而且這個數據庫連接字符串背后的數據庫服務,本身就提供了99.99%SLA,

提供了數據庫備份功能,降低了用戶管理數據庫的成本。

注意:AzureSQLDatabase之前命名為SQLAzure,為了描述方便,筆者可能

會用SQLAzure字眼,其實是和AzureSQLDatabase是一個產品,請讀者注意。

3.2AzureSQLDatabase與傳統SQLServer虛擬機的區別

(非常重要)

AzureSQLDatabase與傳統的SQLServer2008,2012,2014虛擬機還是有一點

的區別,主要有以下幾方面區別:

內容SQLServer虛擬機AzureSQLDatabase

應用遷移

遷移現有應用快速中等

遷移新的應用中等快速

管理成本

管理操作系統是否

虛擬機高可用需要手工設置N/A

數據庫高可用需要手工設置(比如SQL99.99%SLA

ServerAlways-On,SQL

Serverreplication等)

使用成本中等低

擴展(Scale)

向上擴展(Scale-Up)D14(16Core/112G)P11

橫向擴展(Scale-Out)需要手工設置(比如SQL需要用戶自己設計

ServerAlways-On,SQLScale-Out

Serverreplication等)

數據庫最大容量32TB(D1416Core/1TB

112G)

管理平臺

操作系統和虛擬機用戶完全控制N/A

SQLServer組件兼容性對SQLServer產品全部只提供數據庫引擎

支持,包括SSIS,SSAS,

SSRS

其他

服務級別服務器,實例,數據庫數據庫

兼容性完全兼容部分兼容

參考資料:

https:〃/cn-us/blog/dKti-series-sql-server-in-windows-azur

e-virtual-machine-vs-sql-database/

/cn-us/documentntion/articles/data-management-

azure-sql-database-and-sql-server-iaas/

3.2.1應用遷移

遷移現有應用

因為SQLServer虛擬機完全兼容SQLServer2008,2012和2014,所以從遷移

現有應用來說,使用SQLServer虛擬機是最快速的。

遷移新的應用

如果我們要遷移一個新的應用程序,使用SQLServer虛擬機需要安裝操作系

統,配置數據庫用戶名密碼,配置防火墻規則等,操作起來非常復雜。

而使用AzureSQLDatabase以后,我們在創建數據庫的時候只需要做若干配

置,就可以直接使用這個數據庫服務了。底層的數據庫備份、高可用設計,Azure

SQLDatabase都已經幫我們配置好了,用戶不需要再進行其他配置。

3.2.2管理成本

管理操作系統

在Azure環境下,采用SQLServer虛擬機,需要同時管理操作系統和SQL

Server數據庫服務。

而采用AzureSQLDatabase,提供給用戶的只是一個數據庫連接字符串,用

戶無需管理該數據連接字符串背后的操作系統、數據庫服務等。

虛擬機高可用

在Azure環境下,采用SQLServer虛擬機,用戶需要手動設置虛擬機的高可

用,即將2臺或者2臺以上的虛擬機,部署到同一個可用性集中。

而采用AzureSQLDatabase,用戶無需關心虛擬機的高可用。

數據庫高可用

在Agre環境下,采用SQLServer虛擬機,用戶需要手動設置數據庫的高可

用。比如采用SQLServerAlways-On,或者SQLServerreplication。即讓SQLServer

事務在兩個SQLServer虛擬機之間保持同步。

采用AzureSQLDatabase,數據庫本身就提供高可用的能力。AzureSQL

Database提供99.99%SLA服務承諾。

使用成本

在Azure環境下,采用SQLServer虛擬機,考慮的成本主要有:

1.至少2臺SQLServer虛擬機,并設置在同一個高可用性集下

2.虛擬機開機時的計算成本

3.SQLServerLicense費用

4.虛擬機磁盤的存儲費用

我們在使用SQLServer虛擬機成本,需要綜合考慮上述四個成本因素。

采用AzureSQLDatabase,我們不需要考慮上述的四個成本因素。只需要為

AzureSQLDatabase的實際使用量來付費就可以了。從成本上來說,使用AzureSQL

Database相比SQLServer虛擬機,價格要便宜。

3.2.3擴展

3.2.3.1向上擴展

所謂向上擴展,就是一臺虛擬機,從1個核心(Core),升級到2core,4Core,

或者是

8Core16Coreo

單個節點向上擴展是有限的,這是因為受限于現有的CPU制造技術,我們

無法將大量的計算資源都堆積到1臺300Core甚至400Core的計算節點上。

在Azure環境下,采用SQLServer虛擬機,單個節點的最大計算單元為

D14(16Core/112GB)(或者是DS14,也是16Core/112GB,區別是DS14支持SSD

固態磁盤)。

采用AzureSQLDatabase,因為不存在虛擬機的概念,所以無法把虛擬機配

置進行升級。但是AzureSQLDatabase有一個DTU的概念(筆者在下面幾章會進

行詳細說明)。如果我們要提高AzureSQLDatabase的性能,可以對DTU進行升

級。

323.2橫向擴展

所謂橫向擴展,就是由1個計算節點,橫向擴展到多個計算節點上并行計算,

比如50個、100個計算節點。比如一個互聯網業務需要大量的計算資源,那可

以將這些計算需求由100臺4Core的計算節點進行并行計算。

在Azure環境下,采用SQLServer虛擬機,我們可以使用SQLServerAlways-On

或SQLServerReplication等技術,實現對于數據庫的讀寫分離和橫向擴展能力。

采用AzureSQLDatabase,需要用戶自己設計Scale-Outo比如我們可以把數

據庫進行切片,分散到若干個AzureSQLDatabase里。筆者在下面幾章會進行詳

細說明。

3.2.4管理平臺

操作系統和虛擬機

在Azure環境下,采用SQLServer虛擬機,用戶可以通過遠程桌面連接,管

理虛擬機和操作系統。

采用AzureSQLDatabase,用戶不需要管理后臺的虛擬機和操作系統。

SQLServer組件兼容性

在Azure環境下,采用SQLServer虛擬機,用戶可以安裝和配置SQLServer

全線產品,包括SQLServerDataEngine,SQLServerIntegrationService(SSIS),SQL

ServerAnalysisService(SSAS),SQLServerReportingService(SSRS)O

采用AzureSQLDatabase,用戶只能使用數據庫引擎服務,不包含SSIS,SSAS,

SSRS等服務。

3.2.5其他內容(非常重要)

服務級別

在Azure環境下,采用SQLServer虛擬機,我們有三個非常重要的概念

1.服務器(Server),定義了SQLServer主機

2.實例(Instance),一個SQLServer主機下可以有多個實例(instance)

3.數據庫(Database),一個SQLServerInstance下可以有多個SQLServer數

據庫.

以上三點,都是我們在使用SQLServer虛擬機需要注意的內容。

采用AzureSQLDatabase,用戶只需要關心數據庫(Database),不需要關心服

務器(Server)和實例(Instance)。請注意:

(1)AzureSQLDatabase中的服務器,是虛擬的。我們可以在同一個服務器

下,創建若干個數據庫。這若干個數據庫之間是資源隔離的,并不會產

生資源競爭。

(2)AzureSQLDatabase,不存在實例(Instance)這個概念

(3)用戶只需要關心數據庫(Database)

兼容性

在Azure環境下,采用SQLServer虛擬機,數據庫引擎是與傳統的SQLServer

2008,2012,2014是完全兼容的。所以我們在遷移傳統的SQLServer應用,使用

SQLServer虛擬機是最快速、最便捷的。

AzureSQLDatabase是SQLServer2014的子集,兼容大部分的SQLServer引

擎服務,但是有部分功能不支持。所以我們在將傳統SQLServer應用遷移到Azure

SQLDatabase的時候,需要對數據庫進行優化。

3.3AzureSQLDatabase優勢

3.3.1降低管理成本

因為不存在SQLServer虛擬機,所以虛擬機的操作系統升級、補丁,數據庫

備份等管理都不需要用戶進行操作。降低了管理成本。

3.3.2數據冗余

采用AzureSQLDatabase,數據文件在底層是做了三重冗余的。事務在這三

重冗余是保持同步的。

3.3.3SLA服務保障

采用AzureSQLDatabase,數據庫本身就提供高可用的能力。AzureSQL

Database提供99.99%SLA服務承諾。

3.3.4自動日志備份(非常重要)

采用AzureSQLDatabase,數據庫本身都提供自動日志備份的功能。

AzureSQLDatabase提供自動備份,每周一次全備份,每天一次差異備份,

每5分鐘—次日志備份(Fullbackupsaretakeneveryweek,differentialbackups

everyday,andlogbackupsevery5minutes)

1,對于基本(Basic)服務層的AzureSQLDatabase,備份自動保留7天。Basic

服務層的AzureSQLDatabase可以回滾到當前時間之前的任意7天內的

時間點。

2.對于標準(Standard)服務層的AzureSQLDatabase,備份自動保留14天。

Standard服務層的AzureSQLDatabase可以回滾到當前時間之前的任意

14天內的時間點。

3.對于高級(Premium)服務層的AzureSQLDatabase,備份自動保留35天。

Premium服務層的AzureSQLDatabase可以回滾到當前時間之前的任意

14天內的時間點。

AzureSQLDatabase在第一次創建完成后,系統自動會進行一次全備份。

參考資料:

/en-us/blog/azure-sql-database-point-in-time-restore/

3.3.5跨數據中心只讀副本

微軟在國內的數據中心建設是成對的,比如Azure北京數據中心和Azure上

海數據中心。這是因為微軟充分考慮了異地容災的能力。在北京和上海數據中心

之間會有專線連接,這個專線是數據中心之間數據同步專用的。

最新的AzureSQLDatabase,同時支持Basic,Standard和Premium級別,都

可以創建跨數據中心標準地域復制(StandardGeo-Replication),最多支持4個只讀

副本。

這樣,可以在Azure北京數據中心作為主站點,Azure上海數據中心作為只

讀站點。實現跨數據中心的讀寫分離。

3.3.6跨數據中心故障轉移

當我們AzureSQLDatabase主站點在Azure上海數據中心,只讀站點在Azure

北京數據中心。當上海數據中心發生故障的時候,我們可以手動Failover,將原

來的主站點(上海)和只讀站點(北京)做切換。即Azure北京數據中心作為主站點,

Azure上海數據中心作為只讀站點。這樣保證我們的業務不會因為上海數據中心

發生故障,造成業務宕機。

3.3.7數據庫無縫升級

AzureSQLDatabase支持無縫升級。

AzureSQLDatabase有一個性能指標,叫做DTU。有關DTU的詳細信息,請

參考DTU章節。

我們在上線一個新項目,在開發測試的時候,可以設置比較小的DTU,比如

Basic服務層。因為開發測試用戶訪問量不大,使用Basic服務層的也比較節省成

本。

在項目上線之前,我們可以通過Azure管理界面,將AzureSQLDatabase升

級到Standard或者是Premium。因為生產環境,對于DTU的要求會比較高。

請注意,我們通過Azure管理界面對AzureSQLDatabase進行升級的時候,

服務不會宕機或者重啟,整個升級過程對客戶端是透明的。

3.4AzureSQLDatabase月艮務層

AzureSQLDatabase服務層分為三種Basic,Standard和Premium。具體請參考

下面的表格:

Standarc1Premium

Basic

soS2S3PlP2P4|P6/P3Pll

DTUs51020501001252505001,0001,750

Maxstorage(GB)22505001,000

MaxIn-memoryOLTPstorage(GB)N/AN/AN/AN/AN/A124814

Maxconcurrentworkers3060901202002004008001,6002z400

Maxconcurrentlogins3060901202002004008001,6002,400

Maxconcurrentsessions3006009001,2002,4002,4004,8009,60019,20032,000

Point-in-timerestoreAnypointlast7daysAnypointlast14daysAnypointlast35days

DisasterrecoveryActiveGeo-Replication,upto4readablesecondarybackups

1.Basic只有一種性能級別

2.Standard分為三種性能級別:SO,SI,S2,S3

3.Premium分為五種性能級別:Pl,P2,P4,P6,P11

參考資料:

/zh-cn/documentation/articles/sql-database-service-tier

s/?rnd=l

3.4.1基本(Basic)服務層

1.Basic服務層,DTU為5

2.數據庫最大容量為2GB,只包含數據庫文件,不包含日志文件

3.Maxconcurrentworkers為30

4.Maxconcurrentlogins為30

5.Maxcurrentsessions為300

6.備份自動保留7天。Basic服務層的AzureSQLDatabase可以回滾到當前

時間之前的任意7天內的時間點。

7.AzureSQLDatabase提供自動備份,每周一次全備份,每天一次差異備

份,每5分鐘一次日志備份

3.4.2標準(Standard)服務層

1.Standard服務層,分為四個不同的性能級別,SO,SI,S2,S3

2.數據庫最大容量為250GB,只包含數據庫文件,不包含日志文件

3.Maxconcurrentworkers根據不同的性能級別,為60,90,120,200

4.Maxconcurrentlogins根據不同的性能級別,為60,90,120,200

5.Maxcurrentsessions根據不同的性能級別,為600,900,1200,2400

6.備份自動保留14天。Standard服務層的AzureSQLDatabase可以回滾到

當前時間之前的任意14天內的時間點。

7.AzureSQLDatabase提供自動備份,每周一次全備份,每天一次差異備

份,每5分鐘一次日志備份

3.4.3高級(Premium)服務層

1.Premium服務層,分為五個不同的性能級別,Pl,P2,P4,P6,P11

2.P1-P6數據庫最大容量為500G,只包含數據庫文件,不包含日志文件

3.P11數據庫最大容量為1TB

4.Maxconcurrentworkers根據不同的性能級別,提供不同的性能指標

5.Maxconcurrentlogins根據不同的性能級別,提供不同的性能指標

6.Maxconcurrentsessions根據不同的性能級別,提供不同的性能指標

7.備份自動保留35天。Premium服務層的AzureSQLDatabase可以回滾到

當前時間之前的任意35天內的時間點。

8.AzureSQLDatabase提供自動備份,每周一次全備份,每天一次差異備

份,每5分鐘一次日志備份

3.5AzureSQLDatabase相關知識介紹

3.5.1DTU

14AzureSQLDatabaseM,有一個非常重要的性能指標,叫做DTU。

TheDatabaseTransactionUnit(DTU)istheunitofmeasureinSQLDatabase

thatrepresentstherelativepowerofdatabasesbasedonareal-worldmeasure:the

databasetransaction.Wetookasetofoperationsthataretypicalforanonline

transactionprocessing(OLTP)request,andthenmeasuredhowmanytransactions

couldbecompletedpersecondunderfullyloadedconditions(that'stheshort

version,youcanreadthegorydetailsintheBenchmarkoverview).

參考資料:

/zh-cn/documentation/articles/sql-database-service

-tiers/?rnd=l#understanding-dtus

簡單理解DTU,就是DTU數值越大,則該SQLAzureDatabase性能越好。所

以Premium級別的SQLAzureDatabase性能最好,Standard其次,最后才是Basic。

舉個例子,我們在3.4節中可以觀察到,Basic的DTU為5,而StandardS3

的DTU為100o則StandardS3的數據庫性能比Basic的性能高20倍。

以筆者個人經驗來說,Basic服務層比較適合于開發測試,或者并發性能比

較小的情況。

Standard服務層,比較適合于一般的業務場景。

Premium服務層,比較適合并發請求比較大的情況。

以筆者之前的項目經驗來看,PremiumP2級別的SQLAzureDatabase,性能

要略好于2臺A7(8Core/56GB)SQLVM設置Always-On0

IfyouaremigratinganexistingSQLServerdatabase,youcanuseathird-party

tool,theAzureSQLDatabaseDTUCalculator,togetanestimateoftheperformance

levelandservicetieryourdatabasemightrequireinAzureSQLDatabase.

如果我們是把現有的SQLServerVM數據庫遷移到SQLAzure平臺,我們可

以采用AzureSQLDatabaseDTUCalculator,運行AzurePowerShell收集性能計數

器,然后上傳到AzureSQLDatabaseDTUCalculator,進行計算和評估。

3.5.2V12

參考資料:

/zh-cn/documentation/articles/sql-database-vl2-w

hats-new/

在里,有一個非常重要的特性叫做

AzureSQLDatabaseSQLDatabaseV12o

我們在創建新的AzureSQLDatabase數據庫的時候,會提示用戶是否需要創

建AzureSQLDatabaseV12版本,相比之前的VII版本,V12版本的優勢有以下

幾點:

352.1提高了兼容性

我們在節中介紹過了,AzureSQLDatabase是SQLServer2014的子

集,兼容大部分的SQLServer引擎服務。使用AzureSQLDatabaseV12版本,兼

容以下SQLServer特性:

1.Built-inJSONsupport

2.Windowfunctions,withOVER

3.XMLindexesandselectiveXMLindexes

4.Changetracking

5.SELECT…INTO

6.Full-textsearch

7.ALTERDATABASESCOPEDCONFIGURATION(Transact-SQL)

有關AzureSQLDatabase不兼容的內容,請參考以下鏈接:

/zh-cn/documentntion/articles/sql-database-transa

ct-sql-information/

3.522提高了性能級別

在V12版本里,AzureSQLDatabase所有級別(基本Basic,標準Standard,高

級Premium)的DTU性能都提高了25%,且不會增加任何成本。除此以外,V12

還有其他新的特性,包括:

1.支持列存儲索引

2.支持對已經進行表分區的數據,進行truncate操作

TablepartitioningbyrowswithrelatedenhancementstoTRUNCATETABLE.

3.支持動態管理視圖(DynamicManagementViews,DMVs),監控和調試數據

庫性能

更好的支持云SaaS供應商

在V12版本里,新增了標準(Standard)級別的S3,并且提供了動態數據庫池

(ElasticDatabasePools),使用ElasticDatabasePool,你可以

1.若干多個AzureSQLDatabase,共享DTU,以降低使用成本

2.使用ElasticDatabaseJobs,管理數據庫

增加安全性

在V12版本里,支持以下安全特性:

1.Row-levelsecurit、(RLS)

2.DynamicDat〉Masking

3.Containeddatabases

4.ApplicationrolesmanagedwithGRANT;DENYREVOKE

5.TransparentDataEncryption(TDE)

6.ConnectingtoSQLDatabaseByUsingAzureActiveDirectoryAuthentication

SQLDatabasenowsupportsAzureActiveDirectoryauthentication,a

mechanismofconnectingtoSQLDatabasebyusingidentitiesinAzure

ActiveDirectory(AzureAD).WithAzureActiveDirectoryauthenticationyou

cancentrallymanagetheidentitiesofdatabaseusersandotherMicrosoft

servicesinonecentrallocation.

7.AlwaysEncrypted(inpreview)makesencryptiontransparenttoapplications

andallowsclientstoencryptsensitivedatainsideclientapplications

withoutsharingtheencryptionkeyswithSQLDatabase.

建議用戶升級AzureSQLDatabaseV12

1.AzureSQLDatabaseV12支持的特性比Vil更多

2.對于V12,微軟會持續增加新的特性

3.很多其他新的特性,會先增力口至UAzureSQLDatabaseV12,然后再增加到

MicrosoftSQLServer

如何查看當前的AzureSQLDatabase版本

1.登陸Azure管理界面

2.查看AzureSQLDatabase的圖標

3.如果顯示的是,則當前的數據庫版本是V12

SQL

4.如果顯示的是,則當前的數據庫版本是老的版本

5.另外一種方法是,我們連接到AzureSQLDatabase以后,可以執行SELECT

@@version,來查看當前的數據庫版本

6.如果顯示的是12.0.2000.10,則當前版本是V12

7.如果顯示的是11.0.9228.18,則當前版本是VII

請注意,V12數據庫,只能托管在V12服務器(注意,AzureSQLDatabase中

的服務器,是虛擬的)上。并且V12服務器,只能托管V12數據庫。

如果你的AzureSQLDatabase不是V12版本,我們還需要把當前數據庫所在

的服務器(注意,AzureSQLDatabase中的服務器,是虛擬的),升級到V12版本。

有關升級的步驟,請參考這里。

3.6使用AzureSQLDatabase注意事項(非常重要)

3.6.1數據庫最大容量

我們在3.4節中可以觀察到,AzureSQLDatabase限制了數據庫最大容量:

1.Basic服務層,最大容量為2GB

2.Standard服務層,最大容量為250G

3.Premium服務層,Pl-P6數據庫最大容量為500G

4.Premium服務層,P11數據庫最大容量為1TB

3.6.2減少并發請求

我們在3.4節中可以觀察到,AzureSQLDatabase不僅僅限制了數據庫的最

大容量,而且限制了Maxconcurrentworkers,Maxconcurrentlogins,Max

concurrentsessionso如下表所示:

Standarc1Premium

■籌URoe3ilrJ

soS2S3PlP2P4P6/P3Pll

DTUs51020501001252505001,0001,750

Maxstorage(GB)22505001,000

MaxIn-memoryOLTPstorage(GB)N/AN/AN/AN/AN/A124814

Maxconcurrentworkers3060901202002004008001,6002,400

Maxconcurrentlogins3060901202002004008001,6002,400

Maxconcurrentsessions3006009001,2002,4002,4004,8009,60019,20032,000

Point-in-timerestoreAnypointlast7daysAnypointlast14daysAnypointlast35days

DisasterrecoveryActiveGeo-Replication,upto4readablesecondarybackups

上圖中,我們可以以StandardS3為例。

1.MaxconcurrentWorkers為200

2.MaxconcurrentLogins為200

3.Maxconcurrentsessions為2400

當我們使用VisualStudioTestAgent或者LoadRunner等壓力測試軟件,對

AzureSQLDatabase進行壓力測試的時候,如果并發數小于等于200的時候,Azure

SQLDatabase是正常提供服務的。

但是如果我們把并發用戶數大于200,在進行壓力測試的時候]就會產生

ServerError500錯誤。因為AzureSQLDatabase對Maxconcurrent進行了限制。

結合到業務場景中,我們要減少業務系統對AzureSQLDatabase的并發。舉

個例子,某個企業在線培訓系統的后臺數據庫采用AzureSQLDatabase,在選擇

AzureSQLDatabase服務層的時候,我們需要考慮以下幾點:

1.MaxStorage,只包含數據庫文件,不包含日志文件

2.DTU

3.MaxconcurrentWorkers

4.MaxconcurrentLogins

5.Maxconcurrentsessions

當業務高峰的時候,最大并發請求為400。從上表中我們發現,至少需要選

擇Premium級別的P2(MaxconcurrentWorker和MaxconcurrentLogins都是400),

這樣才能滿足數據庫的最大并發請求。

或者我們換一種思路,可以把經常需要查詢的內容,保存到緩存中(比如保

存到AzureRedisCache緩存中),以降低對于AzureSQLDatabase的并發請求。

參考資料:

/cn-us/documentntion/articles/sql-database-resour

ce-limits/

3.6.3數據庫切片

筆者在平時的項目經驗中,看過很多大型的業務系統,采用單一AzureSQL

Database數據庫,遇到各種各樣的問題。我們舉一個設計差的案例:

1.A用戶的業務系統,數據庫采用AzureSQLDatabase,保存全國用戶的信

息數據。

2.該業務系統,每個月的數據庫容量增長40G

3.該業務系統,最大的并發請求為1000

4.對DTU的需求也非常大

針對上述的現狀,客戶在選擇單一的AzureSQLDatabase數據庫,只能選擇

Premium級別的P6(Maxconcurrent為1600),價格會比較貴。

而且考慮到業務是逐漸增長的,在后期還可能將數據庫升級到最高級別的

Pllo如果業務需求再增加的話,可能P11級別的數據庫也無法滿足業務壓力。

請大家牢記,單個節點向上擴展是有限的。

所以我們可以發現,當我們把所有的業務數據,都保存到一個數據庫中,這

個數據庫就會產生性能瓶頸。如下圖:

數據庫切片

IDepartmentFirstNameLastNameRegion

ITJackZhangBeijing

MarketingM汰eWangBeijing

ITJaneLiShanghai

SalesPeterZhaoShanghai

Other

■問題:單個數據庫會產生性能瓶頸

所以我們可以把數據表進行切片,下面介紹的是橫向切片(Horizontal

partitioning)o有關數據表切片,請參考:

/cn-us/documentntion/articles/best-practices-dcts-

partitioning/

數據表切片

|Department|FirstNameLastName|TenantID

ITJackZhangBeijing

MarketingMikeWangBeijing

|Department1FirstNameLastName|TenantID|

ITJaneLiShanghai

SalesPeterZhaoShanghai

|Department|FirstName1LastName|TenantID'

ITJaneLiGuangzhou

DepartmentFirstNameLastNameTenantID|

ITCity_N

上圖中,我們把原本保存在同一個數據表中的數據,按照所在城市,拆分到

不同數據庫的數據表中。這樣做的目的,有以下幾點:

⑴減少數據庫的最大容量

⑵減少對同一張表頻繁讀寫而產生的性能瓶頸,即降低DTU

(3)減少數據庫并發,即降低Maxconcurrent

另外我們在進行數據庫切片的時候,需要注意,上圖中DB_A,DB_B,DB_C,

DB_D這四個數據庫是分離的。如果我們要引用其他相對靜態的數據,比如后每

市良縣編碼,全國省份編碼,產品編碼等表,需要考慮將上述三個表的內容,在

四個AzureSQLDatabase數據庫(DB_A,DB_B,DB_C,DB_D)中進行冗余,避免出現

跨數據庫的表查詢。

數據庫表切片后,我們還要考慮,對于不同的數據庫,還要設置不同的連接

字符串。如下圖:

數據庫切片

TenantID|Data_Connetion

Tenant_A"Provider=ServerA,1433,Database=xxx..."

H

Tenant_BProvicler=ServerB,1433zDatabase二xxx...”

Tenant_C"Provider=ServerC,1433,Database=xxx..."

Tenant_N"Provider=ServerD,1433,Database二xxx...〃

3.6.4單個DatabaseServer限制了最大DTU

在之前的內容中,我們介紹了AzureSQLDatabase中的服務器,是虛擬的。

我們可以在同一個AzureSQLDatabase服務器下,創建若干多個Database,這若

干個數據庫之間是資源隔離的,并不會產生資源競爭。但是請注意:微軟限制了

單個AzureSQLDatabaseServer的最大DTU,為45000。

也就是說,我們可以在同一個AzureSQLDatabaseServer里,創建若干多個

Database,但是所有Database的DTU總和,不能超過45000。

舉個例子,AzureSQLDatabasePremiumP4,DTU是500。

而單個AzureSQLDatabaseServer的最大DTU,為45000。

那我們可以在一個AzureSQLDatabaseServer下,最多創建9

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論