Cloud SQL 讀取集區支援負載平衡,可處理大型讀取工作負載。
什麼是讀取集區?
讀取集區是唯讀副本執行個體的集合,用於分配大型讀取工作負載。這些工作負載可以從主要執行個體重新導向至讀取集區,減輕主要執行個體的負載。
讀取集區中的每個唯讀副本稱為「讀取集區節點」。
您可以透過多種方式調度讀取集區資源:
- 向內或向外擴充:修改讀取集區中的讀取集區節點數量,水平擴充負載平衡能力。每個讀取集區支援 1 到 7 個讀取集區節點。
- 擴充或縮減資源:修改與讀取集區節點相關聯的機器類型,垂直擴充負載平衡容量。定義完成後,設定會統一套用至讀取集區中的每個讀取集區節點。
修改讀取集區節點設定 (例如儲存空間、連線能力或資料庫設定旗標) 時,變更會自動套用至讀取集區中的每個讀取集區節點。
透過單一讀取端點存取讀取集區
讀取集區可透過單一讀取端點存取,且 IP 位址不可變更。透過端點建立的連線會自動重新導向至其中一個讀取集區節點。當您要縮減或擴充讀取集區時,先前連線至這個單一讀取端點的應用程式不需要重新設定,即使您可以在讀取集區中建立新的讀取集區節點或刪除先前的節點,也是如此。
每個讀取集區節點也都有自己的 IP 位址。雖然不建議將其做為存取資料的高效方法,但您可以使用這些 IP 位址,排解個別讀取集區節點的效能問題。
如要進一步瞭解如何擷取讀取集區或讀取集區節點的連線資訊 (IP 位址或連線字串),請參閱「查看讀取集區資訊」。
複製
Cloud SQL 讀取集區複製功能是使用 SQL Server 讀取規模可用性群組實作。
詳情請參閱「關於複製」。
讀取集區自動調度資源
您可以設定讀取集區,自動調整大小,因應應用程式工作負載需求的變化。詳情請參閱「讀取集區自動調度資源」。
讀取集區特性
適用下列特性:
- 讀取集區沒有 Cloud SQL 支援的專屬 API。如要建立、設定或查看讀取集區,請使用 Cloud SQL 執行個體 API。
舉例來說,使用
gcloud CLI建立讀取集區時,請使用gcloud sql instances create指令。同樣地,如要查看讀取集區中設定的讀取集區節點數量,請使用gcloud sql instances describe指令。 - 具有兩個以上節點的讀取集區,適用於服務水準協議 (SLA)。
- 讀取集區的讀取集區節點一律位於使用者指定的相同區域。 Google Cloud 會輪流將讀取集區節點存放在該區域的所有可用區。
- 主要執行個體可以有一或多個讀取集區。
- 下列作業會導致不到一秒的停機時間:
- 向外或向內水平擴展 (新增或移除讀取集區節點)。
- 向上或向下擴充 (變更集區中節點的機器類型)。
- 將現有的可用區唯讀副本轉換為讀取集區。
- 讀取集區會比主要執行個體先進行維護,與唯讀副本類似。與唯讀副本一樣,讀取集區會在主要執行個體的維護期間進行維護。
- 每個讀取集區節點都有與 Cloud SQL 唯讀副本相同的指標。
- 使用
gcloud或 Google Cloud 控制台描述專案詳細資料時,系統會列出讀取集區名稱,但不會列出個別讀取集區節點名稱。
每個主要執行個體的讀取集區節點數量上限
每個主要執行個體最多可指派七個唯讀副本。
從同一個主要執行個體複製的唯讀副本和讀取集區節點,總數不得超過七個。
如何計算每個主要執行個體的讀取集區節點數量上限
概念上,您可以將唯讀副本視為單一讀取集區節點。
您可以將唯讀副本轉換為讀取集區,然後將讀取集區節點數量變更為大於一的數字。
接著,您可以為讀取集區指派自動調度資源功能,讓讀取集區節點數量依據工作負載需求動態調整。
為讀取集區啟用自動調度資源功能時,必須為讀取集區指定有效的節點數量上限。這個數字加上從相同主要執行個體複製的現有唯讀副本數量,或從相同主要執行個體複製的其他讀取集區所屬讀取集區節點數量,不得超過七個。
舉例來說,如果主要執行個體有兩個唯讀副本,以及一個具有兩個讀取集區節點的讀取集區,以及另一個啟用自動調度資源的讀取集區,則第二個讀取集區的讀取集區節點數量上限不得大於三。
詳情請參閱「讀取集區自動調度資源」。
限制
限制如下:
- 讀取集區僅適用於新網路架構上的 Cloud SQL Enterprise Plus 版本執行個體。與讀取集區相關聯的主要執行個體也必須是 Cloud SQL Enterprise Plus 版本執行個體。
- 每個主要執行個體最多可指派 7 個唯讀副本。詳情請參閱「節點數量上限」。
- 進階災難復原與讀取集區不相容。主要執行個體無法同時使用讀取集區和可串接副本。
- 系統會根據資料庫是否健康,從讀取集區節點提供流量,但不會考量該讀取集區節點的複製延遲時間有多長。即使有其他未延遲的讀取集區節點可用,系統仍可能從延遲的讀取集區節點提供流量。如果資料庫程序正常運作且可回應查詢,則資料庫會視為健康,但對提供的資料新舊程度沒有要求。
- 不保證單一邏輯工作階段會連線至讀取集區中的多個讀取集區節點。
- 不支援下列更新類型:
- 雖然讀取集區仍會收到 Cloud SQL 維護更新,但您無法將讀取集區或其相關聯的主要執行個體更新至新的主要資料庫版本。
- 啟動或停止讀取集區的節點。
- 除了唯讀副本不支援的操作之外,讀取集區也不支援下列操作:
- 啟用及停用複製功能
- 客戶自行管理的 Active Directory
- Managed Microsoft AD
- 升級備用資源
- 重新啟動
- 匯入
- 匯出
- 容錯移轉
- 重新加密
- 複製
- 共用 CA 或客戶自行管理的 CA 簽發的 SSL/TLS 憑證,無法與讀取集區搭配使用。
- 讀取集區無法複製到其他執行個體,例如串連副本或其他讀取集區。
- 讀取集區必須直接從主要執行個體複製資料。不能是串聯式副本。
- 建立或擴充讀取集區時,必須等待與讀取集區相關聯的先前建立集區、縮減或水平擴展作業完成。這項限制適用於與同一個主要執行個體相關聯的其他讀取集區。如要擴充與同一個主要執行個體相關聯的多個讀取集區,請先等待與第一個讀取集區相關聯的擴充作業完成,再開始擴充下一個讀取集區。如果發出並行要求,可能會收到下列錯誤:
Operation failed because another operation was already in progress.。 - 只有與主要執行個體位於相同區域的可用區副本,才能轉換為讀取集區。
- 讀取集區節點可能會發生不同程度的複製延遲,導致讀取不一致。如果應用程式需要高讀取一致性,建議您垂直擴充單一唯讀副本,而非使用讀取集區。
- Cloud SQL 會在下列情況下自動修復讀取集區節點:
- 執行個體停機時。
- 複製作業中斷時。
在這些情況下,如果您從主要執行個體建立其他登入資訊,則在重新建立讀取集區節點後,您將無法使用這些登入資訊登入。請確認您用於讀取端點的登入資訊可從主要執行個體取得。
- Microsoft 不支援伺服器物件複製。
在唯讀副本上建立的任何伺服器層級物件,也必須在主要執行個體上建立及管理。系統不會自動複製這些物件。
這項行為適用於下列情況 (僅列舉部分):
- 修復讀取集區。
- 將唯讀副本轉換為讀取集區。
- 無法存取登入等伺服器層級物件。
- 如果您建立的登入資訊存在於原始唯讀副本,但不存在於主要執行個體,則登入資訊不會複製到新的讀取集區節點。
- 將讀取集區轉換為唯讀副本。
- 如果您在讀取集區 (而非主要執行個體) 建立登入資訊,之後停用讀取集區,登入資訊就會消失。
以下列舉幾個未複製的伺服器層級物件:
- 登入。
- 連結的伺服器設定。
- SQL Server 稽核建立的資料庫稽核檔案。
- XEvents 工作階段及其配置設定。
詳情請參閱 Microsoft 說明文件。
- 透明資料加密 (TDE) 憑證在匯入和匯出作業中都會遭到封鎖。
- 您一律必須從主要執行個體匯入及匯出 TDE 憑證。無論副本類型為何,TDE 憑證都會自動複製到讀取集區中的所有唯讀副本。
- 不支援 TDE 匯入和匯出作業。請一律從主要執行個體匯入 TDE 憑證。