AzureSQLDatabase用戶手冊(cè)資料_第1頁(yè)
AzureSQLDatabase用戶手冊(cè)資料_第2頁(yè)
AzureSQLDatabase用戶手冊(cè)資料_第3頁(yè)
AzureSQLDatabase用戶手冊(cè)資料_第4頁(yè)
AzureSQLDatabase用戶手冊(cè)資料_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

AzureSQLDatabase

用戶手冊(cè)

版本變更:

日期版本號(hào)變更內(nèi)容作者

2016-05-101.00文檔創(chuàng)建,設(shè)置文檔目錄結(jié)構(gòu)leizha

目錄

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

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

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

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

3.2AzureSQLDatabase與傳統(tǒng)SQLServer虛擬機(jī)的區(qū)別(非常重要)....5

3.2.1應(yīng)用遷移..............................................6

遷移現(xiàn)有應(yīng)用....................................6

遷移新的應(yīng)用....................................7

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

管理操作系統(tǒng)....................................7

虛擬機(jī)高可用....................................7

數(shù)據(jù)庫(kù)高可用....................................7

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

3.2.3擴(kuò)展..................................................8

向上擴(kuò)展........................................8

橫向擴(kuò)展........................................8

3.2.4管理平臺(tái)..............................................8

操作系統(tǒng)和虛擬機(jī)................................8

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

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

服務(wù)級(jí)別........................................9

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

3.3AzureSQLDatabase優(yōu)勢(shì)......................................10

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

3.3.2數(shù)據(jù)冗余.............................................10

3.3.3SLA服務(wù)保障..........................................10

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

3.3.5跨數(shù)據(jù)中心只讀副本...................................10

3.3.6跨數(shù)據(jù)中心故障轉(zhuǎn)移...................................11

3.3.7數(shù)據(jù)庫(kù)無(wú)縫升級(jí).......................................11

3.4AzureSQLDatabase服務(wù)層....................................11

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

3.4.2標(biāo)準(zhǔn)(Standard)服務(wù)層.................................12

3.4.3高級(jí)(Premium)服務(wù)層.................................12

3.5AzureSQLDatabase相關(guān)矢口識(shí)介紹..............................13

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

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

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

提高了性能級(jí)別.................................14

更好的支持云SaaS供應(yīng)商.........................14

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

建議用戶升級(jí)AzureSQLDatabaseV12...............................15

如何查看當(dāng)前的AzureSQLDatabase版本.............15

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

3.6.1數(shù)據(jù)庫(kù)最大容量.......................................16

3.6.2減少并發(fā)請(qǐng)求.........................................16

3.6.3數(shù)據(jù)庫(kù)切片...........................................17

3.6.4單個(gè)DatabaseServer限制了最大DTU..........................................19

3.6.5單個(gè)DatabaseServer最多5000個(gè)Database.................................19

3.6.6數(shù)據(jù)庫(kù)備份...........................................20

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

3.7.1默認(rèn)時(shí)區(qū)為UTC時(shí)區(qū)...................................20

3.7.2暫時(shí)不支持SQLAgent.....................................................................20

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

3.8價(jià)格......................................................21

4.開(kāi)始使用AzureSQLDatabase.............................................................................21

4.1倉(cāng)1J建AzureSQLDatabaseServer.................................................................21

4.2創(chuàng)建AzureSQLDatabase............................................................................23

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

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

4.5開(kāi)始使用..................................................30

4.5.1查看數(shù)據(jù)庫(kù)版本.......................................30

4.5.2查看數(shù)據(jù)庫(kù)時(shí)間.......................................31

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

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

4.6.1注意事項(xiàng).............................................32

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

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

注意事項(xiàng).......................................44

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

4.6.3.3詳細(xì)內(nèi)容.....................................45

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

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

4.7使用外部表進(jìn)行跨庫(kù)查詢....................................50

4.8監(jiān)控......................................................50

4.9切換數(shù)據(jù)庫(kù)服務(wù)層和性能級(jí)別................................53

4.9.1注意事項(xiàng).............................................53

4.9.2切換前的評(píng)估.........................................54

4.9.3開(kāi)始切換.............................................54

4.10跨數(shù)據(jù)中心標(biāo)準(zhǔn)地域復(fù)制(StandardGeo-Replication)............................56

4.10.1說(shuō)明................................................56

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

L前言

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

Dem。不給力?請(qǐng)?jiān)L問(wèn)我的個(gè)人博客

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

2.讀者

WindowsAzure是平臺(tái)產(chǎn)品,本文只詳細(xì)介紹如何創(chuàng)建和管理AzureSQL

Databaseo本文適合開(kāi)發(fā)人員閱讀。

另外本文會(huì)牽涉到部分Azure訂閱相關(guān)內(nèi)容,請(qǐng)讀者先閱讀《Azure管理手

