Cloud SQL 讀取集區支援大型讀取工作負載的負載平衡。
什麼是讀取集區?
讀取集區是唯讀備用資源執行個體的集合,用於分配大量讀取工作負載。這些工作負載可以從主要執行個體重新導向至讀取集區,以減輕主要執行個體的負擔。
讀取集區中的每個唯讀副本都稱為「讀取集區節點」。
您可以透過多種方式擴充讀取集區:
- 擴大或縮減:修改讀取集區中的讀取集區節點數量,水平擴充負載平衡容量。每個讀取集區支援 1 到 7 個讀取集區節點。
- 向上或向下擴充:修改與讀取集區節點相關聯的機器類型,即可垂直擴充負載平衡容量。定義完成後,系統會將設定統一套用至讀取集區中的每個讀取集區節點。
修改讀取集區節點設定 (例如儲存空間、連線或資料庫設定標記) 時,系統會自動將變更內容套用至讀取集區中的每個讀取集區節點。
透過單一讀取端點存取讀取集區
讀取集區可透過單一讀取端點存取,且具有不可變更的 IP 位址。透過端點建立的連線會自動重新導向至其中一個讀取集區節點。當您想在讀取集區中擴充或縮減節點時,先前連線至這個單一讀取端點的應用程式不需要重新設定,即使您可以在讀取集區中建立新的讀取集區節點或刪除先前的節點也一樣。
每個讀取集區節點也有自己的 IP 位址。雖然不建議使用這些 IP 位址存取資料,但可用於排解個別讀取集區節點的效能問題。
如要進一步瞭解如何擷取讀取集區或讀取集區節點的連線資訊 (IP 位址或連線字串),請參閱「查看讀取集區資訊」。
複製
Cloud SQL 唯讀集區複製功能是使用 SQL Server 讀取擴充可用性群組實作。
詳情請參閱「關於複製功能」。
讀取集區特徵
須符合下列特徵:
- 如果讀取集區包含兩個以上的節點,則適用服務水準協議 (SLA)。
- 讀取集區的讀取集區節點一律位於同一區域,如使用者所指定。 Google Cloud 會在區域中的所有可用區之間交替讀取集區節點常駐位置。
- 主要執行個體可以有一或多個讀取集區。
- 下列作業會導致停機時間不到一秒:
- 擴大或縮減規模 (新增或移除讀取集區節點)。
- 向上或向下擴充 (變更集區中節點的機型)。
- 將現有的區域唯讀副本轉換為讀取集區。
- 讀取集區的維護作業會在主要執行個體之前執行,與唯讀副本類似。與唯讀副本相同,讀取集區的維護作業會在主要執行個體的維護期間執行。
- 每個讀取集區節點都有與 Cloud SQL 唯讀備用資源相同的可用指標。
- 使用
gcloud或 Google Cloud 控制台說明專案詳細資料時,系統會列出讀取集區名稱,但不會列出個別讀取集區節點名稱。
限制
限制如下:
- 讀取集區僅適用於新網路架構上的 Cloud SQL Enterprise Plus 版本執行個體。與讀取集區相關聯的主要執行個體也必須是 Cloud SQL Enterprise Plus 版本執行個體。
- 每個主要執行個體最多可建立七個唯讀備用資源。這個值可以包含唯讀備用資源的任何組合數量,以及讀取集區執行個體下的讀取集區節點計數。舉例來說,主要執行個體可能會有兩個唯讀備用資源,以及五個唯讀備用資源 (讀取集區節點) 的獨立讀取集區。
- SQL Server 執行個體不支援讀取集區自動調度資源。
- 進階災難復原與讀取集區不相容。主要執行個體無法同時使用讀取集區和可串聯副本。
- 系統會根據資料庫是否正常運作,從讀取集區節點提供流量,但不會考量該讀取集區節點的複製延遲時間。即使有其他未延遲的讀取集區節點可用,系統仍可能從延遲的讀取集區節點提供流量。如果資料庫程序正常運作且可回應查詢,系統就會將資料庫視為正常運作,但不會要求提供的資料必須是最新狀態。
- 無法保證單一邏輯工作階段會連線至讀取集區中的多個讀取集區節點。工作階段中的後續要求可能會連線至複製位置較低的讀取集區節點,這會導致資料庫狀態回溯。
- 系統不支援下列類型的更新:
- 雖然讀取集區仍會收到 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 憑證。