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

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

適用于:Azure SQL數(shù)據(jù)庫

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

什么是SQL彈性池

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

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

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

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

重要

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

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

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

備注

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

何時應(yīng)當(dāng)考慮使用SQL數(shù)據(jù)庫彈性池

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

可以加入池的數(shù)據(jù)庫越多,就可以節(jié)省更多的成本??赡苤恍鑳蓚€S3數(shù)據(jù)庫就可以節(jié)省開支,具體取決于應(yīng)用程序使用模式。

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

評估數(shù)據(jù)庫使用模式

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

one-database.png

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

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

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

four-databases.png

twenty-databases.png

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

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

·每一數(shù)據(jù)庫之間的高峰使用量和平均使用量有相當(dāng)大的差異。

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

·eDTU會在多個數(shù)據(jù)庫之間共享。

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

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

如何選擇正確的池大小

池的最佳大小取決于聚合池中所有數(shù)據(jù)庫所需的資源。這涉及到?jīng)Q定以下項(xiàng):

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

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

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

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

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

對于基于DTU的購買模型:

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

對于基于vCore的購買模型:

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

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

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

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

5.將步驟4中的池價格與單一數(shù)據(jù)庫的適當(dāng)計(jì)算大小進(jìn)行比較。

重要

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

將其他SQL數(shù)據(jù)庫功能與彈性池一起使用

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

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

有關(guān)用于操作多個數(shù)據(jù)庫的其他數(shù)據(jù)庫工具的詳細(xì)信息,請參閱使用Azure SQL數(shù)據(jù)庫進(jìn)行擴(kuò)展。

彈性池中的數(shù)據(jù)庫的業(yè)務(wù)連續(xù)性選項(xiàng)

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

·時間點(diǎn)還原

時間點(diǎn)還原使用自動的數(shù)據(jù)庫備份將池中的數(shù)據(jù)庫恢復(fù)到特定的時間點(diǎn)。請參閱時間點(diǎn)還原

·異地還原

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

·活動異地復(fù)制

對于具有異地還原無法提供的更強(qiáng)烈的恢復(fù)要求的應(yīng)用程序,請配置活動異地復(fù)制或自動故障轉(zhuǎn)移組。

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

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

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

2.選擇“+添加”以打開“選擇SQL部署選項(xiàng)”頁。通過選擇"數(shù)據(jù)庫"磁貼上的"顯示詳細(xì)信息",可以查看有關(guān)彈性池的其他信息。

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

create-elastic-pool.png

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

備注

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

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

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

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

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

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

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

客戶案例研究

SnelStart

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

Umbraco

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

Daxko/CSI

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

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