本頁面說明如何管理讀取用途備用機器。這些作業包括停用和啟用複製作業、推送備用資源、設定並行複製作業,以及檢查複製作業狀態。
如要進一步瞭解複製功能的運作方式,請參閱「Cloud SQL 中的複製功能」。
本頁面適用於 Cloud SQL 執行個體的副本。如要將 Cloud SQL 執行個體設為外部訂閱者的發布者,請參閱「設定外部備用資源」。
停用複製功能
備用資源預設會在啟用複製的情況下啟動,但是您也可以將其停用以進行其他工作,例如進行偵錯作業或分析執行個體的狀態。準備就緒後,請明確重新啟用複製功能。停用或重新啟用複製功能不會重新啟動備用資源執行個體。
停用複製作業不會停止備用資源執行個體;它會變成只讀執行個體,不再從主要執行個體複製資料。系統會繼續向您收取執行個體的費用。在停用的備用資源上,您可以重新啟用複製功能、刪除備用資源,或將備用資源推送至獨立的執行個體。
如果您長時間停用複寫功能,磁碟儲存空間需求可能會增加。舉例來說,執行個體可能會累積交易記錄,以便您重新啟用複製作業時繼續複製。為避免增加磁碟儲存空間需求,建議您升級副本或建立主要執行個體的複本,而非長時間停用複製功能。
停用複製功能:
控制台
-
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
- 按一下備用資源執行個體的名稱來選取備用資源執行個體。
- 按一下按鈕列中的「Disable replication」。
- 按一下 [確定]。
gcloud
gcloud sql instances patch REPLICA_NAME \ --no-enable-database-replication
REST v1
如要在指令列提示下執行這個 cURL 指令,您可以使用 gcloud auth print-access-token 指令取得存取憑證。您也可以使用 Instances:patch 頁面上的 APIs Explorer 傳送 REST API 要求。
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- replica-name:備援執行個體的名稱
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
JSON 要求主體:
{ "settings": { "databaseReplicationEnabled": "False" } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
REST v1beta4
如要在指令列提示下執行這個 cURL 指令,您可以使用 gcloud auth print-access-token 指令取得存取憑證。您也可以使用 Instances:patch 頁面上的 APIs Explorer 傳送 REST API 要求。
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- replica-name:備援執行個體的名稱
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
JSON 要求主體:
{ "settings": { "databaseReplicationEnabled": "False" } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
啟用複製功能
如果備用資源已許久未複製,則需要更長的時間才能趕上主要執行個體。在這種情況下,請刪除副本並建立新的副本。
啟用複製功能:
控制台
-
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
- 按一下備用資源執行個體的名稱來選取備用資源執行個體。
- 按一下「啟用複製功能」。
- 按一下 [確定]。
gcloud
gcloud sql instances patch REPLICA_NAME \ --enable-database-replication
REST v1
如要在指令列提示下執行這個 cURL 指令,您可以使用 gcloud auth print-access-token 指令取得存取憑證。您也可以使用 Instances:patch 頁面上的 APIs Explorer 傳送 REST API 要求。
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- replica-name:備援執行個體的名稱
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
JSON 要求主體:
{ "settings": { "databaseReplicationEnabled": "True" } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
REST v1beta4
如要在指令列提示下執行這個 cURL 指令,您可以使用 gcloud auth print-access-token 指令取得存取憑證。您也可以使用 Instances:patch 頁面上的 APIs Explorer 傳送 REST API 要求。
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- replica-name:備援執行個體的名稱
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
JSON 要求主體:
{ "settings": { "databaseReplicationEnabled": "True" } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
推送備用資源
將唯讀備用資源升級,執行個體就會停止複製資料,並轉換為具備讀寫能力的獨立 Cloud SQL 主要執行個體。
升級後,系統會自動為唯讀備用資源設定備份,但不會自動將其設為高可用性 (HA) 執行個體。您可以將備用資源升級後啟用高可用性,就像對任何非備用資源執行個體一樣。設定高可用性的唯讀備用資源,與主要執行個體相同。進一步瞭解如何設定高可用性的執行個體。
推送唯讀備用資源前,如果主要執行個體仍可使用且提供服務給用戶端,請執行下列操作:
- 停止對主要執行個體的所有寫入作業。
- 檢查備用資源的複製狀態。其中一個方法是使用 SQL Server Management Studio (SSMS) 中的 Always On 可用性群組資訊主頁。
- 確認備用資源是否正在複製,然後檢查複製延遲時間,例如
seconds_behind_master
指標所回報的時間。
否則,新升級的執行個體可能會遺漏已提交至主要執行個體的部分交易。
如要將備用資源升級為獨立執行個體,請按照下列步驟操作:
控制台
-
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
- 按一下備用資源執行個體的名稱來選取備用資源執行個體。
- 按一下「推送備用資源」。
- 按一下 [確定]。
gcloud
gcloud sql instances promote-replica REPLICA_NAME
REST v1
如要在指令列提示下執行這個 cURL 指令,您可以使用 gcloud auth print-access-token 指令取得存取憑證。您也可以使用 Instances:promoteReplica 頁面上的 APIs Explorer 傳送 REST API 要求。
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- replica-name:備援執行個體的名稱
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name/promoteReplica
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
REST v1beta4
如要在指令列提示下執行這個 cURL 指令,您可以使用 gcloud auth print-access-token 指令取得存取憑證。您也可以使用 Instances:promoteReplica 頁面上的 APIs Explorer 傳送 REST API 要求。
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- replica-name:備援執行個體的名稱
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name/promoteReplica
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
確認已正確設定升級的執行個體。特別是,視需要考慮將執行個體設為高可用性。
檢查複製狀態
目前,您應使用 T-SQL 查詢或 SSMS 來監控複製狀態。如要瞭解詳情,請參考下列資源:疑難排解
問題 | 疑難排解 |
---|---|
唯讀副本在建立時未開始複製作業。 | 記錄檔中可能會有更具體的錯誤。請在 Cloud Logging 中檢查記錄,找出實際錯誤。 |
無法建立唯讀副本 - invalidFlagValue 錯誤。 | 要求中有一項標記無效。這個旗標可以是您明確提供的旗標,也可以是設為預設值的旗標。 首先,請確認 如果 |
無法建立唯讀副本 - 發生不明錯誤。 | 記錄檔中可能會有更具體的錯誤。請在 Cloud Logging 中檢查記錄,找出實際錯誤。 如果錯誤為 |
磁碟已滿。 | 在建立備援執行個體時,主要執行個體的磁碟空間可能會用盡。 編輯主要執行個體,將其升級為較大的磁碟大小。 |
副本執行個體使用太多記憶體。 | 備份資源會使用暫存記憶體快取常見的讀取作業,因此可能會比主要執行個體使用更多記憶體。 重新啟動複本執行個體,以便回收暫時性記憶體空間。 |
複製作業已停止。 | 已達儲存空間上限,且未啟用自動增加儲存空間功能。
編輯執行個體,啟用 |
複製延遲持續偏高。 | 寫入負載過高,複本無法處理。當備援機制上的 SQL 執行緒無法跟上 I/O 執行緒時,就會發生複製延遲。某些類型的查詢或工作負載,可能會導致特定結構定義的複製延遲時間暫時或永久性偏高。複製延遲的常見原因包括:
可能的解決方法包括:
|
備援機制建立作業因逾時而失敗。 | 主要執行個體上長時間執行未提交的交易,可能會導致建立唯讀備用資源失敗。 停止所有執行中的查詢後,重新建立複本。 |
後續步驟
- 瞭解如何建立唯讀副本。
- 進一步瞭解複製的需求與最佳做法。