疑難排解

請查看下列頁面,確認您的問題是否已有解答:

本頁面主題包括:

備份與還原

問題 疑難排解
您無法查看目前作業的狀態。 作業完成後, Google Cloud 控制台只會回報成功或失敗。不適合用來顯示警告或其他最新資訊。

執行 gcloud sql operations list 指令,列出指定 Cloud SQL 執行個體的所有作業。

您想找出是誰發出隨選備份作業。 使用者介面不會顯示啟動作業的使用者。

查看記錄,並依文字篩選,找出使用者。您可能需要使用稽核記錄來處理私人資訊。相關記錄檔包括:

  • cloudsql.googleapis.com/sqlagent.out
  • cloudsql.googleapis.com/sqlserver.err
  • 如果已啟用 Cloud 稽核記錄,且您具備查看記錄的必要權限,或許也能使用 cloudaudit.googleapis.com/activity。
執行個體刪除後,就無法備份。

如果刪除執行個體時未建立最終資料備份,就無法復原資料。不過,如果您還原執行個體,Cloud SQL 也會還原備份。如要進一步瞭解如何復原已刪除的執行個體,請參閱「刪除執行個體後保留備份」。

如果您已執行匯出作業,請建立新的執行個體,然後執行匯入作業來重新建立資料庫。匯出的資料會寫入 Cloud Storage,匯入的資料則會從 Cloud Storage 讀取。

自動備份作業卡住數小時,無法取消。 視資料庫大小而定,備份作業可能需要較長時間。

如果確實需要取消作業,可以要求 客戶服務團隊force restart執行個體。

如果 SQL dump 檔案中有一或多位參照的使用者不存在,還原作業就會失敗。 還原 SQL 傾印前,如果資料庫使用者擁有傾印資料庫中的物件,或已取得傾印資料庫中的物件存取權,這類使用者都必須存在於目標資料庫中。否則還原作業無法以原始擁有權或權限重新建立物件。

還原 SQL 轉儲前,請先 建立資料庫使用者。

您想將自動備份的保留天數從 7 天增加到 30 天以上。 您可以 設定要保留的自動備份數量,但不得少於預設數量 (七個)。系統會根據設定的保留值,定期刪除自動備份。很抱歉,這表示目前顯示的備份是唯一可還原的自動備份。

如要無限期保留備份,可以建立隨選備份,因為這類備份不會像自動備份一樣遭到刪除。隨選備份會無限期保留。也就是說,除非您刪除備份或備份所屬的執行個體,否則備份會一直存在。由於這類備份不會自動刪除,因此可能會影響計費。

自動備份失敗,且您未收到電子郵件通知。 如要讓 Cloud SQL 通知您備份狀態,請設定記錄式警告。
如果執行個體的使用者定義標籤超過 50 個,自動或隨選備份就會失敗。 Cloud SQL 執行備份時,會將執行個體的使用者定義標籤複製到基礎儲存空間快照,並附加內部系統標籤。如果標籤總數超過 64 個標籤的快照限制,備份就會失敗。

如要解決這個問題,請移除多餘的標籤,讓執行個體的使用者定義標籤數量不超過 50 個。詳情請參閱「標籤執行個體」。

您無法使用 Transact-SQL RESTORE 指令或 SQL Server Management Studio (SSMS) 還原執行個體。 Cloud SQL 不支援透過 SSMS 還原執行個體。如要還原執行個體,請執行 gcloud sql import 指令。
無法查看記錄備份歷史記錄。

記錄備份記錄只會在 msdb 資料庫備份記錄資料表中保留 60 天。

如果選擇在刪除執行個體時建立最終備份,則無法刪除執行個體。 刪除執行個體時,您必須確認是否要在刪除前建立最終備份。如果您使用 final-backup 執行個體設定啟用最終備份,則刪除執行個體時所做的選擇,必須與您為執行個體啟用最終備份時設定的最終備份執行個體設定相符。如要緩解這個問題,請採取下列任一做法:
  • 將最終備份值設為與執行個體現有的備份設定相符。
  • 刪除執行個體時,請將最終備份欄位留空。如果將這個欄位留空,Cloud SQL 會採用執行個體設定中的最終備份設定,建立最終備份並定義保留期限。
