複製功能可建立 Cloud SQL 執行個體的副本,並將工作卸載至副本。
簡介
使用複製功能的主要原因,是在不降低效能的情況下,擴大運用資料庫中的資料。
其他原因包括在不同區域之間遷移資料。
此外,如果原始執行個體損毀,副本可能會升級為獨立執行個體 (在這種情況下,現有副本不會將該執行個體視為主要執行個體)。
在 Cloud SQL 執行個體中,複製的執行個體稱為「主要執行個體」,副本則稱為「唯讀副本」。主要執行個體和唯讀副本都位於 Cloud SQL。
建立第一個副本時:
- 主要執行個體會設為主要執行個體上所有資料庫的完整復原模式。
系統會建立臨時磁碟,並建立完整備份,然後儲存在臨時磁碟上。副本建立程序完成後,系統會刪除臨時磁碟。
如果在建立第一個副本的時間範圍內,使用者切換至簡易復原模式,則副本建立作業會失敗。
建立副本後,新增至主要執行個體的資料庫適用下列規定:
- 資料庫會自動新增至可用性群組,並使用自動植入功能填入副本。
- 每次建立副本時,系統都會對主要執行個體上的資料庫執行完整備份 (完整復原模式)。建立副本後建立的登入資訊和伺服器物件不會自動複製。如要將新的登入資訊轉移至現有副本,請使用
sp_help_revlogin預存程序。
Cloud SQL 支援下列類型的副本:
使用連接器強制執行,即可強制只使用 Cloud SQL Auth Proxy 或 Cloud SQL 語言連接器連線至 Cloud SQL 執行個體。強制執行連接器後,Cloud SQL 會拒絕直接連至資料庫。如果執行個體已啟用連接器強制執行功能,就無法建立唯讀副本。同樣地,如果執行個體有唯讀副本,就無法啟用連接器強制執行功能。
Cloud SQL 不支援在兩個外部伺服器之間進行複製。
唯讀備用資源
您使用唯讀副本,卸載 Cloud SQL 執行個體的工作。唯讀副本是主要執行個體的精確副本。主要執行個體上的資料和其他變更會以非同步方式複製,並套用至唯讀副本。
唯讀副本僅供讀取,無法寫入。唯讀副本會處理查詢、讀取要求和數據分析流量,進而減輕主要執行個體的負載。每個主要執行個體最多可有 8 個唯讀副本。
您可以使用副本的連線名稱和 IP 位址,直接連線至副本。如果使用私人 IP 位址連線至副本,則不必為副本建立額外的虛擬私有雲私人連線,因為連線會沿用自主執行個體。
如要瞭解如何建立唯讀副本,請參閱「 建立唯讀副本」。如要瞭解如何管理唯讀副本,請參閱「 管理唯讀副本」。
最佳做法是,在主要執行個體上使用高可用性時,將唯讀副本放在與主要執行個體不同的可用區。這樣一來,即使主要執行個體所在的可用區發生中斷,唯讀副本仍可繼續運作。詳情請參閱「高可用性總覽」。
選取合適的機型
唯讀副本的 vCPU 數量和記憶體容量可以與主要執行個體不同。請監控執行個體的指標 (例如 CPU 和記憶體用量),確保副本執行個體的大小符合工作負載需求,尤其是副本執行個體小於主要執行個體時。如果副本執行個體過小,就更容易發生效能不佳的情況,例如頻繁出現記憶體不足 (OOM) 事件。
唯讀副本的儲存空間容量
調整主要執行個體的大小時,系統會視需要調整所有唯讀副本的大小,確保其儲存空間容量至少與更新後的主要執行個體相同。
跨區域唯讀副本
跨區域複製功能可讓您在與主要執行個體不同的區域中建立唯讀副本。建立跨區域唯讀副本的方式與建立區域內副本相同。
如果是 SQL Server 唯讀副本,系統會假設副本與主要副本位於相同的虛擬網路,或使用公開 IP 進行通訊。跨區域副本:
- 在更靠近應用程式區域的位置提供副本,提高讀取效能。
- 提供額外的災難復原功能,防範區域性故障。
- 將資料從一個區域遷移至另一個區域。
如要進一步瞭解跨區域副本,請參閱「將副本升級為區域遷移或災難復原」。
串聯式唯讀副本
串聯式複製功能可讓您在相同或不同區域的其他唯讀副本下,建立唯讀副本。串聯副本是使用分散式可用性群組實作。以下是串連副本的部分用途:
- 災難復原:您可以使用唯讀副本的串聯階層,模擬主要執行個體及其唯讀副本的拓撲。服務中斷期間,如果將唯讀副本升級為主要執行個體,這個新主要執行個體下的唯讀副本會繼續複製,並可供使用。舊的主要執行個體可用時,會成為新主要執行個體的次要執行個體,您可以在舊的主要執行個體復原後,透過切換作業切換回舊的主要執行個體。如要進一步瞭解如何使用串聯式副本進行災難復原,請參閱「關於災難復原」。
- 提升效能:將複製工作卸載至多個唯讀副本,減輕主要執行個體的負擔。
- 擴充讀取作業:您可以建立更多副本,分擔讀取負載。
- 降低成本:您可以使用單一串聯副本,在其他區域進行跨區域複製,降低網路費用。
術語
- 可串接副本:跨區域唯讀副本,可用於 SQL Server 適用的 Cloud SQL 進階災難復原 (DR) 中的切換和副本容錯移轉作業。
- 串連副本:可擁有專屬副本的唯讀副本。
- 層級:您可以在串聯副本階層中建立副本層級。舉例來說,如果您在執行個體中新增四個副本,這四個副本會位於同一層級。
- 同層級執行個體:從相同主要執行個體複製的多個副本。同層級節點位於副本階層結構中的同一層級。一個副本最多可以有八個同層級副本。
- 葉副本:沒有任何副本的唯讀副本。在多層級複製階層中,分葉副本是最後一個層級。
- 升級:將階層中任何層級的副本轉換為主要執行個體的動作。升級後,副本的串聯副本階層會保留。
設定串連副本
串聯式副本可讓您在任何現有副本中新增唯讀副本。最多可以新增四個層級的副本,包括主要執行個體。如果升級串聯式副本階層頂端的副本,該副本會成為主要執行個體,其串聯式副本則會繼續複製。
如要進一步瞭解如何設定分散式可用性群組,請參閱「設定 Always On 分散式可用性群組」。
限制
- 您無法刪除含有副本的副本。如要刪除副本,必須從葉副本開始,依階層向上刪除。
- 不支援循環區域依附關係。您無法從某個區域複製到另一個區域,然後再複製回原始區域。如要將串連副本的副本放在與主要執行個體相同的區域,串連副本也必須位於相同區域。
- 建立可串連副本時,必須選擇與主要執行個體不同的區域。接著,您可以在與可串聯副本相同的區域中,建立串聯副本。
複製用途
以下是各種類型複製作業的用途。
| 名稱 | 主要 | 備用資源 | 優點及用途 | 更多資訊 |
|---|---|---|---|---|
| 唯讀副本 | Cloud SQL 執行個體 | Cloud SQL 執行個體 |
|
|
| 跨區域唯讀副本 | Cloud SQL 執行個體 | Cloud SQL 執行個體 |
|
|
| SQL Server 複製 | Cloud SQL 外部的執行個體 | SQL Server 適用的 Cloud SQL 執行個體 |
|
帳單
- 唯讀副本的費率與標準 Cloud SQL 執行個體相同。資料複製作業不會產生費用。
- 跨區域唯讀副本的定價,與在該區域建立新的 Cloud SQL 執行個體相同。請參閱 Cloud SQL 執行個體定價,並選取適當的區域。除了執行個體的一般費用外,跨區域副本還會產生跨區域資料移轉費用,用於從主要執行個體傳送至副本執行個體的複製記錄,詳情請參閱「網路輸出定價」。
Cloud SQL 唯讀副本快速參考指南
| 主題 | 討論 |
|---|---|
| 備份 | 您無法設定副本的備份。 |
| 核心和記憶體 | 唯讀副本的核心數量和記憶體容量,可以與主要執行個體不同。 |
| 刪除主要執行個體 | 您必須先將所有唯讀副本升級為獨立執行個體,或刪除唯讀副本,才能刪除主要執行個體。 |
| 刪除副本 | 刪除副本不會影響主要執行個體的狀態。 |
| 刪除複製的資料庫 | 您可以使用 Google Cloud 控制台或 gcloud 指令刪除複製的 SQL Server 資料庫,刪除作業會自動套用至副本。您無法使用 T-SQL 指令刪除複製的 SQL Server 資料庫。 |
| 容錯移轉 | 只有在副本為可串接副本時,主要執行個體才能容錯移轉至副本。服務中斷期間,唯讀副本無法以任何方式進行容錯移轉。 |
| 負載平衡 | Cloud SQL 不會在副本之間進行負載平衡。 |
| 維護期間 | 唯讀副本與主要執行個體共用維護期間。副本會沿用主要執行個體的維護設定,包括維護期間、重新排程和拒絕維護期。維護期間,Cloud SQL 會先更新所有唯讀副本,再更新主要執行個體。 |
| 多個唯讀副本 | 單一主要執行個體最多可建立 8 個唯讀副本。 |
| 私人 IP | 如果使用私人 IP 位址連線至副本,則不必為副本建立額外的虛擬私有雲私人連線,因為副本會沿用主要執行個體的連線。 |
| 正在還原主要執行個體 | 如果副本存在,您就無法還原副本的主要執行個體。從備份還原執行個體或執行時間點復原作業前,您必須 升級或刪除所有副本。 |
| 設定 | 主要執行個體的設定會套用至副本,包括可存取執行個體的使用者資料變更。 |
| 停止副本 | 您無法stop副本。您可以restart或delete,但無法像主要執行個體一樣停止。 |
| 升級副本 | 唯讀副本隨時可能發生中斷性升級。 |
| 使用者資料表 | 您無法變更副本。所有使用者變更都必須在主要執行個體上完成。 |
限制
這項功能僅適用於下列 SQL Server 適用的 Cloud SQL 版本:
- SQL Server 2017 Enterprise
- SQL Server 2019 Enterprise
- SQL Server 2022 Enterprise
Cloud SQL 不支援在相同區域建立進階災難復原 (DR) 副本。如要在與來源相同的區域中建立唯讀副本,則只能將唯讀副本升級為新的主要執行個體。
串接副本僅適用於 Cloud SQL Enterprise Plus 版本。
您無法透過 Google Cloud 控制台建立串聯式副本。
Cloud SQL 建立副本時,如果主要執行個體上有任何登入資訊,Cloud SQL 會將這些資訊複製到新副本。發生這種情況後,如果您在主要執行個體中新增登入資訊,Cloud SQL 不會自動將這些資訊傳播至現有副本。不過,您可以使用
sp_help_revlogin預存程序,手動將新登入資訊轉移至現有副本。您必須使用 T-SQL 和/或 SQL Server Management Studio 監控副本。
刪除資料庫前,請務必關閉資料庫連線。
建立副本時,主要執行個體不得包含任何單一使用者模式的資料庫。否則無法建立副本。
如要建立副本,主要執行個體必須符合下列需求條件:
- 不得包含單一使用者模式的資料庫。
- 不得包含處於
OFFLINE狀態的資料庫。 - 不得包含唯讀模式的資料庫。
- 不得包含已啟用自動關閉功能的資料庫。
- 不得做為發布資料庫。
- 不得啟用推送交易式複製功能。
- 不得為資料庫快照。
如果主要執行個體不符合必要條件,副本建立作業就會失敗,並傳回下列錯誤訊息:
如果執行個體已設定外部複製,就無法設定複製功能。
後續步驟
- 瞭解如何建立唯讀副本。
- 瞭解如何設定高可用性的執行個體。
- 瞭解進階災難復原 (DR)