微軟Azure云的平臺即服務解決方案(PaaS)主要優點之一就是簡化了部署的擴展實現。這里的擴展既包括縱向擴展,也包括橫向擴展。它支持你分別調整當前的報價層次(還包括相應的性能目標和相關輔助功能特性)和運行實例的并發數量。雖然SQL Database支持兩種擴展方式,但是橫向擴容一般更具有挑戰性,這里討論的是與其他Azure服務相比。在本文中,我們將簡單介紹Azure SQL Database實現縱向擴展和橫向擴展的方法。
我們先從縱向擴展功能開始介紹。因為涉及到在報價層次和性能層次的切換,我們首先需要識別用來區分層次的標準。為了簡化差異,微軟引入了一種新的度量方式,稱為數據庫吞吐量單元(簡稱DTU),它的意圖是代表一般的Azure SQL Database性能級別,會結合考慮處理器功率,可用內存量和I/O吞吐量。每個報價版本(以及其對應的性能級別)都會分配有一定數量的DTU。每種版本都有指定最大數據庫容量限制,大小從2GB到500GB。此外,值得注意的是更高報價版本還提供額外的便利,支持異步復制已提交事務到4個Azure區,包括選擇保留用于讀訪問的二級在線復制(這對報表和數據分析應用非常有用)。另一個區別項目是恢復能力。雖然所有的SQL Database都會定期自動備份(每周做全備份,每天做差異備份,每5分鐘做增量備份),但是相應的恢復時間點能達到多久遠就取決于報價級別了。
Azure非常有效地提供給SQL數據庫以下三種報價層次(取代了web層和業務層),每種結構都有不同的性能效果和彈性變化功能:
基礎版。該版本在預覽門戶中指定代號為“B”(Basic首字母),主要面向小規模的單用戶數據庫,通常對于開發和測試用戶比較理想。性能指標限制在5DTU,空間不超過2GB,窗口恢復時點限制是7天。標準版。它是生產環境數據庫最常見的選擇,支持工作組和web應用。它可以擴展到250GB大小,支持標準Geo復制,窗口恢復時點可以達到14天。它還提供了三個性能級別,在預覽門戶中的代號是S0、S1和S2(S意為Standard首字母),分別提供10DTU、20DTU和50DTU的性能級別。增強版。主要針對高并發需求的企業級應用。空間可以擴展到500GB,支持活動Geo復制和35天的時點恢復。它的性能級別分為P1、P2和P3(預覽門戶可以看到,P為Premium首字母),分別對應100DTU、200DTU和800DTU性能級別。報價層次和性能級別可以在Azure管理門戶和預覽門戶中更改(盡管用戶在切換期間可能會感受到短暫的連接斷開,但你可以在應用程序中處理一下讓體驗變得更友好)。這個過程可以利用“Set-AzureSqlDatabase PowerShell”命令行帶上“-ServiceObjective 和-Edition”參數(代表性能級別和報價級別)自動完成。在收縮調整時,要記得確保數據庫在新目標報價層的限制環境下不受影響(尤其是注意最大容量和復制范圍)。
除了縱向擴展(可以理解為受報價層次和性能級別影響的專項限制),你還可以選擇橫向擴展,把目標表分隔放到多個數據庫實例中(也可以稱為分區)。這種做法也被稱為分片,如果不通過Azure平臺的便利操作實現是非常有技術挑戰的,但是在Azure平臺中就簡單多了,不需要定制設計和開發,頻繁修改現有數據庫結構和數據庫結合的應用。通常有以下幾種實現分片的方法:
聯邦。它定義了一種聯合結構。其中包括聯合分發主鍵,它又包含分區中使用的數據類型值的差異(比如客戶ID和產品ID)。該主鍵決定了具體數據記錄應該被分配到哪一個分區。聯邦主鍵是聯邦表主鍵的組成部分,聯邦表拆分為獨立數據庫,它們構成了聯邦。聯邦元數據存儲在聯邦根數據庫中,它作為應用訪問聯邦數據的邏輯終點(順便說一下,一個根數據庫就可以包含多個聯邦的元數據)。實際數據的定位非常高效,從應用角度看是不受連帶影響的。要注意,聯邦成員個體數據庫也包含非聯邦表(也可以稱為引用),它們不是聯邦的組成部分。這些表通常存儲聯邦內容需要的其它數據。我們應該認識到基于Azure的聯邦取消了傳統的報價層次(Web層和業務層),這一點很重要。這樣我們可以把另外兩種橫向擴展解決方案用于其它新部署的情況。定制分片。與聯邦形式類似,它需要考慮設計和開發工作量,以便為數據分區、分發和連接路由實施定制的方法。你可以在微軟Azure博客找到關于本話題的更多信息。彈性擴展。目前還在預覽階段,它利用模板納入.NET庫實現數據庫管理基礎設施,幫助你簡化了數據分區流程(橫向縱向兩種都有效)和請求路由。實施方面可以通過PowerShell腳本和Azure自動服務自動完成。綁定數據的應用可以利用彈性擴展API訪問分片數據庫。該解決方案還包含有遷移工具,支持你從現有聯邦部署遷移過去。原文鏈接:http://www.searchdatabase.com.cn/showcontent_87149.htm