如要查看執行個體的最終備份執行個體設定,請參閱「查看執行個體資訊」。
使用最終備份設定成功建立主要執行個體後,無法建立副本執行個體。 如果建立新執行個體時啟用了最終備份執行個體設定,則必須更新最終備份組織政策,將備份設定僅套用至主要執行個體。副本執行個體不支援最終備份。
詳情請參閱「Cloud SQL 組織政策」。

複製

問題 疑難排解
複製失敗,並顯示 constraints/sql.restrictAuthorizedNetworks 錯誤。 Authorized Networks 設定會封鎖複製作業。Authorized Networks 是在 Google Cloud 控制台的「Connectivity」(連線) 區段中設定公開 IP 位址,基於安全性考量,系統不允許複製。

如果可以,請從 Cloud SQL 執行個體中移除所有 Authorized Networks 項目。否則,請建立副本,不含任何 Authorized Networks 項目。

錯誤訊息:Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Help Token: [help-token-id].

您嘗試使用 Google Cloud 控制台複製具有私人 IP 位址的執行個體,但未指定要使用的分配 IP 範圍,且來源執行個體並非以指定範圍建立。因此,系統會在隨機範圍內建立複製的執行個體。

使用 gcloud 複製執行個體,並為
--allocated-ip-range-name 參數提供值。詳情請參閱「複製具有私人 IP 的執行個體」。

連結

問題 疑難排解
Aborted connection。 可能的問題如下:
  • 網路不穩定。
  • 對 TCP 保持運作指令無回應 (用戶端或伺服器無回應,可能超載)
  • 資料庫引擎連線生命週期已超過,伺服器會結束連線。

應用程式必須能容許網路故障,並遵循最佳做法,例如連線集區和重試。大多數連線集區程式都會盡可能擷取這些錯誤。否則,應用程式必須重試或正常失敗。

如要重試連線,建議採用下列方法:

  1. 指數輪詢。每次重試時,以指數方式增加間隔時間。
  2. 此外,也請加入隨機輪詢。

結合這些方法有助於減少調節。

使用私人 IP 或虛擬私有雲網路對接時,連線逾時或發生一般連線錯誤。

連線嘗試失敗,出現一般逾時或連線錯誤,但沒有診斷詳細資料。

疑難排解步驟:

  1. 在來源用戶端和資料庫通訊埠 (MySQL 為 3306、PostgreSQL 為 5432、SQL Server 為 1433) 的 Cloud SQL 私人 IP 之間,執行網路智慧中心連線能力測試。這項測試會追蹤封包路徑,並判斷流量是否因防火牆規則、缺少路徑或對接設定錯誤而遭到捨棄。
  2. 確認虛擬私有雲網路對等互連連線狀態為「ACTIVE」。
  3. 確認虛擬私有雲網路的防火牆規則允許資料庫通訊埠的輸入流量。
  4. 如果使用非 RFC 1918 位址範圍,請確認您已更新對接設定,匯出採用公開 IP 的子網路路徑。

如需更多詳細資料和 gcloud 診斷指令,請參閱「診斷虛擬私有雲網路和私人 IP 連線失敗」。

錯誤訊息:Login failed for user "" 您可能會在 Microsoft Entra ID 驗證期間遇到這項登入錯誤。如要解決這個問題,請確認這位 Microsoft Entra ID 使用者有 SQL Server 登入資訊。
私人 IP 執行個體的網路連線問題 設定整合時,可能會遇到下列問題:
  • 建立 Microsoft Entra ID 登入資訊的操作速度緩慢
  • 無法建立 Microsoft Entra ID 登入
  • 無法使用 Microsoft Entra ID 驗證連線至執行個體

如要進一步瞭解如何解決這些問題,請參閱「排解 Microsoft Entra ID 整合問題」。

建立執行個體

問題 疑難排解
錯誤訊息:The zone or region does not have sufficient resources to handle the request at the moment.

在提出執行個體建立要求時,所選可用區沒有足夠的容量,無法提供要求的資源或 VM 類型。在提出要求時,該特定區域位置可能同時有大量作業需求。

如要解決這個問題,請在其他可用區中重新建立執行個體,或在其他時間點,於發生錯誤的可用區中重新建立執行個體。

錯誤訊息:Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider。 分配的 IP 範圍內沒有其他可用位址。可能的情境包括:
  • 私人服務連線的分配 IP 範圍大小小於 /24。
  • 私人服務連線的分配 IP 範圍太小,無法容納 Cloud SQL 執行個體數量。
  • 如果在多個區域建立執行個體,則分配的 IP 範圍大小需求會較大。查看分配的範圍大小

