




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股東協議模板
- DB32/T 4559-2023發酵混合飼料生產技術規范
- 2025年拓撲材料在電子學與量子計算的應用與潛在優勢研究報告
- 2025年軟件即服務 (SaaS) 在企業人力資源管理中的應用項目可行性研究報告
- DB32/T 4538-2023平原河網區入湖河口生態攔截技術指南
- 皮膚科護士的多學科合作職責
- 學校交響樂團新成員入隊儀式
- 2025年輸送機保護裝置項目評估報告
- 中小學教師心理健康自我管理策略心得體會
- 醫療保險政策培訓工作計劃
- GB 252-2015普通柴油
- 生產交接班記錄表
- 山西洗煤廠安全管理人員機考題庫大全-上(單選、多選題)
- 硅酸鈣板、含鋯型硅酸鋁纖維棉、高鋁型硅酸鋁纖維棉技術規格
- 小學二年級下冊道德與法治《小水滴的訴說》教學教案
- GB∕T 15762-2020 蒸壓加氣混凝土板
- 護士分層級培訓與管理課件
- 廣州版五年級英語下冊期末知識點復習ppt課件
- 照明電氣安裝工程施工方案及工藝方法要求
- 計算方法全書課件完整版ppt整本書電子教案最全教學教程ppt課件
- 公路工程施工安全技術規范-JTG-F90-2015
評論
0/150
提交評論