冊(cè)》。http:〃blogs.eom/threestone/p/4627388.html

3.總體介紹

3.1什么是AzureSQLDatabase

在傳統(tǒng)IDC環(huán)境里,我們?nèi)绻褂肧QLServer數(shù)據(jù)庫(kù)服務(wù),需要首先安裝

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

1.WindowsServer操作系統(tǒng)

2.SQLServer數(shù)據(jù)庫(kù)服務(wù)

這樣管理的時(shí)候,不僅需要維護(hù)數(shù)據(jù)庫(kù),還要維護(hù)數(shù)據(jù)庫(kù)底層的操作系統(tǒng),

運(yùn)行時(shí)等。管理復(fù)雜,管理成本比較高。

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

MySQLDatabaseonAzure0提供給用戶的是一個(gè)數(shù)據(jù)庫(kù)連接字符串。注意:這個(gè)

數(shù)據(jù)庫(kù)連接字符串后面的操作系統(tǒng)等,無(wú)需用戶自己管理。

而且這個(gè)數(shù)據(jù)庫(kù)連接字符串背后的數(shù)據(jù)庫(kù)服務(wù),本身就提供了99.99%SLA,

提供了數(shù)據(jù)庫(kù)備份功能,降低了用戶管理數(shù)據(jù)庫(kù)的成本。

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

會(huì)用SQLAzure字眼,其實(shí)是和AzureSQLDatabase是一個(gè)產(chǎn)品,請(qǐng)讀者注意。

3.2AzureSQLDatabase與傳統(tǒng)SQLServer虛擬機(jī)的區(qū)別

(非常重要)

AzureSQLDatabase與傳統(tǒng)的SQLServer2008,2012,2014虛擬機(jī)還是有一點(diǎn)

的區(qū)別,主要有以下幾方面區(qū)別:

內(nèi)容SQLServer虛擬機(jī)AzureSQLDatabase

應(yīng)用遷移

遷移現(xiàn)有應(yīng)用快速中等

遷移新的應(yīng)用中等快速

管理成本

管理操作系統(tǒng)是否

虛擬機(jī)高可用需要手工設(shè)置N/A

數(shù)據(jù)庫(kù)高可用需要手工設(shè)置(比如SQL99.99%SLA

ServerAlways-On,SQL

Serverreplication等)

使用成本中等低

擴(kuò)展(Scale)

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

橫向擴(kuò)展(Scale-Out)需要手工設(shè)置(比如SQL需要用戶自己設(shè)計(jì)

ServerAlways-On,SQLScale-Out

Serverreplication等)

數(shù)據(jù)庫(kù)最大容量32TB(D1416Core/1TB

112G)

管理平臺(tái)

操作系統(tǒng)和虛擬機(jī)用戶完全控制N/A

SQLServer組件兼容性對(duì)SQLServer產(chǎn)品全部只提供數(shù)據(jù)庫(kù)引擎

支持,包括SSIS,SSAS,

SSRS

其他

服務(wù)級(jí)別服務(wù)器,實(shí)例,數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)

兼容性完全兼容部分兼容

參考資料:

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應(yīng)用遷移

遷移現(xiàn)有應(yīng)用

因?yàn)镾QLServer虛擬機(jī)完全兼容SQLServer2008,2012和2014,所以從遷移

現(xiàn)有應(yīng)用來(lái)說(shuō),使用SQLServer虛擬機(jī)是最快速的。

遷移新的應(yīng)用

如果我們要遷移一個(gè)新的應(yīng)用程序,使用SQLServer虛擬機(jī)需要安裝操作系

統(tǒng),配置數(shù)據(jù)庫(kù)用戶名密碼,配置防火墻規(guī)則等,操作起來(lái)非常復(fù)雜。

而使用AzureSQLDatabase以后,我們?cè)趧?chuàng)建數(shù)據(jù)庫(kù)的時(shí)候只需要做若干配

置,就可以直接使用這個(gè)數(shù)據(jù)庫(kù)服務(wù)了。底層的數(shù)據(jù)庫(kù)備份、高可用設(shè)計(jì),Azure

SQLDatabase都已經(jīng)幫我們配置好了,用戶不需要再進(jìn)行其他配置。

3.2.2管理成本

管理操作系統(tǒng)

在Azure環(huán)境下,采用SQLServer虛擬機(jī),需要同時(shí)管理操作系統(tǒng)和SQL

Server數(shù)據(jù)庫(kù)服務(wù)。

而采用AzureSQLDatabase,提供給用戶的只是一個(gè)數(shù)據(jù)庫(kù)連接字符串,用

戶無(wú)需管理該數(shù)據(jù)連接字符串背后的操作系統(tǒng)、數(shù)據(jù)庫(kù)服務(wù)等。