如要解決這個問題,您可以擴大現有的分配 IP 範圍,或為私人服務連線分配額外的 IP 範圍。詳情請參閱「分配 IP 位址範圍」。

如果您在建立 Cloud SQL 執行個體時使用了 --allocated-ip-range-name 旗標,則只能擴充指定的 IP 範圍。

分配新範圍時,請注意分配範圍不得與任何現有分配範圍重疊。

建立新的 IP 範圍後,請使用下列指令更新虛擬私有雲對接:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

如要擴充現有分配,請務必只增加分配範圍,不要減少。舉例來說,如果原始分配為 10.0.10.0/24,則新的分配至少應為 10.0.10.0/23。

一般來說,如果從 /24 分配開始,每項條件 (額外的執行個體類型群組、額外的區域) 將 /mask 減少 1 是不錯的經驗法則。舉例來說,如果嘗試在同一個分配項目上建立這兩種執行個體類型群組,只要從 /24 變更為 /23 即可。

擴充現有 IP 範圍後,請使用下列指令更新虛擬私有雲對接:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
錯誤訊息:Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]。 再次嘗試建立 Cloud SQL 執行個體。
錯誤訊息:HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED.

使用下列指令啟用 Service Networking API,然後再次嘗試建立 Cloud SQL 執行個體。

gcloud services enable servicenetworking.googleapis.com \
--project=PROJECT_ID
    
錯誤訊息:Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID。 使用私人 IP 位址建立執行個體時,系統會使用 Service Networking API 即時建立服務帳戶。如果您最近才啟用 Service Networking API,系統可能不會建立服務帳戶,且執行個體建立作業會失敗。在這種情況下,您必須等待服務帳戶在整個系統中傳播,或手動新增服務帳戶並授予必要權限。
錯誤訊息:More than 3 subject alternative names are not allowed. 您嘗試使用自訂 SAN,將三個以上的 DNS 名稱新增至 Cloud SQL 執行個體的伺服器憑證。執行個體最多只能新增三個 DNS 名稱。
錯誤訊息:Subject alternative names %s is too long. The maximum length is 253 characters. 如要將 DNS 名稱新增至 Cloud SQL 執行個體的伺服器憑證,請確認名稱不超過 253 個字元。
錯誤訊息:Subject alternative name %s is invalid.

確認要新增至 Cloud SQL 執行個體伺服器憑證的 DNS 名稱符合下列條件:

  • 不含萬用字元。
  • 不含結尾點。
  • 符合 RFC 1034 規格。

使用 Data API 執行 SQL

問題 疑難排解
The instance doesn't allow using ExecuteSql to access this instance. You can allow it by patching the instance with {settings: { dataApiAccess: "ALLOW_DATA_API" }} Data API 預設為停用。 在執行個體上啟用 Data API 即可解決問題。
Secret cannot be provided when auto_iam_authn is true. 將 auto_iam_authn 設為 true,即表示您使用 IAM 向資料庫進行驗證。這種驗證方式不需要密碼或密鑰。請參閱「 使用 IAM 進行驗證」。
ExecuteSql API is not supported for instances in certain Assured Workloads control packages folders yet. SQL 指令碼及其執行回應可能會在用戶端與目標執行個體位置之間的中繼位置傳輸。因此,某些 Assured Workloads 專案中的執行個體要求會失敗。如果專案未註冊 Assured Workloads,但手動強制執行 constraints/sql.restrictNoncompliantResourceCreation,請要求組織管理員移除限制,新建立的執行個體就不會發生問題。
The server principal USERNAME is not able to access the database DATABASE_NAME under the current security context. 使用者不是資料庫成員。以 sqlserver 使用者身分連線至資料庫,並新增使用者,然後將資料庫的 db_owner 角色授予新使用者。例如:
  EXEC sp_adduser 'user';
  EXEC sp_addrolemember 'db_owner', 'user'
  
The database is currently unavailable. 執行個體可能正在重新啟動、維護中,或處於健康狀態不佳。請檢查執行個體狀態,稍後再試。

匯出

