彈性集區可協助您管理及調整 Azure SQL Database 中的多個資料庫

適用於:Azure SQL Database

Azure SQL Database 彈性集區是簡單、符合成本效益的解決方案,可用來管理及調整使用需求變化不定且無法預測的多個資料庫。 彈性集區中的資料庫位於單一伺服器上,並以固定價格共用固定數量的資源。 SQL Database 中的彈性集區可讓軟體即服務 (SaaS) 開發人員將一組資料庫的價格效能最佳化在規定的預算內,同時為每個資料庫提供效能彈性。

什麼是 SQL 彈性集區?

SaaS 開發人員會在由多個資料庫組成的大規模資料層上建置應用程式。 典型的應用程式模式是為每個客戶佈建單一資料庫。 但是不同的客戶經常會有不同且無法預測的使用模式,而且很難預測每個資料庫使用者的資源需求。 您通常有兩個選項:

  • 根據尖峰使用量額外佈建資源並額外付款。
  • 少量佈建來節省成本,但會降低尖峰期間的效能和客戶滿意度。

彈性集區可藉由確保資料庫會在需要時取得它們所需的效能資源,來解決此問題。 它們會在可預測的預算內提供簡單的資源配置機制。 若要深入了解使用彈性集區的 SaaS 應用程式設計模式,請參閱 採用 SQL Database 的多租用戶 SaaS 應用程式設計模式

重要

針對彈性集區的每一個資料庫,皆不會另外收費。 對於集區存在的每個小時,您均需要支付最高的 eDTU 或 vCore,不論使用量多高或使用集區的時間是否少於一小時。

彈性集區可讓您為由多個資料庫共用的集區購買資源,以容納個別資料庫無法預期的使用量期間。 您可以根據以 DTU 為基礎的購買模型以虛擬核心為基礎的購買模型,為集區設定資源。 資料庫的彙總使用量決定集區的資源需求。

集區可用的資源數量是由您的預算控制。 您只需:

  • 將資料庫新增至集區。
  • 選擇性設定資料庫的最小和最大資源。 視您選擇的資源模型而定,這些資源會是最大和最小 DTU 或最小或最大虛擬核心。
  • 根據您的預算設定集區的資源。

您可以使用集區順暢擴大服務,以漸增的規模從精簡的新創公司到成熟的企業。

在集區內,會給予個別資料庫彈性以使用設定參數內的資源。 負載量大時,資料庫可以取用更多的資源以滿足需求。 負載較輕的資料庫取用較少的資源,而完全無負載的資料庫不會取用任何資源。 針對整個集區佈建資源,而不是針對單一資料庫佈建資源,可簡化管理工作。 此外,您還可以有可預測的集區預算。

您可以將更多資源新增至具有最短停機時間的現有集區。 如果不再需要額外資源,則隨時可以從現有集區中移除。 您也可以從集區中新增或移除資料庫。 如果可以預測資料庫使用少量資源,則您可將其移除。

注意

將資料庫移入或移出彈性集區時,除了在作業結束的短暫停機之外(大約數秒),不會有停機時間。

何時該考慮使用 SQL Database 彈性集區?

集區非常適合大量具有特定使用模式的資料庫。 此模式的特徵是給予的資料庫的低平均使用量與不頻繁的使用量高峰。 反之,具有持續性中高使用量的多個資料庫不應置於相同的彈性集區。

可新增至集區的資料庫愈多,可省下的費用就愈多。 根據您的應用程式使用量模式,若僅使用兩個 S3 資料庫,則成本可能會降低。

下列各節會協助您了解如何評估您特定的資料庫集合是否可以因為位於集區而受益。 這些範例使用標準集區,但相同的準則適用於其他服務層級中的彈性集區。

評估資料庫使用量模式

下圖顯示資料庫的範例,該資料庫花費太多時間閒置,但也定期因活動達到尖峰。 此使用量模式適用於集區。

Chart that shows a single database suitable for a pool.