虛擬機(jī)高可用

在Azure環(huán)境下,采用SQLServer虛擬機(jī),用戶需要手動(dòng)設(shè)置虛擬機(jī)的高可

用,即將2臺(tái)或者2臺(tái)以上的虛擬機(jī),部署到同一個(gè)可用性集中。

而采用AzureSQLDatabase,用戶無(wú)需關(guān)心虛擬機(jī)的高可用。

數(shù)據(jù)庫(kù)高可用

在Agre環(huán)境下,采用SQLServer虛擬機(jī),用戶需要手動(dòng)設(shè)置數(shù)據(jù)庫(kù)的高可

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

事務(wù)在兩個(gè)SQLServer虛擬機(jī)之間保持同步。

采用AzureSQLDatabase,數(shù)據(jù)庫(kù)本身就提供高可用的能力。AzureSQL

Database提供99.99%SLA服務(wù)承諾。

使用成本

在Azure環(huán)境下,采用SQLServer虛擬機(jī),考慮的成本主要有:

1.至少2臺(tái)SQLServer虛擬機(jī),并設(shè)置在同一個(gè)高可用性集下

2.虛擬機(jī)開(kāi)機(jī)時(shí)的計(jì)算成本

3.SQLServerLicense費(fèi)用

4.虛擬機(jī)磁盤(pán)的存儲(chǔ)費(fèi)用

我們?cè)谑褂肧QLServer虛擬機(jī)成本,需要綜合考慮上述四個(gè)成本因素。

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

AzureSQLDatabase的實(shí)際使用量來(lái)付費(fèi)就可以了。從成本上來(lái)說(shuō),使用AzureSQL

Database相比SQLServer虛擬機(jī),價(jià)格要便宜。

3.2.3擴(kuò)展

3.2.3.1向上擴(kuò)展

所謂向上擴(kuò)展,就是一臺(tái)虛擬機(jī),從1個(gè)核心(Core),升級(jí)到2core,4Core,

或者是

8Core16Coreo

單個(gè)節(jié)點(diǎn)向上擴(kuò)展是有限的,這是因?yàn)槭芟抻诂F(xiàn)有的CPU制造技術(shù),我們

無(wú)法將大量的計(jì)算資源都堆積到1臺(tái)300Core甚至400Core的計(jì)算節(jié)點(diǎn)上。

在Azure環(huán)境下,采用SQLServer虛擬機(jī),單個(gè)節(jié)點(diǎn)的最大計(jì)算單元為

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

固態(tài)磁盤(pán))。

采用AzureSQLDatabase,因?yàn)椴淮嬖谔摂M機(jī)的概念,所以無(wú)法把虛擬機(jī)配

置進(jìn)行升級(jí)。但是AzureSQLDatabase有一個(gè)DTU的概念(筆者在下面幾章會(huì)進(jìn)

行詳細(xì)說(shuō)明)。如果我們要提高AzureSQLDatabase的性能,可以對(duì)DTU進(jìn)行升

級(jí)。

323.2橫向擴(kuò)展

所謂橫向擴(kuò)展,就是由1個(gè)計(jì)算節(jié)點(diǎn),橫向擴(kuò)展到多個(gè)計(jì)算節(jié)點(diǎn)上并行計(jì)算,

比如50個(gè)、100個(gè)計(jì)算節(jié)點(diǎn)。比如一個(gè)互聯(lián)網(wǎng)業(yè)務(wù)需要大量的計(jì)算資源,那可

以將這些計(jì)算需求由100臺(tái)4Core的計(jì)算節(jié)點(diǎn)進(jìn)行并行計(jì)算。

在Azure環(huán)境下,采用SQLServer虛擬機(jī),我們可以使用SQLServerAlways-On

或SQLServerReplication等技術(shù),實(shí)現(xiàn)對(duì)于數(shù)據(jù)庫(kù)的讀寫(xiě)分離和橫向擴(kuò)展能力。

采用AzureSQLDatabase,需要用戶自己設(shè)計(jì)Scale-Outo比如我們可以把數(shù)

據(jù)庫(kù)進(jìn)行切片,分散到若干個(gè)AzureSQLDatabase里。筆者在下面幾章會(huì)進(jìn)行詳

細(xì)說(shuō)明。

3.2.4管理平臺(tái)

操作系統(tǒng)和虛擬機(jī)

在Azure環(huán)境下,采用SQLServer虛擬機(jī),用戶可以通過(guò)遠(yuǎn)程桌面連接,管

理虛擬機(jī)和操作系統(tǒng)。

采用AzureSQLDatabase,用戶不需要管理后臺(tái)的虛擬機(jī)和操作系統(tǒng)。

SQLServer組件兼容性