問題 疑難排解
HTTP Error 409: Operation failed because another operation was already in progress. 執行個體已有待處理的作業。系統一次只能執行一項作業。請待目前的作業完成後再提出要求。
HTTP Error 403: The service account does not have the required permissions for the bucket. 請確認值區存在,且 Cloud SQL 執行個體 (執行匯出作業) 的服務帳戶具備 Storage Object Creator 角色 (roles/storage.objectCreator),可將匯出內容載入值區。請參閱「Cloud Storage 的 IAM 角色」。
您希望自動匯出。 Cloud SQL 不提供自動匯出的方法。

您可以使用 Cloud Scheduler、Pub/Sub 和 Cloud Run functions 等 Google Cloud產品,建構自己的自動匯出系統,類似這篇關於 自動備份的文章。

旗標

問題 疑難排解
您想修改 Cloud SQL 執行個體的時區。

如要瞭解如何更新執行個體的時區,請參閱「執行個體設定」。

在 SQL Server 適用的 Cloud SQL 中,您可以使用 AT TIME ZONE 函式轉換時間等。如要進一步瞭解這個函式,請參閱「 AT TIME ZONE (Transact-SQL)」。

高可用性

問題 疑難排解
找不到手動容錯移轉的指標。 只有自動容錯移轉會計入指標。
Cloud SQL 執行個體資源 (CPU 和 RAM) 的使用率接近 100%,導致高可用性執行個體停止運作。 執行個體機器大小過小,無法負荷負載。

編輯執行個體,升級至更大的機器,取得更多 CPU 和記憶體。

匯入

問題 疑難排解
HTTP Error 409: Operation failed because another operation was already in progress。 執行個體已有待處理的作業。系統一次只能執行一項作業。請待目前的作業完成後再提出要求。
匯入作業時間過長。 有效連線數量過多可能會干擾匯入作業。

關閉未使用的作業。檢查 Cloud SQL 執行個體的 CPU 和記憶體用量,確保有足夠的可用資源。如要確保有最多資源可供匯入作業使用,最好的方法是在開始作業前重新啟動執行個體。

重新啟動:

  • 關閉所有連線。
  • 結束可能耗用資源的所有工作。
如果 dump 檔案中有一或多位參照的使用者不存在,匯入作業就會失敗。 匯入 dump 檔案前,如果資料庫使用者擁有 dump 資料庫中的物件,或已取得 dump 資料庫中的物件存取權,這類使用者都必須存在於目標資料庫中。否則匯入作業將無法以原始擁有權或權限重新建立物件。

匯入前,請先 建立資料庫使用者。

LSN 不符 交易記錄備份的匯入順序不正確,或交易記錄鏈結中斷。
按照備份組資料表中的順序,匯入交易記錄備份。
StopAt 太早 這項錯誤表示交易記錄檔中的第一筆記錄晚於 StopAt 時間戳記。舉例來說,如果交易記錄檔中的第一筆記錄是 2023-09-01T12:00:00,而 StopAt 欄位的值是 2023-09-01T11:00:00,Cloud SQL 就會傳回這項錯誤。
請務必使用正確的 StopAt 時間戳記和交易記錄檔。

連結的伺服器

問題 疑難排解
Msg 7411, Level 16, State 1, Line 25

Server 'LINKED_SERVER_NAME' is not configured for DATA ACCESS.
DataAccess 選項已停用。執行下列指令,啟用資料存取權:
EXEC sp_serveroption
    @server='LINKED_SERVER_NAME',
    @optname='data access',
    @optvalue='TRUE'

將 LINKED_SERVER_NAME 替換為連結伺服器的名稱。

Access to the remote server is denied because no login-mapping exists. (Microsoft SQL Server, Error: 7416) 如果在建立加密連線時遇到這個問題,請嘗試其他方式,在存取連結伺服器時提供使用者 ID。如要進行這項操作,請執行下列指令:
EXEC master.dbo.sp_addlinkedserver
   @server = N'LINKED_SERVER_NAME',
   @srvproduct= N'',
   @provider= N'MSOLEDBSQL',
   @datasrc= N'TARGET_SERVER_ID',
   @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID'

請替換下列內容:

  • 將 LINKED_SERVER_NAME 替換為連結伺服器的名稱。
  • TARGET_SERVER_ID 替換為目標伺服器的名稱,或目標伺服器的 IP 位址和通訊埠編號。
  • USER_ID,並提供使用者登入資訊。
非預期行為 如果遇到非預期的行為,請確認您使用的是支援的供應商。詳情請參閱 Microsoft 說明文件。

記錄

