彈性池有助于在 Azure SQL 數據庫中管理和縮放多個數據庫

來源: Microsoft Azure
作者:Microsoft Azure
時間:2020-12-29
16909
Azure SQL數據庫彈性池是一種簡單且經濟高效的解決方案,用于管理和縮放具有不斷變化且不可預測的使用需求的多個數據庫。

適用于:Azure SQL數據庫

Azure SQL數據庫彈性池是一種簡單且經濟高效的解決方案,用于管理和縮放具有不斷變化且不可預測的使用需求的多個數據庫。同一彈性池中的所有數據庫位于單個服務器上,并以固定價格共享固定數量的資源。Azure SQL數據庫中的彈性池可使SaaS開發(fā)人員將一組數據庫的價格性能優(yōu)化在規(guī)定的預算內,同時為每個數據庫提供性能彈性。

什么是SQL彈性池

SaaS開發(fā)人員構建在由多個數據庫組成的大規(guī)模數據層上的應用程序。常見的應用程序模式是為每位客戶設置單一數據庫。但不同的客戶通常有不同的和不可預測的使用模式,并且很難預測每個數據庫用戶的資源需求。傳統上,有兩個選擇:

·基于高峰使用情況和付款情況過度預配資源或

·采用低配節(jié)省成本,但這樣會犧牲高峰期的性能和客戶滿意度。

彈性池通過確保數據庫獲取需要時所需的性能資源來解決這個問題。它們提供了一個可預測預算內的簡單的資源分配機制。若要深入了解如何通過彈性池設計SaaS應用程序的模式,請參閱具有Azure SQL數據庫的多租戶SaaS應用程序的設計模式。

重要

彈性池沒有按照數據庫收取的費用。對于池存在的每個小時,需要支付最高的eDTU或vCore費用,無論使用量是多少,也不管池處于活動狀態(tài)的時間是否小于一小時。

彈性池可讓開發(fā)人員為由多個數據庫共享的池購買資源,以適應單一數據庫使用時段不可預測的情況??梢愿鶕贒TU的購買模型或基于vCore的購買模型為池配置資源。池的資源要求取決于其數據庫的聚合使用量。池可用的資源數量由開發(fā)者預算控制。開發(fā)者只需將數據庫添加到池,根據需要為數據庫設置最小和最大資源(最小和最大DTU數,或者最小或最大vCore數,具體取決于所選的資源模型),然后基于預算設置池的資源。開發(fā)人員可以使用池順暢地擴大其服務,以漸增的規(guī)模從精簡的新創(chuàng)公司發(fā)展到成熟的企業(yè)。

在池中,單獨的數據庫都被賦予了在固定參數內自動縮放的靈活性。高負荷下的數據庫可能會消耗更多的資源以滿足需求。低負荷下的數據庫消耗較少的資源,沒有任何負荷的數據庫不會消耗任何資源。設置整個池(而非單個數據庫)的資源簡化了管理任務。此外,必須具有該池的可預測預算??稍诠收蠒r間最短的情況下向現有池添加其他資源。同樣,隨時可以從現有池中刪除不再需要的額外資源。并且可以從池中添加或刪除數據庫。如果可以預測到數據庫的資源利用率不足,則將其移出。

備注

將數據庫移入或移出彈性池時,除了在操作結束時刪除數據庫連接時有短暫的停機時間(大約為幾秒)外,幾乎沒有停機時間。

何時應當考慮使用SQL數據庫彈性池

池很適合具有特定使用模式的大量數據庫。對于給定的數據庫,此模式的特征是低平均使用量與相對不頻繁的使用高峰。相反,具有持久性中-高利用率的多個數據庫不應放在同一彈性池中。

可以加入池的數據庫越多,就可以節(jié)省更多的成本。可能只需兩個S3數據庫就可以節(jié)省開支,具體取決于應用程序使用模式。

以下各部分有助于了解如何評估特定的數據庫集合是否會因使用池而受益。這些示例使用標準池,但同樣的原理也適用于基本和高級池。

評估數據庫使用模式

下圖顯示了一個數據庫示例,該數據庫有大量的閑置時間,但也會定期出現活動高峰。這是適合池的使用模式:

one-database.png

該圖顯示了從12:00到1:00的1小時內的DTU使用情況,其中每個數據點的粒度為1分鐘。在12:10,DB1使用的DTU個數達到峰值(90個DTU),但其整體平均使用量低于五個DTU。在單一數據庫中運行此工作負荷需要S3計算大小,但在低活動期間,這可使大多數資源處于未使用狀態(tài)。

池可讓這些未使用的DTU跨多個數據庫共享,因此減少了所需的DTU數和總體成本。

以上一個示例為基礎,假設有其他數據庫具有與DB1類似的使用模式。在接下來的兩個圖中,4個數據庫和20個數據庫的使用量分層放在同一圖形中,以演示在使用基于DTU的購買模型時數據庫使用量在整個時間段上非重疊的性質:

four-databases.png

twenty-databases.png

在上圖中,黑線表示跨所有20個數據庫的聚合DTU使用量。其中表明聚合DTU使用量永遠不會超過100個DTU,并指出20個數據庫可以在此時間段內共享100個eDTU。相比于將每個數據庫放入單一數據庫的S3計算大小,這會導致DTU減少20倍和價格降低13倍。

由于以下原因,此示例很理想:

·每一數據庫之間的高峰使用量和平均使用量有相當大的差異。

·每個數據庫的高峰使用量在不同時間點發(fā)生。

