本頁列出使用 Cloud SQL 執行個體時最常遇到的問題,以及解決這些問題的步驟。另請參閱已知問題、疑難排解和支援頁面。
查看記錄
如要查看近期作業的相關資訊,請參閱 Cloud SQL 執行個體作業記錄或 PostgreSQL 錯誤記錄。
連線問題
如需連線問題的相關協助,請參閱「偵錯連線問題」頁面,或疑難排解頁面的「連線能力」一節。
執行個體問題
備份
為確保備份作業發揮最佳效能,請將資料表數量控制在合理範圍內。
如需其他備份問題的相關資訊,請參閱疑難排解頁面的「備份」一節。
匯入及匯出
視處理的資料量而定,匯入 Cloud SQL 和從 Cloud SQL 匯出可能需要很長時間才能完成。這可能會有下列影響:
- 您無法停止長時間執行的 Cloud SQL 執行個體作業。
- 每個執行個體一次只能執行一項匯入或匯出作業,且長時間執行的匯入或匯出作業會阻擋其他作業,例如每日自動備份。無伺服器匯出功能可讓您執行其他作業,包括編輯執行個體、匯入、容錯移轉,以及解除每日自動備份作業的封鎖。
如要縮短每項作業的完成時間,可以使用 Cloud SQL 匯入或匯出功能,分批處理較少量的資料。
如要匯出,您可以從唯讀副本執行匯出作業,或使用無伺服器匯出功能,盡可能降低對資料庫效能的影響,並在匯出作業執行期間,允許其他作業在執行個體上執行。
如需其他匯入和匯出問題的相關資訊,請參閱疑難排解頁面的「匯入和匯出」一節。
磁碟空間
如果執行個體達到允許的儲存空間上限,寫入資料庫就會失敗。如果刪除資料 (例如捨棄資料表),系統會釋出空間,但不會反映在執行個體回報的「Storage Used」(已用儲存空間) 中。您可以執行VACUUM FULL 指令來復原未使用的空間。請注意,執行 vacuum 指令時,寫入作業會遭到封鎖。瞭解詳情。
停權狀態
Cloud SQL 可能會因多種原因而停用執行個體,包括:
帳單問題
例如,如果專案帳單帳戶的信用卡已過期,則執行個體可能會遭到暫停。如要查看專案的帳單資訊,請前往 Cloud de Confiance 控制台的帳單頁面,選取專案,然後查看專案使用的帳單帳戶資訊。解決帳單問題後,執行個體會在幾小時內恢復可執行狀態。
Cloud Key Management Service 的主要問題
舉例來說,如果 Cloud SQL 執行個體中用來加密使用者資料的 Cloud KMS 金鑰版本不存在、金鑰存取權遭到撤銷,或是金鑰在多次重試後仍停用、刪除或無法連線數小時,就會發生這種情況。詳情請參閱「使用客戶自行管理的加密金鑰 (CMEK)」。
法律問題
例如,違反 Cloud de Confiance 《使用限制政策》可能會導致執行個體遭到停權。詳情請參閱《Cloud de Confiance 服務條款》的「停權和移除」一節。
操作問題
舉例來說,如果執行個體卡在當機迴圈 (在啟動時或啟動後當機),Cloud SQL 可能會暫停執行個體。
執行個體暫停運作期間,您還是可以查看相關資訊。如果暫停運作的原因是帳單問題,您也可以刪除執行個體。
白金級、爍金級或白銀級支援方案的 Cloud SQL 使用者,可就暫停的執行個體直接與支援小組聯絡。所有使用者都可以參考上述指南,並使用 google-cloud-sql 論壇。
效能
總覽
Cloud SQL 支援耗用大量效能的工作負載,IOPS 最高可達 60,000 次,而且不會產生額外的輸入/輸出作業費用。IOPS 和處理量效能取決於磁碟大小、執行個體 vCPU 數量和 I/O 區塊大小等因素。
執行個體的效能也取決於所選的儲存空間類型和工作負載。
進一步瞭解:
保持合理的資料庫表格數目
資料庫表格會耗用系統資源。如果數量過多,可能會影響執行個體的效能和可用性,導致執行個體不適用服務水準協議。瞭解詳情。
啟用查詢記錄
您可以設定 log_min_duration_statement 旗標,記錄 PostgreSQL 適用的 Cloud SQL 執行速度緩慢的查詢。系統會記錄執行時間至少達到指定時間長度的查詢。如果指定這個值時未加上單位,系統會將其視為毫秒。前往 Operations Logging 查看記錄。
一般效能提示
確認執行個體未受記憶體或 CPU 限制。如果是效能密集型工作負載,請確保執行個體至少有 60 GB 的記憶體。如果資料庫插入、更新或刪除作業速度緩慢,請檢查寫入器和資料庫的位置;長距離傳送資料會導致延遲。使用查詢洞察提高查詢效能。
針對較慢的資料庫選取作業,請考慮下列因素:
- 快取對讀取效能至關重要。查看 PostgreSQL Statistics Collector 的各種
blks_hit / (blks_hit + blks_read)比率。理想情況下,這個比率應高於 99%。如果沒有,請考慮增加執行個體的 RAM 大小。 - 如果工作負載包含需要大量 CPU 資源的查詢 (排序、規則運算式、其他複雜函式),執行個體可能會受到限制,請新增 vCPU。
- 檢查讀取器和資料庫的位置,延遲時間對讀取效能的影響甚至大於寫入效能。
- 探索非 Cloud SQL 特定的效能強化方式,例如新增適當索引、減少掃描資料,以及避免額外的往返次數。
EXPLAIN,找出應在資料表何處新增索引,以提升查詢效能。舉例來說,請確保您用做 JOIN 鍵的每個欄位在兩個資料表上都有索引。
疑難排解
如需其他 Cloud SQL 問題的相關資訊,請參閱疑難排解頁面。
錯誤訊息
如需特定 API 錯誤訊息,請參閱錯誤訊息參考頁面。
排解客戶自行管理的加密金鑰 (CMEK) 問題
Cloud SQL 管理員作業 (例如建立、複製或更新) 可能會因 Cloud KMS 錯誤、缺少角色或權限而失敗。常見的失敗原因包括:缺少 Cloud KMS 金鑰版本、Cloud KMS 金鑰版本已停用或刪除、IAM 權限不足,無法存取 Cloud KMS 金鑰版本,或 Cloud KMS 金鑰版本與 Cloud SQL 執行個體位於不同區域。請參閱下方的疑難排解表格,診斷及解決常見問題。
客戶自行管理的加密金鑰疑難排解表格
| 如果發生這項錯誤... | 問題可能出在... | 不如說 |
|---|---|---|
| 找不到每項產品和專案的服務帳戶 | 服務帳戶名稱不正確。 | 請確認您為正確的使用者專案建立了服務帳戶。
|
| 無法將存取權授予服務帳戶 | 使用者帳戶沒有權限,無法授予這個金鑰版本的存取權。 | 將組織管理員角色新增至使用者或服務帳戶。 |
| Cloud KMS 金鑰版本已刪除 | 金鑰版本已刪除。 | 如果金鑰版本已刪除,就無法用於加密或解密資料。 |
| Cloud KMS 金鑰版本已停用 | 金鑰版本已停用。 | 重新啟用 Cloud KMS 金鑰版本。
|
| 權限不足,無法使用 Cloud KMS 金鑰 | 您用來在 Cloud SQL 執行個體上執行作業的使用者或服務帳戶缺少 cloudkms.cryptoKeyEncrypterDecrypter 角色、Cloud KMS 金鑰版本不存在,或是在跨專案還原期間,VPC Service Controls 服務範圍封鎖了金鑰存取權。 |
在託管金鑰的 Cloud de Confiance 專案中,將cloudkms.cryptoKeyEncrypterDecrypter角色新增至使用者或服務帳戶。如要將備份還原至其他專案,請將這個角色授予目標專案的 Cloud SQL 服務帳戶。如果帳戶已具備該角色,請嘗試下列做法:
|
| 找不到 Cloud KMS 金鑰 | 金鑰版本不存在。 | 建立新的金鑰版本。請參閱「建立金鑰」。 請參閱附註。 |
| 無法連上 EKM 金鑰 | 數小時內無法連上外部金鑰管理工具 (EKM) 金鑰。即使多次重試,仍無法連上 EKM 金鑰。 如果執行個體因金鑰無法使用而遭到停權,但金鑰在 Cloud de Confiance 控制台中顯示為有效且可用,則問題可能出在 EKM 連線或驗證。 |
請驗證 EKM 連線狀態,並與 EKM 供應商合作排解問題。
|
| Cloud SQL 執行個體和 Cloud KMS 金鑰版本位於不同區域 | Cloud KMS 金鑰版本和 Cloud SQL 執行個體必須位於相同區域。如果 Cloud KMS 金鑰版本位於全域區域或多區域,則不適用。 | 在要建立執行個體的區域中,建立金鑰版本。請參閱「建立金鑰」。請參閱附註。 |
| Cloud KMS 金鑰版本已還原,但執行個體在幾分鐘後仍處於停權狀態。 | 執行個體的內部驗證程序最多可能需要 10 分鐘,執行個體才會再次可用。 | 等待 10 分鐘,讓執行個體可供使用。 |
| Cloud KMS 金鑰版本已還原,但執行個體在 10 分鐘後仍處於停權狀態。 | 金鑰版本已停用或未授予適當權限。 | 重新啟用金鑰版本,並在託管金鑰的 Cloud de Confiance 專案中,將cloudkms.cryptoKeyEncrypterDecrypter角色授予使用者或服務帳戶。 |
重新加密疑難排解表格
| 如果發生這項錯誤... | 問題可能出在... | 不如說 |
|---|---|---|
| 無法存取 Cloud KMS 金鑰,因此無法重新加密 CMEK 資源。請確認已啟用主金鑰版本,並正確授予權限。 | 金鑰版本已停用或未授予適當權限。 | 重新啟用 Cloud KMS 金鑰版本: 在託管金鑰的 Cloud de Confiance 專案中,確認您的使用者或服務帳戶已獲派 |
| 伺服器發生內部錯誤,因此無法重新加密 CMEK 資源。請稍後再試 | 發生伺服器內部錯誤。 | 請重新加密。詳情請參閱「重新加密已啟用 CMEK 的現有執行個體或副本」 |