在Azure環(huán)境下,采用SQLServer虛擬機(jī),用戶可以安裝和配置SQLServer

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

ServerAnalysisService(SSAS),SQLServerReportingService(SSRS)O

采用AzureSQLDatabase,用戶只能使用數(shù)據(jù)庫(kù)引擎服務(wù),不包含SSIS,SSAS,

SSRS等服務(wù)。

3.2.5其他內(nèi)容(非常重要)

服務(wù)級(jí)別

在Azure環(huán)境下,采用SQLServer虛擬機(jī),我們有三個(gè)非常重要的概念

1.服務(wù)器(Server),定義了SQLServer主機(jī)

2.實(shí)例(Instance),一個(gè)SQLServer主機(jī)下可以有多個(gè)實(shí)例(instance)

3.數(shù)據(jù)庫(kù)(Database),一個(gè)SQLServerInstance下可以有多個(gè)SQLServer數(shù)

據(jù)庫(kù).

以上三點(diǎn),都是我們?cè)谑褂肧QLServer虛擬機(jī)需要注意的內(nèi)容。

采用AzureSQLDatabase,用戶只需要關(guān)心數(shù)據(jù)庫(kù)(Database),不需要關(guān)心服

務(wù)器(Server)和實(shí)例(Instance)。請(qǐng)注意:

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

下,創(chuàng)建若干個(gè)數(shù)據(jù)庫(kù)。這若干個(gè)數(shù)據(jù)庫(kù)之間是資源隔離的,并不會(huì)產(chǎn)

生資源競(jìng)爭(zhēng)。

(2)AzureSQLDatabase,不存在實(shí)例(Instance)這個(gè)概念

(3)用戶只需要關(guān)心數(shù)據(jù)庫(kù)(Database)

兼容性

在Azure環(huán)境下,采用SQLServer虛擬機(jī),數(shù)據(jù)庫(kù)引擎是與傳統(tǒng)的SQLServer

2008,2012,2014是完全兼容的。所以我們?cè)谶w移傳統(tǒng)的SQLServer應(yīng)用,使用

SQLServer虛擬機(jī)是最快速、最便捷的。

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

擎服務(wù),但是有部分功能不支持。所以我們?cè)趯鹘y(tǒng)SQLServer應(yīng)用遷移到Azure

SQLDatabase的時(shí)候,需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化。

3.3AzureSQLDatabase優(yōu)勢(shì)

3.3.1降低管理成本

因?yàn)椴淮嬖赟QLServer虛擬機(jī),所以虛擬機(jī)的操作系統(tǒng)升級(jí)、補(bǔ)丁,數(shù)據(jù)庫(kù)

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

3.3.2數(shù)據(jù)冗余

采用AzureSQLDatabase,數(shù)據(jù)文件在底層是做了三重冗余的。事務(wù)在這三

重冗余是保持同步的。

3.3.3SLA服務(wù)保障

采用AzureSQLDatabase,數(shù)據(jù)庫(kù)本身就提供高可用的能力。AzureSQL

Database提供99.99%SLA服務(wù)承諾。

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

采用AzureSQLDatabase,數(shù)據(jù)庫(kù)本身都提供自動(dòng)日志備份的功能。

AzureSQLDatabase提供自動(dòng)備份,每周一次全備份,每天一次差異備份,

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

everyday,andlogbackupsevery5minutes)

1,對(duì)于基本(Basic)服務(wù)層的AzureSQLDatabase,備份自動(dòng)保留7天。Basic

服務(wù)層的AzureSQLDatabase可以回滾到當(dāng)前時(shí)間之前的任意7天內(nèi)的

時(shí)間點(diǎn)。

2.對(duì)于標(biāo)準(zhǔn)(Standard)服務(wù)層的AzureSQLDatabase,備份自動(dòng)保留14天。

Standard服務(wù)層的AzureSQLDatabase可以回滾到當(dāng)前時(shí)間之前的任意

14天內(nèi)的時(shí)間點(diǎn)。

3.對(duì)于高級(jí)(Premium)服務(wù)層的AzureSQLDatabase,備份自動(dòng)保留35天。

Premium服務(wù)層的AzureSQLDatabase可以回滾到當(dāng)前時(shí)間之前的任意

14天內(nèi)的時(shí)間點(diǎn)。

AzureSQLDatabase在第一次創(chuàng)建完成后,系統(tǒng)自動(dòng)會(huì)進(jìn)行一次全備份。

參考資料:

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

3.3.5跨數(shù)據(jù)中心只讀副本

微軟在國(guó)內(nèi)的數(shù)據(jù)中心建設(shè)是成對(duì)的,比如Azure北京數(shù)據(jù)中心和Azure上

海數(shù)據(jù)中心。這是因?yàn)槲④洺浞挚紤]了異地容災(zāi)的能力。在北京和上海數(shù)據(jù)中心