·eDTU會在多個數據庫之間共享。

在DTU購買模型中,池的價格是池Edtu的一項功能。盡管池的eDTU單位價格比單一數據庫的DTU單位價格多1.5倍,但池eDTU可由多個數據庫共享,因而所需的eDTU總數更少。定價方面和eDTU共享的這些差異是池可以提供成本節(jié)省可能性的基礎。

在vCore購買模型中,彈性池的vCore單位價格與單一數據庫的vCore單位價格相同。

如何選擇正確的池大小

池的最佳大小取決于聚合池中所有數據庫所需的資源。這涉及到決定以下項:

池中所有數據庫使用的最大計算資源。計算資源按Edtu或Vcore索引,具體取決于你選擇的購買模型。

池中所有數據庫使用的最大存儲字節(jié)。

對于每個購買模型中的服務層和資源限制,請參閱基于DTU的購買模型或基于vCore的購買模型。

以下步驟可幫助你評估池是否比單一數據庫更具成本效益:

1.通過如下方式來估算池所需的eDTU或vCore:

對于基于DTU的購買模型:

MAX(<數據庫的總數目X每一數據庫的平均DTU使用率>,<并發(fā)峰值數據庫數目X每一數據庫的峰值DTU使用率>)

對于基于vCore的購買模型:

MAX(<數據庫的總數目X每一數據庫的平均vCore使用率>,<并發(fā)峰值數據庫數目X每一數據庫的峰值vCore使用率>)

2.通過添加池中所有數據庫所需的數據大小來估算池所需的總存儲空間。對于DTU購買模型,確定提供此存儲量的eDTU池大小。

3.對于基于DTU的購買模型,請取步驟1和步驟2中eDTU估算值中較大的那個。對于基于vCore的購買模型,請取步驟1中的vCore估算值。

4.請參閱SQL數據庫定價頁,找到大于步驟3中估算值的最小池大小。

5.將步驟4中的池價格與單一數據庫的適當計算大小進行比較。

重要

如果池中數據庫的數量接近支持的最大值,請確保在密集彈性池中考慮資源管理。

將其他SQL數據庫功能與彈性池一起使用

彈性作業(yè)和彈性池

借助池,可以通過在elastic jobs。彈性作業(yè)可消除與大量數據庫有關的大部分問題。

有關用于操作多個數據庫的其他數據庫工具的詳細信息,請參閱使用Azure SQL數據庫進行擴展。

彈性池中的數據庫的業(yè)務連續(xù)性選項

共用數據庫通常支持和可用于單一數據庫相同的業(yè)務連續(xù)性功能。

·時間點還原

時間點還原使用自動的數據庫備份將池中的數據庫恢復到特定的時間點。請參閱時間點還原

·異地還原

當數據庫因其所在的區(qū)域發(fā)生事故而不可用時,異地還原會提供默認的恢復選項。請參閱還原Azure SQL數據庫或故障轉移到輔助數據庫

·活動異地復制

對于具有異地還原無法提供的更強烈的恢復要求的應用程序,請配置活動異地復制或自動故障轉移組。

使用Azure門戶創(chuàng)建新的SQL數據庫彈性池

在Azure門戶中可以通過兩種方法創(chuàng)建彈性池。

1.請參閱Azure門戶,創(chuàng)建彈性池。搜索并選擇"AZURE SQL"。

2.選擇“+添加”以打開“選擇SQL部署選項”頁。通過選擇"數據庫"磁貼上的"顯示詳細信息",可以查看有關彈性池的其他信息。

3.在"數據庫"磁貼上的"資源類型"下拉列表中選擇"彈性池",然后選擇"創(chuàng)建":

create-elastic-pool.png

4.或者可以創(chuàng)建一個彈性池:導航到現有服務器,然后單擊“+新建池”,直接在該服務器中創(chuàng)建一個池。

備注

可以在服務器上創(chuàng)建多個池,但不能將數據庫從不同的服務器添加到同一個池中。

該池的服務層級決定了池中彈性數據庫的可用功能,以及每個數據庫可用的最大資源量。有關詳細信息,請參閱DTU模型中彈性池的資源限制。有關彈性池的基于vCore的資源限制,請參閱基于vCore的資源限制-彈性池。

若要配置池的資源和定價,請單擊“配置池”。然后選擇服務層級,將數據庫添加到池,并配置池及其數據庫的資源限制。

完成配置池后,可以單擊“應用”,將池命名,然后單擊“確定”以創(chuàng)建池。

監(jiān)視彈性池及其數據庫

在Azure門戶中,可以監(jiān)視彈性池和該池中的數據庫的利用率。還可以對彈性池進行一組更改,并同時提交所有更改。這些更改包括添加或刪除數據庫、更改彈性池設置或更改數據庫設置。

你可以使用內置性能監(jiān)視和警報工具與性能等級結合使用。此外,SQL數據庫可發(fā)出指標和資源日志,以方便進行監(jiān)視。

客戶案例研究

SnelStart

SnelStart在Azure SQL數據庫中使用彈性池,以每月快速擴展其業(yè)務服務,每個Azure SQL數據庫1000。

Umbraco

Umbraco對Azure SQL數據庫使用彈性池,以便在云中為數千個租戶快速預配和縮放服務。

Daxko/CSI

Daxko/CSI使用彈性池和Azure SQL數據庫來加速其開發(fā)周期和增強其客戶服務和性能。

立即登錄,閱讀全文
版權說明:
本文內容來自于Microsoft Azure,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家