問題 疑難排解
找不到稽核記錄。 只有在下列情況下,系統才會寫入資料存取記錄:作業是由已驗證使用者驅動的 API 呼叫,用於建立、修改或讀取使用者建立的資料,或作業存取資源的設定檔或中繼資料。
記錄中找不到作業資訊。 您想進一步瞭解某項作業。

例如,某位使用者遭到刪除,但您找不到刪除者。 記錄檔會顯示作業已啟動,但不會提供任何其他資訊。您必須啟用稽核記錄,系統才會記錄這類詳細資訊和個人識別資訊 (PII)。

系統會從 SQL Server 適用的 Cloud SQL 執行個體的 error.log 記錄中篩除部分記錄。 篩選後的記錄包括沒有時間戳記的 AD 記錄,以及 Login failed for user 'x'. Reason: Token-based server access validation failed with an infrastructure error. Login lacks connect endpoint permission. [CLIENT: 127.0.0.1]。這些記錄可能會造成混淆,因此已篩除。
記錄檔難以閱讀。 您想以 JSON 或文字格式查看記錄。您可以使用 gcloud logging read 指令和 Linux 後置處理指令下載記錄。

如要下載 JSON 格式的記錄,請按照下列步驟操作:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d" \
> downloaded-log.json
    

如要下載 TEXT 格式的記錄:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
--order=asc
> downloaded-log.txt
   

管理執行個體

問題 疑難排解
你想找出哪些項目占用儲存空間。 舉例來說,您發現資料庫只使用了 3 GB,但儲存空間顯示已使用 14 GB。資料庫資料表未使用的空間通常會用於交易記錄、暫存檔案或其他記錄。

您可以在 Metrics Explorer 中使用 cloudsql.googleapis.com/database/disk/bytes_used_by_data_type 指標,或在系統洞察資訊主頁上使用「Disk storage by type」(依類型劃分的磁碟儲存空間) 圖表,查看依資料類型劃分的執行個體磁碟用量細目。

建議做法:

  • 如果是 SQL Server 適用的 Cloud SQL,database/disk/bytes_used_by_data_type 指標會細分 Data、pitr_transaction_log_backups (儲存在磁碟上用於時間點復原的交易記錄備份)、Logs、error_logs、memory_dumps 和 Other 的執行個體磁碟用量。
  • 如要查看 SQL Server 適用的 Cloud SQL 資料庫中,資料檔案 (ROWS) 和交易記錄檔 (LOG) 的儲存空間細目,請連線至資料庫並查詢 sys.database_files:
    SELECT name, type_desc,
      size * 8 / 1024.0 AS size_mb,
      FILEPROPERTY(name, 'SpaceUsed') * 8 / 1024.0 AS space_used_mb
    FROM sys.database_files;
    您也可以執行 DBCC SQLPERF(LOGSPACE);,檢查執行個體上所有資料庫的交易記錄大小和已用空間。
  • 如要確認時間點復原 (PITR) 交易記錄備份是儲存在磁碟或 Cloud Storage,請參閱「檢查用於 PITR 的交易記錄儲存位置」。
臨時儲存空間增加了自動儲存空間。 已啟用自動儲存空間。

重新啟動會刪除暫存檔案,但不會減少儲存空間。只有 客戶服務可以重設執行個體大小。

資料會自動刪除。 環境中可能有指令碼正在執行。

查看刪除時間前後的記錄,看看是否有惡意指令碼從資訊主頁或其他自動化程序執行。

無法刪除執行個體。 您可能會看到錯誤訊息 ERROR: (gcloud.sql.instances.delete) HTTP Error 409: The instance or operation is not in an appropriate state to handle the request,或執行個體可能處於 INSTANCE_RISKY_FLAG_CONFIG 標記狀態。

可能原因包括:

  • 正在處理另一項作業。Cloud SQL 作業不會同時執行。請等待其他作業完成。
  • 只要使用至少一個 beta 旗標,就會觸發 INSTANCE_RISKY_FLAG_CONFIG 警告。移除有風險的旗標設定,然後重新啟動執行個體
暫存資料過大,導致執行個體卡住。 系統可以一次建立多個臨時資料表,具體取決於查詢和負載。

很抱歉,除了重新啟動服務外,您無法透過任何其他方法縮減 ibtmp1 檔案。