之間會(huì)有專(zhuān)線連接,這個(gè)專(zhuān)線是數(shù)據(jù)中心之間數(shù)據(jù)同步專(zhuān)用的。

最新的AzureSQLDatabase,同時(shí)支持Basic,Standard和Premium級(jí)別,都

可以創(chuàng)建跨數(shù)據(jù)中心標(biāo)準(zhǔn)地域復(fù)制(StandardGeo-Replication),最多支持4個(gè)只讀

副本。

這樣,可以在Azure北京數(shù)據(jù)中心作為主站點(diǎn),Azure上海數(shù)據(jù)中心作為只

讀站點(diǎn)。實(shí)現(xiàn)跨數(shù)據(jù)中心的讀寫(xiě)分離。

3.3.6跨數(shù)據(jù)中心故障轉(zhuǎn)移

當(dāng)我們AzureSQLDatabase主站點(diǎn)在Azure上海數(shù)據(jù)中心,只讀站點(diǎn)在Azure

北京數(shù)據(jù)中心。當(dāng)上海數(shù)據(jù)中心發(fā)生故障的時(shí)候,我們可以手動(dòng)Failover,將原

來(lái)的主站點(diǎn)(上海)和只讀站點(diǎn)(北京)做切換。即Azure北京數(shù)據(jù)中心作為主站點(diǎn),

Azure上海數(shù)據(jù)中心作為只讀站點(diǎn)。這樣保證我們的業(yè)務(wù)不會(huì)因?yàn)樯虾?shù)據(jù)中心

發(fā)生故障,造成業(yè)務(wù)宕機(jī)。

3.3.7數(shù)據(jù)庫(kù)無(wú)縫升級(jí)

AzureSQLDatabase支持無(wú)縫升級(jí)。

AzureSQLDatabase有一個(gè)性能指標(biāo),叫做DTU。有關(guān)DTU的詳細(xì)信息,請(qǐng)

參考DTU章節(jié)。

我們?cè)谏暇€一個(gè)新項(xiàng)目,在開(kāi)發(fā)測(cè)試的時(shí)候,可以設(shè)置比較小的DTU,比如

Basic服務(wù)層。因?yàn)殚_(kāi)發(fā)測(cè)試用戶訪問(wèn)量不大,使用Basic服務(wù)層的也比較節(jié)省成

本。

在項(xiàng)目上線之前,我們可以通過(guò)Azure管理界面,將AzureSQLDatabase升

級(jí)到Standard或者是Premium。因?yàn)樯a(chǎn)環(huán)境,對(duì)于DTU的要求會(huì)比較高。

請(qǐng)注意,我們通過(guò)Azure管理界面對(duì)AzureSQLDatabase進(jìn)行升級(jí)的時(shí)候,

服務(wù)不會(huì)宕機(jī)或者重啟,整個(gè)升級(jí)過(guò)程對(duì)客戶端是透明的。

3.4AzureSQLDatabase月艮務(wù)層

AzureSQLDatabase服務(wù)層分為三種Basic,Standard和Premium。具體請(qǐng)參考

下面的表格:

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只有一種性能級(jí)別

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

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

參考資料:

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

s/?rnd=l

3.4.1基本(Basic)服務(wù)層

1.Basic服務(wù)層,DTU為5

2.數(shù)據(jù)庫(kù)最大容量為2GB,只包含數(shù)據(jù)庫(kù)文件,不包含日志文件

3.Maxconcurrentworkers為30

4.Maxconcurrentlogins為30

5.Maxcurrentsessions為300

6.備份自動(dòng)保留7天。Basic服務(wù)層的AzureSQLDatabase可以回滾到當(dāng)前

時(shí)間之前的任意7天內(nèi)的時(shí)間點(diǎn)。

7.AzureSQLDatabase提供自動(dòng)備份,每周一次全備份,每天一次差異備

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

3.4.2標(biāo)準(zhǔn)(Standard)服務(wù)層

1.Standard服務(wù)層,分為四個(gè)不同的性能級(jí)別,SO,SI,S2,S3

2.數(shù)據(jù)庫(kù)最大容量為250GB,只包含數(shù)據(jù)庫(kù)文件,不包含日志文件

3.Maxconcurrentworkers根據(jù)不同的性能級(jí)別,為60,90,120,200

4.Maxconcurrentlogins根據(jù)不同的性能級(jí)別,為60,90,120,200

5.Maxcurrentsessions根據(jù)不同的性能級(jí)別,為600,900,1200,2400

6.備份自動(dòng)保留14天。Standard服務(wù)層的AzureSQLDatabase可以回滾到

當(dāng)前時(shí)間之前的任意14天內(nèi)的時(shí)間點(diǎn)。

