請先查看下列頁面,確認你的問題是否已有解決方法:
本頁面涵蓋的主題包括:
備份與還原
問題 | 疑難排解 |
---|---|
您無法查看目前作業的狀態。 | 作業完成時, Google Cloud 控制台只會回報成功或失敗。這項功能不會顯示警告或其他更新。
執行
|
您想找出是誰發起了隨選備份作業。 | 使用者介面不會顯示啟動作業的使用者。
查看記錄,然後依文字篩選,找出使用者。您可能需要使用稽核記錄來取得私人資訊。相關記錄檔包括:
|
執行個體刪除後,您就無法備份該執行個體。 | 如果您刪除執行個體時沒有最終備份資料,就無法復原資料。不過,如果您還原執行個體,Cloud SQL 也會還原備份。如要進一步瞭解如何復原已刪除的執行個體,請參閱復原備份。 如果您已執行匯出作業,請建立新的執行個體,然後執行匯入作業來重建資料庫。匯出作業會寫入 Cloud Storage,匯入作業則會從該處讀取資料。 |
自動備份作業已停滯數小時,且無法取消。 | 備份作業可能需要較長時間,視資料庫大小而定。
如果真的需要取消作業,可以請
客戶支援團隊 |
如果 SQL 傾印檔案中有一或多位參照的使用者不存在,還原作業就會失敗。 | 還原 SQL 傾印檔之前,如果資料庫使用者擁有傾印資料庫中的物件,或已取得傾印資料庫中的物件存取權,這類使用者都必須存在於目標資料庫中。否則還原作業無法以原始擁有權或權限重新建立物件。 |
您想將自動備份的保留天數從 7 天延長至 30 天以上。 | 您可以
設定要保留的自動備份數量,範圍為 1 到 365。系統會根據設定的保留值,定期修剪自動備份。很抱歉,這表示您只能從目前顯示的自動備份還原資料。 如要無限期保留備份,可以建立隨選備份,因為這類備份不會像自動備份一樣遭到刪除。隨選備份會無限期保留。也就是說,這些備份會一直存在,直到您刪除備份或刪除所屬執行個體為止。這類備份不會自動刪除,因此可能會影響帳單。 |
自動備份失敗,且您未收到電子郵件通知。 | 如要讓 Cloud SQL 通知您備份狀態,請設定以記錄為準的快訊。 |
取消匯入和匯出作業
問題 | 疑難排解 |
---|---|
錯誤訊息:You can't cancel operation [operation-ID] because
this operation isn't in progress. |
您嘗試取消的匯入或匯出作業已完成、失敗或取消。如果作業正在執行,可以取消作業。 |
錯誤訊息:You can't cancel operation [operation-ID] because
Cloud SQL doesn't support the cancellation of an [operation-type]
operation. |
Cloud SQL 不支援取消作業,因為作業的作業類型不是 |
錯誤訊息:The [operation-type] operation isn't cancelled. Wait
and retry in a few seconds. |
Cloud SQL 目前無法取消匯入或匯出作業。 請稍後再試。如果問題仍未解決,請與Google Cloud 支援團隊聯絡。 |
複製
問題 | 疑難排解 |
---|---|
複製作業失敗,並顯示 constraints/sql.restrictAuthorizedNetworks 錯誤。 |
複製作業遭到「Authorized Networks 」設定封鎖。Authorized Networks 是在 Google Cloud 控制台的「連線」部分中,針對公開 IP 位址設定,且基於安全考量,不允許複製。盡可能從 Cloud SQL 執行個體中移除所有 |
錯誤訊息: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 範圍,且來源執行個體並非使用指定範圍建立。因此,複製的執行個體會建立在隨機範圍內。 使用 |
連線
問題 | 疑難排解 |
---|---|
Aborted connection 。 |
可能的問題如下:
應用程式必須能容許網路故障,並遵循最佳做法,例如連線集區和重試。連線集區器大多會盡可能偵測到這些錯誤。否則應用程式必須重試或優雅地失敗。 如要重試連線,建議使用下列方法:
結合使用這些方法有助於減少節流。 |
Certificate verify failed 。 |
用戶端憑證已過期,或憑證路徑不正確。 重新建立憑證,即可重新產生憑證。 |
建立執行個體
問題 | 疑難排解 |
---|---|
錯誤訊息:Failed to create subnetwork. Couldn't
find free blocks in allocated IP ranges. Please allocate new ranges for
this service provider 。 |
分配的 IP 範圍內沒有其他可用位址。可能的情況如下:
如要解決這個問題,您可以擴展現有的分配 IP 範圍,或為私人服務連線分配額外的 IP 範圍。詳情請參閱分配 IP 位址範圍。 如果您在建立 Cloud SQL 執行個體時使用了 如要分配新範圍,請注意分配範圍不得與任何現有分配範圍重疊。 建立新的 IP 範圍後,請執行下列指令更新 VPC 對等互連: 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 範圍後,請使用下列指令更新 VPC 對等互連: 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. |
請確認要新增至 Cloud SQL 執行個體伺服器憑證的 DNS 名稱不超過 253 個字元。 |
錯誤訊息:Subject alternative name %s is invalid. |
確認要新增至 Cloud SQL 執行個體伺服器憑證的 DNS 名稱符合下列條件:
|
匯出
問題 | 疑難排解 |
---|---|
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 角色」。 |
CSV 匯出作業成功,但 SQL 匯出作業失敗。 | CSV 和 SQL 格式的匯出方式不同。SQL 格式會匯出整個資料庫,因此可能需要較長時間才能完成。CSV 格式可讓您定義要匯出資料庫中的哪些元素。
使用 CSV 匯出功能,只匯出所需資料。 |
匯出時間過長。 | Cloud SQL 不支援並行同步作業。
使用 匯出卸載。從高層次來看,在卸載匯出作業時,Cloud SQL 會啟動卸載執行個體來執行匯出作業,而不是在來源執行個體上發出匯出作業。卸載匯出作業有幾項優點,包括提升來源執行個體的效能,以及在匯出作業執行期間解除管理作業的封鎖。使用匯出卸載功能時,總延遲時間可能會增加,增加的時間量取決於啟動卸載執行個體所需的時間。一般來說,只要匯出檔案大小合理,延遲時間就不會太長。不過,如果匯出內容夠小,延遲時間可能會增加。 |
您希望系統自動匯出資料。 | Cloud SQL 不提供自動匯出功能。 您可以使用 Cloud Scheduler、Pub/Sub 和 Cloud Run 函式等產品,自行建構自動匯出系統,類似於這篇 自動備份文章。 Google Cloud |
外部主要
問題 | 疑難排解 |
---|---|
Lost connection to MySQL server during query when dumping table 。 |
來源可能已無法使用,或傾印包含的封包過大。
確認外部主要伺服器可供連線。 您也可以修改來源執行個體上的 net_read_timeout 和 net_write_timeout 旗標值,停止發生錯誤。如要進一步瞭解這些旗標的允許值,請參閱「設定資料庫旗標」。 如要進一步瞭解如何使用 |
初始資料遷移作業成功,但沒有任何資料複製。 | 其中一個可能的原因是來源資料庫定義了複製標記,導致部分或所有資料庫變更未複製過來。 請確認複製旗標 (例如 在主要執行個體上執行 |
初始資料遷移作業成功,但資料複製作業在一段時間後停止運作。 | 建議做法:
|
mysqld check failed: data disk is full 。 |
備用執行個體的資料磁碟已滿。
增加副本執行個體的磁碟大小。您可以手動增加磁碟大小,也可以啟用儲存空間自動增加功能。 |
外部副本
問題 | 疑難排解 |
---|---|
錯誤訊息:The slave is connecting ... master has purged
binary logs containing GTIDs that the slave requires 。 |
主要 Cloud SQL 執行個體已啟用自動備份、二進位記錄檔和時間點復原功能,因此應該有足夠的記錄檔,可供副本趕上進度。不過,在這種情況下,雖然二進位記錄檔存在,但副本不知道要從哪一列開始讀取。 使用正確的旗標設定建立新的傾印檔案,並使用該檔案設定外部副本
|
旗標
問題 | 疑難排解 |
---|---|
啟用旗標後,執行個體會在恐慌和當機之間循環。 | 請與 客戶服務團隊聯絡,要求移除標記,然後hard drain 。這會強制執行個體在其他主機上重新啟動,並使用新的設定,且不含不想要的旗標或設定。 |
嘗試設定旗標時,系統顯示 Bad syntax for dict arg 錯誤訊息。 | 複雜的參數值 (例如以半形逗號分隔的清單) 與 gcloud 指令搭配使用時,需要特別處理。 |
高可用性
問題 | 疑難排解 |
---|---|
找不到手動容錯移轉的指標。 | 只有自動容錯移轉會納入指標。 |
Cloud SQL 執行個體資源 (CPU 和 RAM) 的使用率接近 100%,導致高可用性執行個體停止運作。 | 執行個體機器大小過小,無法處理負載。
編輯執行個體,升級至較大的機器大小,取得更多 CPU 和記憶體。 |
匯入
問題 | 疑難排解 |
---|---|
HTTP Error 409: Operation failed because another operation was already in progress 。 |
您的執行個體已有待處理的作業。系統一次只能執行一項作業。請待目前的作業完成後再提出要求。 |
匯入作業耗時過長。 | 有效連線過多可能會干擾匯入作業。
關閉未使用的作業。檢查 Cloud SQL 執行個體的 CPU 和記憶體用量,確保有充足的可用資源。如要確保匯入作業有最多資源可用,請先重新啟動執行個體,再開始執行作業。 重新啟動:
|
如果傾印檔案中有一或多位參照的使用者不存在,匯入作業就會失敗。 | 匯入傾印檔案前,擁有物件或已取得傾印資料庫中物件存取權的所有資料庫使用者,都必須存在於目標資料庫中。否則匯入作業無法以原始擁有權或權限重新建立物件。 |
匯入作業失敗,並顯示資料表不存在的錯誤。 | 資料表可能會參照其他資料表的外鍵,而且其中一或多個資料表在匯入作業期間可能仍不存在 (取決於匯入順序)。 建議做法: 在傾印檔案開頭加上以下這一行: SET FOREIGN_KEY_CHECKS=0; 此外,請在傾印檔案結尾處加上以下這一行: SET FOREIGN_KEY_CHECKS=1; 這些設定會在匯入作業進行期間停用資料完整性檢查,並在資料載入後重新啟用。這不會影響資料庫中的資料完整性,因為資料在建立傾印檔案時已通過驗證。 |
記錄
問題 | 疑難排解 |
---|---|
找不到稽核記錄。 | 只有在作業是經過驗證的使用者驅動 API 呼叫,且會建立、修改或讀取使用者建立的資料,或是作業會存取資源的設定檔或中繼資料時,系統才會寫入資料存取記錄。 |
記錄中找不到作業資訊。 | 想進一步瞭解某項作業。
舉例來說,使用者遭到刪除,但您無法找出刪除者。 記錄會顯示作業已啟動,但不會提供任何其他資訊。您必須啟用稽核記錄,系統才會記錄這類詳細的個人識別資訊 (PII)。 |
記錄檔占用大量磁碟空間。 | 有三種記錄檔會使用磁碟空間:重做記錄、一般記錄和二進位記錄。 連線至資料庫,並執行下列指令,查看各類型的詳細資料: SHOW VARIABLES LIKE 'innodb_log_file%'; SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2),2) AS GB from mysql.general_log; SHOW BINARY LOGS; |
記錄檔難以解讀。 | 您希望以 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 如要以文字格式下載記錄,請按照下列步驟操作: 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 |
管理執行個體
問題 | 疑難排解 |
---|---|
重新啟動 MySQL 後效能變慢。 | Cloud SQL 允許在 InnoDB 緩衝區集區中快取資料。 不過,重新啟動後,這個快取一律會是空的,所有讀取作業都需要往返後端才能取得資料。因此,在填滿快取之前,查詢速度可能會比預期慢。 |
當機復原速度緩慢。 | 可能已累積大量 general_log 。
您可以避免大量 general_log 累積,藉此縮短當機復原時間。如果已開啟 general_log ,請截斷資料表,並只在短時間內啟用 general_log 。
如要瞭解一般記錄的大小,請連線至資料庫並執行下列查詢: SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2)),2) from mysql.general_log;
|
您想瞭解哪些項目占用了儲存空間。 | 舉例來說,您發現資料庫只用了 3 GB,但儲存空間顯示已使用 14 GB。資料表未使用的空間大多會用於二進位記錄和/或暫存檔案。 建議做法:
|
查詢遭到封鎖。 | 查詢可能會鎖定 MySQL 資料庫,導致後續所有查詢遭到封鎖/逾時。 連線至資料庫並執行這項查詢:
清單中的第一個項目可能持有鎖定,後續項目則會等待該項目釋放鎖定。
|
您無法手動刪除二進位檔記錄。 | 二進位記錄無法手動刪除。二進位記錄檔會連同相關聯的自動備份檔一併自動刪除,通常會在約七天後刪除。 |
想瞭解暫存檔案。 | 名為 ibtmp1 的檔案用於儲存暫存資料。資料庫重新啟動時,系統會重設這個檔案。如要瞭解暫存檔案用量,請連線至資料庫並執行下列查詢:
|
您想瞭解資料表大小。 | 這項資訊會顯示在資料庫中。
連線至資料庫並執行下列查詢:
|
mysqld got a signal 11. | 請嘗試重構查詢,避免建立過多連線。如果仍無法解決問題,請與客戶服務團隊聯絡。
訊號 11 通常代表 MySQL 軟體問題。
|
InnoDB: page_cleaner: 1000ms intended loop took 5215ms. The
settings might not be optimal. |
頁面清除器無法跟上執行個體上的變更率。
頁面清除器每秒會掃描緩衝區集區中的髒頁,並從緩衝區集區排清至磁碟。您看到的警告顯示有大量待清除的髒頁面,且清除一批頁面到磁碟的時間超過一秒。 對執行個體執行資料分割 (如有可能)。請盡量使用多個小型 Cloud SQL 執行個體,效果會比使用單個大型的執行個體更好。 |
臨時儲存空間會自動增加儲存空間。 | 已啟用自動儲存功能。
重新啟動會刪除暫存檔,但不會減少儲存空間。只有 客戶支援團隊可以重設執行個體大小。 |
系統正在自動刪除資料。 | 您的環境中很可能正在執行指令碼。
查看刪除時間前後的記錄,確認是否有來自資訊主頁或其他自動化程序的惡意指令碼正在執行。 |
無法刪除執行個體。 | 您可能會看到 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
標記狀態。
可能原因包括:
|
臨時資料量過大,導致執行個體停滯。 | 系統可以一次建立多個臨時資料表,視查詢和負載而定。 很抱歉,除了重新啟動服務,您無法透過任何方法縮減 其中一個解決方法是使用 |
升級時發生嚴重錯誤。 | 記錄檔可能會顯示更多資訊,但無論如何,可能都需要客戶服務強制重新建立執行個體。 |
磁碟空間不足後,執行個體無法重新啟動。 | 自動增加儲存空間功能未啟用。
如果執行個體的儲存空間不足,且未啟用自動增加儲存空間功能,執行個體就會離線。如要避免這個問題,請 編輯執行個體,啟用自動增加儲存空間功能。 |
內部部署的主要執行個體停滯。 | Google Cloud 無法協助處理不在 Cloud SQL 中的執行個體。 |
重新啟動時關機速度緩慢。 | 執行個體關機時,如果任何未完成的連線未在 60 秒內結束,就會導致關機程序不乾淨。 只要連線時間少於 60 秒,就能避免大多數不乾淨的關機,包括來自資料庫命令提示字元的連線。如果長時間 (數小時或數天) 開啟這些連線,關機時可能會發生不乾淨的關機程序。 |
無法刪除使用者。 | 使用者可能在資料庫中擁有依附於該物件的物件。您必須捨棄這些物件,或將其重新指派給其他使用者。 找出依附於該使用者的物件,然後捨棄或重新指派給其他使用者。 本文將說明如何找出使用者擁有的物件。 |
特定查詢的執行速度緩慢。 | 查詢速度緩慢的原因有很多,大多與特定資料庫層面有關。其中一個可能涉及 Cloud SQL 的原因是網路延遲,也就是來源 (寫入者或讀取者) 資源和目的地 (Cloud SQL) 資源位於不同區域時, 請特別參閱 一般效能提示。 如果資料庫插入、更新或刪除作業速度緩慢,請考慮採取下列行動:
為減少延遲,建議您將來源和目的地資源都放在相同區域。 |
系統指出記憶體不足,但監控圖表並未顯示此情況。 | 執行個體可能會失敗並回報 Out of memory ,但 Google Cloud 控制台或 Cloud Monitoring 圖表似乎仍顯示有剩餘記憶體。除了工作負載,其他因素也可能影響記憶體用量,例如有效連線數和內部額外負荷程序。這些內容不一定會反映在監控圖表中。 請確保執行個體有足夠的額外負荷,可因應工作負載,以及一些額外負荷。 |
復原已刪除的執行個體。 | 刪除執行個體後,會永久失去該執行個體上的所有資料,包括備份在內。 如要保存資料,請先 將資料匯出至 Cloud Storage,再 刪除執行個體。 Cloud SQL 管理員角色具備刪除執行個體的權限。為避免誤刪,請只在必要時授予這個角色。 |
您想重新命名現有的 Cloud SQL 執行個體。 | 系統不支援重新命名現有執行個體。
您也可以建立新執行個體,達成相同目標。
在這兩種情況下,作業完成後,您都可以刪除舊執行個體。建議您選擇複製,因為這不會影響效能,也不需要重新設定任何執行個體設定,例如標記、機器類型、儲存空間大小和記憶體。 |
刪除執行個體時發生錯誤。 | 如果執行個體已啟用防刪除功能,請確認您打算刪除該執行個體。然後停用防刪除功能,再刪除執行個體。 |
Private Service Connect
問題 | 疑難排解 |
---|---|
執行個體的服務附件不接受 Private Service Connect 端點。 |
|
複製
問題 | 疑難排解 |
---|---|
建立唯讀副本時,系統未開始複製作業。 | 記錄檔中可能會有更具體的錯誤。 檢查 Cloud Logging 中的記錄,找出實際錯誤。 |
無法建立唯讀副本 - invalidFlagValue 錯誤。 | 要求中的其中一個標記無效。這可能是您明確提供的旗標,也可能是設為預設值的旗標。 首先,請確認 如果 |
無法建立唯讀副本 - 發生不明錯誤。 | 記錄檔中可能會有更具體的錯誤。
檢查 Cloud Logging 中的記錄,找出實際錯誤。 如果錯誤訊息為 |
磁碟空間已滿。 | 建立副本時,主要執行個體的磁碟大小可能會達到上限。 編輯主要執行個體,將其升級為較大的磁碟大小。 |
副本執行個體使用的記憶體過多。 | 副本會使用暫存記憶體快取經常要求的讀取作業,因此使用的記憶體可能比主要執行個體多。 重新啟動副本執行個體,即可回收暫存記憶體空間。 |
複製作業已停止。 | 儲存空間已達上限,且未啟用自動增加儲存空間功能。
編輯執行個體,啟用 |
複製延遲持續偏高。 | 副本的寫入負載過高,如果備用資源上的 SQL 執行緒無法跟上 IO 執行緒,就會發生複製延遲。某些查詢或工作負載可能會導致特定結構定義出現暫時或永久的高複製延遲。複製延遲的常見原因包括:
可能的解決方法包括:
|
複製延遲時間突然大幅增加。 | 這是因為交易執行時間過長所致。當交易 (單一陳述式或多個陳述式) 在來源執行個體上提交時,交易的開始時間會記錄在二進位記錄檔中。副本收到這個 binlog 事件時,會比較該時間戳記與目前的時間戳記,以計算複寫延遲。因此,來源上長時間執行的交易會導致副本立即出現大量複製延遲。如果交易中的資料列變更量很大,副本也會花費很長時間執行。這段時間內,複製延遲會增加。副本完成這項交易後,追趕期會視來源的寫入工作負載和副本的處理速度而定。 如要避免交易時間過長,可以嘗試以下解決方法:
|
變更平行複製旗標會導致錯誤。 | 一或多個標記的值不正確。
在顯示錯誤訊息的主要執行個體上,設定平行複製標記:
|
建立副本時發生逾時錯誤。 | 主要執行個體上未提交的長期交易可能會導致唯讀備用資源建立失敗。 停止所有執行中的查詢後,重新建立副本。 |