其中一個緩解方法是使用 ROW_FORMAT=COMPRESSED 建立臨時資料表,這樣資料表就會儲存在臨時檔案目錄中的 file-per-table 表格空間。不過,缺點是為每個臨時資料表建立及移除單一資料表檔案資料表空間,會產生效能成本。

升級時發生嚴重錯誤。 記錄檔可能會顯示更多資訊,但無論如何,您可能需要客戶服務協助,才能強制重新建立執行個體。
磁碟空間用盡後,執行個體卡在重新啟動狀態。 未啟用自動增加儲存空間功能。

如果執行個體的儲存空間用盡,且未啟用自動增加儲存空間功能,執行個體就會離線。如要避免這個問題,您可以 編輯執行個體,啟用自動增加儲存空間功能。

地端部署主要執行個體卡住。 Google Cloud 無法協助處理非 Cloud SQL 執行個體。
重新啟動時關機速度緩慢。 執行個體關閉時,如果任何未完成的連線未在 60 秒內結束,就會導致關閉程序不正常。

只要連線時間不超過 60 秒,就能避免大多數不正常關機的情況,包括來自資料庫命令提示字元的連線。如果這些連線持續開啟數小時或數天,關閉作業可能不夠乾淨。

無法刪除使用者。 使用者可能在資料庫中擁有依附於該使用者的物件。您必須捨棄這些物件,或將其重新指派給其他使用者。

找出哪些物件依附於該使用者,然後捨棄這些物件或將其重新指派給其他使用者。

Stack Exchange 上的這串討論說明如何找出使用者擁有的物件。
特定查詢的執行速度緩慢。 查詢速度緩慢的原因有很多,大多與特定資料庫層面有關。可能涉及 Cloud SQL 的原因之一是網路延遲,也就是來源 (寫入器或讀取器) 資源和目的地 (Cloud SQL) 資源位於不同區域。

請特別參閱 一般成效提示。

如果資料庫插入、更新或刪除作業速度緩慢,請考慮採取下列行動:

  • 檢查寫入器和資料庫的位置;長距離傳送資料會導致延遲。
  • 檢查讀取器和資料庫的位置;延遲時間對讀取效能的影響甚至大於寫入效能

如要縮短延遲時間,建議將來源和目的地資源放在相同區域。

系統指出記憶體不足,但監控圖表並未顯示。 執行個體可能會失敗並回報 Out of memory,但 Google Cloud 控制台或 Cloud Monitoring 圖表似乎顯示仍有剩餘記憶體。

除了工作負載之外,還有其他因素會影響記憶體用量,例如有效連線數量和內部負擔程序。監控圖表不一定會反映這些情況。

請確認執行個體有足夠的額外資源,可處理工作負載和一些額外工作。

復原已刪除的執行個體。 刪除執行個體後,執行個體上的所有資料 (包括備份) 都會永久遺失。

如要保留資料,請先 將資料匯出至 Cloud Storage,再 刪除執行個體。

Cloud SQL 管理員角色具備刪除執行個體的權限。為避免意外刪除,請只在必要時授予這個角色。

您想重新命名現有的 Cloud SQL 執行個體。 不支援重新命名現有執行個體。

您可以透過其他方式建立新執行個體,達成目標。

  • 您可以複製要重新命名的執行個體,並為複製的執行個體設定新名稱。這樣一來,您就能建立新執行個體,不必手動匯入資料。就像建立新執行個體一樣,複製的執行個體會有新的 IP 位址。
  • 您可以將執行個體中的資料匯出至 Cloud Storage bucket,然後使用所需的新名稱建立新執行個體,再將資料匯入新執行個體。

無論是哪一種情況,您都可以在作業完成後刪除舊執行個體。建議您採用複製路徑,因為這不會影響效能,也不需要重新設定任何執行個體設定,例如旗標、機器類型、儲存空間大小和記憶體。

刪除執行個體時發生錯誤。 如果執行個體已啟用防刪除功能,請確認您要刪除執行個體。接著,請先 停用防刪除功能,再刪除執行個體。
錯誤訊息:429 Too Many Requests (rateLimitExceeded)。 如果應用程式或服務帳戶超過 Cloud SQL Admin API 的每位使用者頻率配額,您可能會收到 HTTP 429 Too Many Requests 錯誤,原因為 rateLimitExceeded。由於頻率配額是依每分鐘、每位使用者和每個區域強制執行,因此 Google Cloud 控制台「Cloud Quotas」頁面上的專案層級配額指標匯總資料,可能不會顯示配額用盡。