7.AzureSQLDatabase提供自動(dòng)備份,每周一次全備份,每天一次差異備

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

3.4.3高級(jí)(Premium)服務(wù)層

1.Premium服務(wù)層,分為五個(gè)不同的性能級(jí)別,Pl,P2,P4,P6,P11

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

3.P11數(shù)據(jù)庫(kù)最大容量為1TB

4.Maxconcurrentworkers根據(jù)不同的性能級(jí)別,提供不同的性能指標(biāo)

5.Maxconcurrentlogins根據(jù)不同的性能級(jí)別,提供不同的性能指標(biāo)

6.Maxconcurrentsessions根據(jù)不同的性能級(jí)別,提供不同的性能指標(biāo)

7.備份自動(dòng)保留35天。Premium服務(wù)層的AzureSQLDatabase可以回滾到

當(dāng)前時(shí)間之前的任意35天內(nèi)的時(shí)間點(diǎn)。

8.AzureSQLDatabase提供自動(dòng)備份,每周一次全備份,每天一次差異備

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

3.5AzureSQLDatabase相關(guān)知識(shí)介紹

3.5.1DTU

14AzureSQLDatabaseM,有一個(gè)非常重要的性能指標(biāo),叫做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

簡(jiǎn)單理解DTU,就是DTU數(shù)值越大,則該SQLAzureDatabase性能越好。所

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

舉個(gè)例子,我們?cè)?.4節(jié)中可以觀察到,Basic的DTU為5,而StandardS3

的DTU為100o則StandardS3的數(shù)據(jù)庫(kù)性能比Basic的性能高20倍。

以筆者個(gè)人經(jīng)驗(yàn)來(lái)說(shuō),Basic服務(wù)層比較適合于開(kāi)發(fā)測(cè)試,或者并發(fā)性能比

較小的情況。

Standard服務(wù)層,比較適合于一般的業(yè)務(wù)場(chǎng)景。

Premium服務(wù)層,比較適合并發(fā)請(qǐng)求比較大的情況。

以筆者之前的項(xiàng)目經(jīng)驗(yàn)來(lái)看,PremiumP2級(jí)別的SQLAzureDatabase,性能

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

IfyouaremigratinganexistingSQLServerdatabase,youcanuseathird-party

tool,theAzureSQLDatabaseDTUCalculator,togetanestimateoftheperformance

levelandservicetieryourdatabasemightrequireinAzureSQLDatabase.

如果我們是把現(xiàn)有的SQLServerVM數(shù)據(jù)庫(kù)遷移到SQLAzure平臺(tái),我們可

以采用AzureSQLDatabaseDTUCalculator,運(yùn)行AzurePowerShell收集性能計(jì)數(shù)

器,然后上傳到AzureSQLDatabaseDTUCalculator,進(jìn)行計(jì)算和評(píng)估。

3.5.2V12

參考資料:

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

hats-new/

在里,有一個(gè)非常重要的特性叫做

AzureSQLDatabaseSQLDatabaseV12o

我們?cè)趧?chuàng)建新的AzureSQLDatabase數(shù)據(jù)庫(kù)的時(shí)候,會(huì)提示用戶是否需要?jiǎng)?chuàng)

建AzureSQLDatabaseV12版本,相比之前的VII版本,V12版本的優(yōu)勢(shì)有以下

幾點(diǎn):

352.1提高了兼容性

我們?cè)诠?jié)中介紹過(guò)了,AzureSQLDatabase是SQLServer2014的子

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

容以下SQLServer特性:

1.Built-inJSONsupport

2.Windowfunctions,withOVER

3.XMLindexesandselectiveXMLindexes

4.Changetracking

5.SELECT…INTO

6.Full-textsearch

7.ALTERDATABASESCOPEDCONFIGURATION(Transact-SQL)

有關(guān)AzureSQLDatabase不兼容的內(nèi)容,請(qǐng)參考以下鏈接:

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

ct-sql-information/

3.522提高了性能級(jí)別

