已知問題

此頁面列出 MySQL 適用的 Cloud SQL 的已知問題,以及如何避免這些問題發生,或復原到問題發生之前狀態的方式。

如果執行個體發生問題,請務必詳閱作業指南和診斷問題中的資訊。

資料耐用性與可用性問題

  • 產生的資料欄 (僅限 MySQL 5.7 執行個體)

    由於 MySQL 的問題,使用產生的資料欄可能會導致資料毀損。詳情請參閱 MySQL 錯誤編號 82736。

執行個體連線問題

  • 到期的 SSL/TLS 憑證

    如果執行個體已設為使用 SSL,請前往 Cloud de Confiance 控制台的 Cloud SQL 執行個體頁面,然後開啟執行個體。開啟「Connections」(連線) 頁面,選取「Security」(安全性) 分頁標籤,確認伺服器憑證有效。如果憑證已過期,請新增憑證並輪替。

  • Cloud SQL Auth Proxy 版本

    如果使用 Cloud SQL Auth Proxy 連線,請確認您使用的是最新版本。詳情請參閱「將 Cloud SQL Auth Proxy 保持在最新狀態」。

  • 未取得授權,無法連線

    如果您嘗試連線至該專案中不存在的執行個體,錯誤訊息只會指出您無權存取該執行個體。

  • 無法建立 Cloud SQL 執行個體

    如果看到 Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID] 錯誤訊息,請嘗試再次建立 Cloud SQL 執行個體。

管理問題

  • 一個執行個體一次只能執行一項長時間執行的 Cloud SQL 匯入或匯出作業。開始作業時,請確認您不需要對執行個體執行其他作業。此外,您也可以在作業開始後取消作業。

  • MySQL 會自動修訂每個 DDL 陳述式。Cloud SQL 會保留匯入作業的所有步驟,直到取消執行個體為止。因此,您可能需要手動清理執行個體上的資料。

匯入及匯出資料問題

  • CSV 匯出作業無法正確設定 NULL 和換行符號的格式。

    使用 Cloud SQL 匯出功能將資料匯出為 CSV 時,NULL 會匯出為 "N,這可能會導致 CSV 檔案包含不平衡的引號。此外,如果文字資料含有換行字元,則會在該行結尾處加入尾隨引號。

    匯入使用預設逸出字元匯出的檔案時,檔案會將值視為 "NULL",而非 NULL。如要在匯出檔案時覆寫預設值,請使用 --escape="5C"。

  • SQL 模式設定會影響 Cloud SQL 解讀 SQL 查詢的方式。

    舉例來說,如果您從未啟用嚴格 SQL 的資料庫匯出資料,然後嘗試匯入 Cloud SQL (預設啟用嚴格 SQL),匯入作業可能會失敗。最佳做法是在匯入時使用與匯出時相同的 SQL 模式。

  • DEFINER 子句可能導致匯入失敗

    如果 DEFINER 使用者是 SUPER 或系統使用者,且與將資料匯入 Cloud SQL 的使用者不同,DEFINER 子句可能會導致匯入作業失敗。進一步瞭解 Cloud SQL 中的 DEFINER 用途和潛在解決方法。

  • 如果您嘗試從大型資料庫 (例如資料量達 500 GB 以上的資料庫) 匯入及匯出資料,匯入和匯出作業可能需要較長時間才能完成。此外,在匯入或匯出期間,您無法執行其他作業 (例如備份作業)。如要提升匯入和匯出程序的效能,可以考慮使用 gcloud 或 API 還原先前的備份。

  • Cloud Storage 支援單一物件大小上限為 5 tebibyte (5 TiB)。Cloud SQL 會先壓縮資料,再上傳至 Cloud Storage,因此只有在匯出檔案的「壓縮」大小超過 5 TiB 時,匯出作業才會失敗。

    壓縮率取決於資料庫中的資料類型,例如文字的壓縮效果優於 BLOB 等二進位資料。因此,如果資料高度可壓縮,即使資料庫或資料表大小超過 5 TiB,匯出作業也可能不會失敗,但接近 5 TiB 的未壓縮資料則可能失敗。

    如果執行標準匯出作業,Cloud SQL 通常會建立單一匯出檔案。如果使用平行匯出,Cloud SQL 會建立多個匯出檔案。如果採用這類匯出作業,只要有任何資料表的壓縮匯出檔案超過 5 TiB,匯出作業就會失敗。

    如果匯出作業因 5 TiB 限制而失敗,請將匯出作業拆分成較小的區隔。如果您使用標準匯出功能,但達到這項限制,建議改用平行匯出功能。

交易記錄和磁碟成長

記錄檔每天會清除一次,而非持續清除。如果記錄保留天數與備份數量相同,則可能會遺失一天的記錄,具體取決於備份時間。舉例來說,如果將記錄保留期限設為七天,並將備份保留期限設為七個備份,則系統會保留六到七天的記錄。

建議您將備份數量設為至少比記錄保留天數多一個,以確保記錄保留天數至少達到指定天數。

升級 MySQL 執行個體時發生問題

如果您使用資料庫遷移服務,將 MySQL 執行個體從 5.7 版升級至 8.0 版,且 5.7 版執行個體中名為 mysql 的資料庫有預存程序,則預存程序可能不會複製到升級後 8.0 版執行個體的 mysql 資料庫。此外,您可能無法在升級後的執行個體中,於 mysql 資料庫建立預存程序。

InnoDB 頁面壓縮問題

InnoDB 頁面壓縮可減少需要讀取和寫入磁碟的資料量,進而提升更新查詢的效能。不過,如果資料表經常更新,頁面壓縮可能會影響更新查詢的效能。如要評估頁面壓縮對更新查詢的影響,您可以執行效能測試,比較啟用和停用頁面壓縮時的效能。這有助於您觀察頁面壓縮對工作負載效能的影響。

您可以按照下列方式,最佳化網頁壓縮效能:

  • 請根據資料類型,使用合適的壓縮演算法。例如,文字資料使用 LZ4,二進位資料使用 ZLIB。

  • 避免對經常更新的資料進行壓縮。壓縮及解壓縮資料可能會降低更新查詢的速度。

與 Cloud Monitoring 或 Cloud Logging 相關的問題

在某些情況下,具有下列區域名稱的執行個體會顯示錯誤,如下所示:

  • us-central1 顯示為 us-central
  • europe-west1 顯示為 europe
  • asia-east1 顯示為 asia

這個問題會在以下情境中發生:

  • Cloud Monitoring 的警告功能
  • Metrics Explorer
  • Cloud Logging

您可以使用資源中繼資料標籤,緩解 Cloud Monitoring 中的警告和 Metrics Explorer 的問題。請使用系統中繼資料標籤 region,而非 cloudsql_database 受監控資源標籤 region。