如要診斷哪個使用者或服務帳戶耗盡每位使用者的頻率限制,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,選取發出要求的用戶專案,然後前往「Metrics Explorer」頁面。
  2. 按一下「Select a metric」(選取指標),然後在篩選列中輸入 serviceruntime.googleapis.com/api/request_count。在子選單中,依序選取 「Consumed API」> 「API」>「要求數量」,然後點選 「套用」。
  3. 在「Filter」(篩選器) 元素中,按一下「Add filter」(新增篩選器),選取 response_code,將「Comparator」(比較子) 設為「= (equals)」(= (等於)),在「Value」(值) 欄位中輸入 429,然後按一下「Apply」(套用)。
  4. 再次按一下「新增篩選條件」,選取「service」(在「值」欄位中輸入 sqladmin.googleapis.com) 或「method」(例如在「值」欄位中輸入 google.cloud.sql.v1.SqlInstancesService.Get),然後按一下「套用」。
  5. 在「Aggregation」(匯總) 元素中,確認第一個選單已設為「Sum」(總和),然後在第二個選單 (「by」(依據) 旁邊) 選取 credential_id,依個別憑證將要求分組。
  6. 在結果中,找出 429 回應數量最多的憑證 ID (credential_id)。這個值是服務帳戶或使用者憑證的 OAuth 2.0 用戶端 ID,該憑證已用盡每位使用者的頻率限制。
  7. 前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面,搜尋與憑證 ID 相符的 OAuth 2.0 用戶端 ID。相符的項目就是用盡每位使用者頻率限制的服務帳戶。

如要解決錯誤,請在應用程式中實作用戶端快取或指數輪詢、將工作負載分配到不同的服務帳戶,或要求調整配額。詳情請參閱「排解頻率限制錯誤」。

Private Service Connect

問題 疑難排解
執行個體的服務連結不接受 Private Service Connect 端點。
  1. 查看端點狀態。

    gcloud

    如要查看狀態,請使用
    gcloud compute forwarding-rules describe 指令。

    gcloud compute forwarding-rules describe ENDPOINT_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    | grep pscConnectionStatus

    請依指示取代下列項目:

    • ENDPOINT_NAME:端點名稱
    • PROJECT_ID:端點所在 Google Cloud 專案的 ID 或專案編號
    • REGION_NAME:端點的區域名稱

    REST

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:包含 Private Service Connect 端點的 Google Cloud 專案 ID 或專案編號
    • REGION_NAME:區域名稱
    • ENDPOINT_NAME:端點名稱

    HTTP 方法和網址:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

    {
      "kind": "compute#forwardingRule",
      "id": "ENDPOINT_ID",
      "creationTimestamp": "2024-05-09T12:03:21.383-07:00",
      "name": "ENDPOINT_NAME",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "IPAddress": "IP_ADDRESS",
      "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
      "serviceDirectoryRegistrations": [
        {
          "namespace": "goog-psc-default"
        }
      ],
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "fingerprint": "FINGERPRINT_ID",
      "pscConnectionId": "CONNECTION_ID",
      "pscConnectionStatus": "ACCEPTED",
      "allowPscGlobalAccess": true
    }
    
  2. 確認端點狀態為 ACCEPTED。如果狀態為 PENDING,表示執行個體不允許包含端點的 Google Cloud 專案。請確認建立端點的網路專案在允許範圍內。詳情請參閱「編輯已啟用 Private Service Connect 的執行個體」。
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: The resource 'projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME' was not found 為 Private Service Connect 端點保留靜態內部 IP 位址時,可能會出現這則錯誤訊息。請確認指定的子網路存在於 URI 指定的專案中。如要在服務專案中建立端點,但使用 Shared VPC 網路的子網路,則須透過 URI 指定子網路,並在 URI 中使用主專案的專案 ID。詳情請參閱「手動建立端點」。
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: - The resource 'projects/PROJECT_ID/global/networks/NETWORK_NAME' was not found 手動建立 Private Service Connect 端點時,可能會出現這則錯誤訊息。請確認指定的網路存在於 URI 指定的專案中。如要在服務專案中建立端點,但使用 Shared VPC 網路,則必須透過 URI 指定網路,並在 URI 中使用主專案的專案 ID。詳情請參閱「手動建立端點」。
Invalid consumer network status for PSC auto connection。