在V12版本里,AzureSQLDatabase所有級(jí)別(基本Basic,標(biāo)準(zhǔn)Standard,高

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

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

1.支持列存儲(chǔ)索引

2.支持對(duì)已經(jīng)進(jìn)行表分區(qū)的數(shù)據(jù),進(jìn)行truncate操作

TablepartitioningbyrowswithrelatedenhancementstoTRUNCATETABLE.

3.支持動(dòng)態(tài)管理視圖(DynamicManagementViews,DMVs),監(jiān)控和調(diào)試數(shù)據(jù)

庫(kù)性能

更好的支持云SaaS供應(yīng)商

在V12版本里,新增了標(biāo)準(zhǔn)(Standard)級(jí)別的S3,并且提供了動(dòng)態(tài)數(shù)據(jù)庫(kù)池

(ElasticDatabasePools),使用ElasticDatabasePool,你可以

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

2.使用ElasticDatabaseJobs,管理數(shù)據(jù)庫(kù)

增加安全性

在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.

建議用戶升級(jí)AzureSQLDatabaseV12

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

2.對(duì)于V12,微軟會(huì)持續(xù)增加新的特性

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

MicrosoftSQLServer

如何查看當(dāng)前的AzureSQLDatabase版本

1.登陸Azure管理界面

2.查看AzureSQLDatabase的圖標(biāo)

3.如果顯示的是,則當(dāng)前的數(shù)據(jù)庫(kù)版本是V12

SQL

4.如果顯示的是,則當(dāng)前的數(shù)據(jù)庫(kù)版本是老的版本

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

@@version,來(lái)查看當(dāng)前的數(shù)據(jù)庫(kù)版本

6.如果顯示的是12.0.2000.10,則當(dāng)前版本是V12

7.如果顯示的是11.0.9228.18,則當(dāng)前版本是VII

請(qǐng)注意,V12數(shù)據(jù)庫(kù),只能托管在V12服務(wù)器(注意,AzureSQLDatabase中

的服務(wù)器,是虛擬的)上。并且V12服務(wù)器,只能托管V12數(shù)據(jù)庫(kù)。

如果你的AzureSQLDatabase不是V12版本,我們還需要把當(dāng)前數(shù)據(jù)庫(kù)所在

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

有關(guān)升級(jí)的步驟,請(qǐng)參考這里。

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

3.6.1數(shù)據(jù)庫(kù)最大容量

我們?cè)?.4節(jié)中可以觀察到,AzureSQLDatabase限制了數(shù)據(jù)庫(kù)最大容量:

1.Basic服務(wù)層,最大容量為2GB

2.Standard服務(wù)層,最大容量為250G

3.Premium服務(wù)層,Pl-P6數(shù)據(jù)庫(kù)最大容量為500G

4.Premium服務(wù)層,P11數(shù)據(jù)庫(kù)最大容量為1TB

3.6.2減少并發(fā)請(qǐng)求

我們?cè)?.4節(jié)中可以觀察到,AzureSQLDatabase不僅僅限制了數(shù)據(jù)庫(kù)的最

大容量,而且限制了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

當(dāng)我們使用VisualStudioTestAgent或者LoadRunner等壓力測(cè)試軟件,對(duì)

AzureSQLDatabase進(jìn)行壓力測(cè)試的時(shí)候,如果并發(fā)數(shù)小于等于200的時(shí)候,Azure

SQLDatabase是正常提供服務(wù)的。

但是如果我們把并發(fā)用戶數(shù)大于200,在進(jìn)行壓力測(cè)試的時(shí)候]就會(huì)產(chǎn)生

ServerError500錯(cuò)誤。因?yàn)锳zureSQLDatabase對(duì)Maxconcurrent進(jìn)行了限制。

結(jié)合到業(yè)務(wù)場(chǎng)景中,我們要減少業(yè)務(wù)系統(tǒng)對(duì)AzureSQLDatabase的并發(fā)。舉

個(gè)例子,某個(gè)企業(yè)在線培訓(xùn)系統(tǒng)的后臺(tái)數(shù)據(jù)庫(kù)采用AzureSQLDatabase,在選擇

AzureSQLDatabase服務(wù)層的時(shí)候,我們需要考慮以下幾點(diǎn):

1.MaxStorage,只包含數(shù)據(jù)庫(kù)文件,不包含日志文件

2.DTU

3.MaxconcurrentWorkers

4.MaxconcurrentLogins

5.Maxconcurrentsessions

當(dāng)業(yè)務(wù)高峰的時(shí)候,最大并發(fā)請(qǐng)求為400。從上表中我們發(fā)現(xiàn),至少需要選

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

這樣才能滿足數(shù)據(jù)庫(kù)的最大并發(fā)請(qǐng)求。

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

存到AzureRedisCache緩存中),以降低對(duì)于AzureSQLDatabase的并發(fā)請(qǐng)求。

參考資料:

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

ce-limits/

3.6.3數(shù)據(jù)庫(kù)切片

筆者在平時(shí)的項(xiàng)目經(jīng)驗(yàn)中,看過(guò)很多大型的業(yè)務(wù)系統(tǒng),采用單一AzureSQL

Database數(shù)據(jù)庫(kù),遇到各種各樣的問(wèn)題。我們舉一個(gè)設(shè)計(jì)差的案例:

1.A用戶的業(yè)務(wù)系統(tǒng),數(shù)據(jù)庫(kù)采用AzureSQLDatabase,保存全國(guó)用戶的信

息數(shù)據(jù)。

2.該業(yè)務(wù)系統(tǒng),每個(gè)月的數(shù)據(jù)庫(kù)容量增長(zhǎng)40G