此圖表說明從 12:00 到 1:00 的一小時 DTU 使用量,其中每個資料點皆有一分鐘的細微性。 在 12:10,DB1 達到 90 DTU 尖峰,但整體平均使用量卻少於五個 DTU。 需要 S3 計算大小,才能在單一資料庫中執行此工作負載,但此大小會在低活動的期間保留大多數的資源未使用。

集區可讓這些未使用的 DTU 在多個資料庫中共用。 集區可減少所需的 DTU 和整體成本。

以上一個範例為建置基礎,假設有其他資料庫具有與 DB1 類似的使用量模式。 在下列的兩個圖形中,4 個資料庫和 20 個資料庫的使用量分層放在相同的圖形,說明使用以 DTU 為基礎的購買模型經過一段時間其使用量非重疊的本質:

Chart that shows four databases with a utilization pattern suitable for a pool.

Chart that shows 20 databases with a utilization pattern suitable for a pool.

在上圖中,黑色線條說明所有 20 個資料庫中的彙總 DTU 使用量。 此線條顯示彙總的 DTU 使用量永遠不會超過 100 個 DTU,並指出 20 個資料庫可以在這段期間共用 100 個 eDTU。 相較於將每個資料庫放在單一資料庫的 S3 計算大小,結果會是 DTU 減少 20 倍且價格降低 13 倍。

這個範例很理想,因為:

  • 每一資料庫之間的尖峰使用量和平均使用量有相當大的差異。
  • 每個資料庫的尖峰使用量會在不同時間點發生。
  • eDTU 會在許多資料庫之間共用。

在 DTU 購買模型中,集區的價格取決於集區 eDTU 的函式。 雖然集區的 eDTU 單價較單一資料庫的 DTU 單價高 1.5 倍,但是集區 eDTU 可由多個資料庫共用,而需要的 eDTU 總數會比較少。 價格方面和 eDTU 共用的這些差異是集區可以提供價格節約潛力的基礎。

在虛擬核心購買模型中,彈性集區的虛擬核心單價與單一資料庫的虛擬核心單價相同。

如何選擇正確的集區大小?

集區的最佳大小取決於集區中所有資料庫所需的彙總資源。 您必須決定︰

  • 集區中所有資料庫所使用的計算資源上限。 依據您選擇的購買模型,計算資源將依 eDTU 或虛擬核心編制索引。
  • 集區中所有資料庫使用的最大儲存體位元組。

如需每個購買模型中的服務層和資源限制,請參閱以 DTU 為基礎的購買模型以虛擬核心為基礎的購買模型

注意

超大規模彈性集區目前為預覽版。

下列步驟可協助您估計集區是否較單一資料庫更符合成本效益:

  1. 估計集區所需的 eDTU 或虛擬核心:

    1. 針對以 DTU 為基礎的購買模型:
      1. MAX(<DB 總數 × 每個 DB 平均 DTU 使用量>、<同時處於尖峰的 DB 數目 × 每個 DB 尖峰 DTP 使用量>)
    2. 針對以虛擬核心為基礎的購買模型:
      1. MAX(<DB 總數 × 每個 DB 平均虛擬核心使用量>、<同時處於尖峰的 DB 數目 × 每個 DB 尖峰虛擬核心使用量>)
  2. 加總集區中所有資料庫所需的資料大小,以估計集區所需的總儲存空間。 針對 DTU 購買模型,決定提供此儲存空間量的 eDTU 集區大小。

  3. 針對以 DTU 為基礎的購買模型,採用步驟 1 和步驟 2 中較大的 eDTU 估計值。

    1. 針對以虛擬核心為基礎的購買模型,採用步驟 1 中的虛擬核心估計值。
  4. 瀏覽 SQL Database 定價頁面

    1. 尋找大於步驟 3 估計的最小集區的規模。
  5. 將步驟 4 的集區價格與單一資料庫中使用適當計算大小相比較。

重要

