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