3.該業(yè)務(wù)系統(tǒng),最大的并發(fā)請(qǐng)求為1000

4.對(duì)DTU的需求也非常大

針對(duì)上述的現(xiàn)狀,客戶在選擇單一的AzureSQLDatabase數(shù)據(jù)庫(kù),只能選擇

Premium級(jí)別的P6(Maxconcurrent為1600),價(jià)格會(huì)比較貴。

而且考慮到業(yè)務(wù)是逐漸增長(zhǎng)的,在后期還可能將數(shù)據(jù)庫(kù)升級(jí)到最高級(jí)別的

Pllo如果業(yè)務(wù)需求再增加的話,可能P11級(jí)別的數(shù)據(jù)庫(kù)也無(wú)法滿足業(yè)務(wù)壓力。

請(qǐng)大家牢記,單個(gè)節(jié)點(diǎn)向上擴(kuò)展是有限的。

所以我們可以發(fā)現(xiàn),當(dāng)我們把所有的業(yè)務(wù)數(shù)據(jù),都保存到一個(gè)數(shù)據(jù)庫(kù)中,這

個(gè)數(shù)據(jù)庫(kù)就會(huì)產(chǎn)生性能瓶頸。如下圖:

數(shù)據(jù)庫(kù)切片

IDepartmentFirstNameLastNameRegion

ITJackZhangBeijing

MarketingM汰eWangBeijing

ITJaneLiShanghai

SalesPeterZhaoShanghai

Other

■問(wèn)題:?jiǎn)蝹€(gè)數(shù)據(jù)庫(kù)會(huì)產(chǎn)生性能瓶頸

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

partitioning)o有關(guān)數(shù)據(jù)表切片,請(qǐng)參考:

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

partitioning/

數(shù)據(jù)表切片

|Department|FirstNameLastName|TenantID

ITJackZhangBeijing

MarketingMikeWangBeijing

|Department1FirstNameLastName|TenantID|

ITJaneLiShanghai

SalesPeterZhaoShanghai

|Department|FirstName1LastName|TenantID'

ITJaneLiGuangzhou

DepartmentFirstNameLastNameTenantID|

ITCity_N

上圖中,我們把原本保存在同一個(gè)數(shù)據(jù)表中的數(shù)據(jù),按照所在城市,拆分到

不同數(shù)據(jù)庫(kù)的數(shù)據(jù)表中。這樣做的目的,有以下幾點(diǎn):

⑴減少數(shù)據(jù)庫(kù)的最大容量

⑵減少對(duì)同一張表頻繁讀寫(xiě)而產(chǎn)生的性能瓶頸,即降低DTU

(3)減少數(shù)據(jù)庫(kù)并發(fā),即降低Maxconcurrent

另外我們?cè)谶M(jìn)行數(shù)據(jù)庫(kù)切片的時(shí)候,需要注意,上圖中DB_A,DB_B,DB_C,

DB_D這四個(gè)數(shù)據(jù)庫(kù)是分離的。如果我們要引用其他相對(duì)靜態(tài)的數(shù)據(jù),比如后每

市良縣編碼,全國(guó)省份編碼,產(chǎn)品編碼等表,需要考慮將上述三個(gè)表的內(nèi)容,在

四個(gè)AzureSQLDatabase數(shù)據(jù)庫(kù)(DB_A,DB_B,DB_C,DB_D)中進(jìn)行冗余,避免出現(xiàn)

跨數(shù)據(jù)庫(kù)的表查詢。

數(shù)據(jù)庫(kù)表切片后,我們還要考慮,對(duì)于不同的數(shù)據(jù)庫(kù),還要設(shè)置不同的連接

字符串。如下圖:

數(shù)據(jù)庫(kù)切片

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單個(gè)DatabaseServer限制了最大DTU

在之前的內(nèi)容中,我們介紹了AzureSQLDatabase中的服務(wù)器,是虛擬的。

我們可以在同一個(gè)AzureSQLDatabase服務(wù)器下,創(chuàng)建若干多個(gè)Database,這若

干個(gè)數(shù)據(jù)庫(kù)之間是資源隔離的,并不會(huì)產(chǎn)生資源競(jìng)爭(zhēng)。但是請(qǐng)注意:微軟限制了

單個(gè)AzureSQLDatabaseServer的最大DTU,為45000。

也就是說(shuō),我們可以在同一個(gè)AzureSQLDatabaseServer里,創(chuàng)建若干多個(gè)

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

舉個(gè)例子,AzureSQLDatabasePremiumP4,DTU是500。

而單個(gè)AzureSQLDatabaseServer的最大DTU,為45000。

那我們可以在一個(gè)AzureSQLDatabaseServer下,最多創(chuàng)建9

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論