如果集區中的資料庫數目接近支援的最大值,請務必考慮使用密集彈性集區中的資料管理

每個資料庫的屬性

可選擇性設定每個資料庫的屬性,以修改彈性集區中的資源耗用量模式。 如需詳細資訊,請參閱 DTU虛擬核心彈性集區的資源限制文件。

搭配彈性集區使用其他的 SQL Database 功能

您可以搭配彈性集區使用其他的 SQL Database 功能

彈性作業和彈性集區

使用集區,只要在彈性作業中執行指令碼,就能簡化管理工作。 彈性作業會消除與大量資料庫相關聯的冗長工作。

如需可供使用多個資料庫的其他資料庫工具詳細資訊,請參閱使用 SQL Database 向上調整

彈性集區之中的資料庫所適用的業務持續性選項

集區資料庫通常會支援單一資料庫可用的相同商務持續性功能

  • 還原時間點:還原時間點會使用自動資料庫備份,將集區中的資料庫復原到特定的時間點。 請參閱時間點還原
  • 異地還原:異地還原會在資料庫因裝載區域中的事件而無法使用時,提供預設復原選項。 請參閱異地還原
  • 作用中異地複寫:針對較異地還原需要更主動復原的應用程式,設定主動式中異地複寫容錯移轉群組

如需上述策略的詳細資訊,請參閱 Azure SQL 資料庫災害復原指引

使用 Azure 入口網站建立新的 SQL Database 彈性集區

您有兩種方式可以在 Azure 入口網站中建立彈性集區:

  • 建立彈性集區並選取現有或新的伺服器。
  • 從現有的伺服器建立彈性集區。

若要建立彈性集區並選取現有或新的伺服器:

  1. 移至 Azure 入口網站 以建立彈性集區。 搜尋並選取 [Azure SQL]。

  2. 選取 [建立] 以開啟 [選取 SQL 部署選項] 窗格。 若要檢視彈性集區的詳細資訊,在 [資料庫] 磚中選取 [顯示詳細資料]。

  3. 在 [資料庫] 磚的 [資源類型] 下拉式清單中,選取 [彈性集區]。 然後選取建立

    Screenshot that shows creating an elastic pool.

若要從現有的伺服器建立彈性集區:

  • 移至現有的伺服器並選取 [新增集區],直接在伺服器中建立集區。

注意

您可以在伺服器上建立多個集區,但無法將來自不同伺服器的資料庫新增到相同的集區。

集區的服務層級決定了集區中彈性資料庫可用的功能,以及每個資料庫可用的資源數目上限。 如需詳細資訊,請參閱 DTU 模型中彈性集區的資源限制。 如需彈性集區以虛擬核心為基礎的資源限制,請參閱以虛擬核心為基礎的資源限制 - 彈性集區

若要設定集區的資源和定價,請選取 [設定集區]。 然後選取服務層級、將資料庫新增至集區,以及為集區及其資料庫設定資源限制。

設定集區之後,請選取 [套用]、命名集區,然後選取 [確定] 以建立集區。

監視彈性集區及其資料庫

在 Azure 入口網站中,您可以監視彈性集區與集區內資料庫的使用率。 也可以對彈性集區進行一些變更,並且一次提交所有的變更。 這些變更包括新增或移除資料庫、變更您的彈性集區設定,或變更您的資料庫設定。

您可以使用內建的效能監視警示工具,並搭配使用效能分級。 SQL Database 也可以發出計量和資源記錄,以供更輕鬆地進行監視。

客戶案例研究

`- SnelStart:SnelStart 搭配使用彈性集區和 SQL Database,以每月 1,000 個 新 SQL 資料庫快速擴充其商業服務。

  • Umbraco:Umbraco 搭配使用彈性集區和 SQL Database,為雲端中數千個租用戶快速佈建和調整服務。
  • Daxko/CSI:Daxko/CSI 搭配使用彈性集區和 SQL Database,加速開發週期及提升客戶服務和效能。