消費者網路未正確設定或完全未設定,因此沒有可連線的端點。如要連線至端點,請先檢查端點狀態並修正錯誤,再嘗試連線。
如要查看端點狀態,請參閱「擷取端點」。 端點狀態可能是下列其中一種:

  • CONNECTION_POLICY_MISSING:用戶網路中沒有相符的服務連線政策。服務連線政策是依網路和區域設定。如要重新設定網路,請參閱「更新服務連線政策」。
  • CONSUMER_INSTANCE_PROJECT_NOT_ALLOWLISTED:有相符的服務連線政策,但政策中的「Service instance scope」(服務執行個體範圍) 欄位未設為允許連線至這個 Cloud SQL 執行個體。更新政策,將「Service instance scope」(服務執行個體範圍) 欄位 (--producer-instance-location) 的值設為 Cloud SQL 執行個體所在的專案、資料夾或組織。如要重新設定服務連線政策,請參閱「更新服務連線政策」。
  • POLICY_LIMIT_REACHED:服務連線政策已達端點數量上限。如要解決這個問題,請更新服務連線政策,提高端點數量上限。
No permission to create a service connection policy。

您沒有必要權限,無法建立服務連線政策。如要建立服務連線政策,您必須具備 Compute Network Admin IAM 角色。詳情請參閱「角色和權限」。

使用 Private Service Connect 傳出連線時,網路連結無法接受來自 Private Service Connect 介面的連線。

如果外部網路無法接受來自 Private Service Connect 介面的連線,表示網路連結的連線政策可能設定有誤。

網路連結必須設為自動接受所有連線,或手動設定接受的連線清單。 詳情請參閱「連線政策」。

使用下列指令,驗證網路連結中接受的連線:

    gcloud compute network-attachments describe default
    --region=REGION_ID
    

如果 Private Service Connect 介面不在接受清單中,請更新網路連結。詳情請參閱「管理網路連結」。

複製

問題 疑難排解
唯讀副本建立後未開始複製。 記錄檔中可能會有更具體的錯誤。 在 Cloud Logging 中檢查記錄,找出實際錯誤。
無法建立唯讀副本 - invalidFlagValue 錯誤。 要求中的其中一個標記無效。這可能是您明確提供的旗標,也可能是設為預設值的旗標。

首先,請確認 max_connections 旗標的值大於或等於主要執行個體的值。

如果 max_connections 旗標設定正確,請檢查 Cloud Logging 中的記錄,找出實際錯誤。

無法建立唯讀副本,發生不明錯誤。 記錄檔中可能會有更具體的錯誤。 在 Cloud Logging 中檢查記錄,找出實際錯誤。

如果錯誤為 set Service Networking service account as servicenetworking.serviceAgent role on consumer project,請按照「建立服務代理並授予角色」中的操作說明,手動建立必要的服務帳戶。

磁碟已滿。 建立副本時,主要執行個體磁碟空間可能會用盡。 編輯主要執行個體,升級至較大的磁碟。
副本執行個體耗用過多記憶體。 副本會使用暫存記憶體快取經常要求的讀取作業,因此使用的記憶體可能比主要執行個體多。

重新啟動副本執行個體,回收暫存記憶體空間。

複製作業已停止。 已達儲存空間上限,且未啟用自動增加儲存空間功能。

編輯執行個體,啟用 automatic storage increase。

複製作業延遲時間持續偏高。 寫入負載過高,副本無法處理。如果副本上的 SQL 執行緒無法跟上 IO 執行緒,就會發生複製延遲。某些類型的查詢或工作負載可能會導致特定結構定義暫時或永久出現高複製延遲。複製延遲的常見原因如下:
  • 副本上的慢速查詢。找出並修正。
  • DELETE ... WHERE field < 50000000 這類查詢會導致資料列式複製作業發生複製延遲,因為副本上會累積大量更新。

可能的解決方案包括:

  • 編輯執行個體,增加副本大小。
  • 降低資料庫負載。
  • 將讀取流量傳送至唯讀副本。
  • 為資料表建立索引。
  • 找出並修正寫入速度緩慢的查詢。
  • 重新建立副本。
副本建立作業逾時失敗。 如果主要執行個體上有長時間執行的未修訂交易,可能會導致唯讀副本建立失敗。

停止所有執行中的查詢,然後重新建立副本。