このページでは、Cloud SQL インスタンスの使用中に特に頻繁に発生する可能性のある問題と、その問題に対処するための手順について説明します。既知の問題ページ、トラブルシューティング ページ、サポートページもご覧ください。
ログを表示する
最近のオペレーションに関する情報は、Cloud SQL インスタンス オペレーション ログまたは PostgreSQL エラーログで確認できます。
接続の問題
接続の問題については、接続の問題のデバッグページまたはトラブルシューティング ページの接続セクションをご覧ください。
インスタンスの問題
バックアップ
バックアップのパフォーマンスを最適化するには、テーブル数を適切な数に維持します。
その他のバックアップの問題については、トラブルシューティング ページのバックアップ セクションをご覧ください。
インポートとエクスポート
処理対象のデータのサイズによっては、Cloud SQL へのインポートと Cloud SQL からのエクスポートが長時間にわたる可能性があります。その結果、次の影響があります。
- 長時間実行されている Cloud SQL インスタンス オペレーションを停止できません。
- 各インスタンスに対して実行できるインポートまたはエクスポート オペレーションは、一度に 1 つのみです。長時間にわたるインポートまたはエクスポートにより、毎日の自動バックアップなど、他のオペレーションがブロックされます。サーバーレス エクスポートの場合は、インスタンスの編集、インポート、フェイルオーバー、毎日の自動バックアップのブロック解除など、他のオペレーションを実行できます。
Cloud SQL のインポートまたはエクスポート機能をバッチサイズのより小さいデータで使用して、各オペレーションの完了に要する時間を短縮できます。
エクスポートの場合は、リードレプリカからエクスポートを行うか、サーバーレス エクスポートを使用してデータベースのパフォーマンスへの影響を最小限に抑えつつ、エクスポートの実行中にインスタンスで他のオペレーションを実行できます。
その他のインポートとエクスポートの問題については、トラブルシューティング ページのインポートとエクスポート セクションをご覧ください。
ディスク容量
インスタンスが許される最大ストレージ容量に達すると、データベースへの書き込みは失敗します。たとえば、テーブルの破棄などによってデータを削除すると、容量が解放されますが、報告されるインスタンスのストレージ使用量には反映されません。VACUUM FULL
コマンドを実行すると、未使用領域を復元できますが、vacuum コマンドが完了するまで書き込みオペレーションは実行できません。詳細
停止状態
次のようなさまざまな理由で、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 は、高いパフォーマンスが要求されるワークロードをサポートします。最大 IOPS は 60,000 で、I/O に追加料金はかかりません。IOPS とスループット パフォーマンスは、ディスクサイズ、インスタンスの vCPU 数、I/O ブロックサイズなどの要因によって異なります。
インスタンスのパフォーマンスは、ストレージの種類とワークロードによっても変化します。
以下について学習します。
データベース テーブルを合理的な数に維持する
データベース テーブルはシステム リソースを消費します。数が多くなると、インスタンスのパフォーマンスと可用性に影響する可能性があります。また、インスタンスが SLA の対象外になる可能性もあります。詳細
クエリログを有効にする
log_min_duration_statement フラグを設定すると、Cloud SQL for PostgreSQL の低速なクエリをログに記録できます。指定した時間以上の期間にわたり実行されたクエリがログに記録されます。この値を単位なしで指定すると、単位はミリ秒に設定されます。[オペレーション ロギング] に移動して、ログを表示します。
一般的なパフォーマンスのヒント
インスタンスがメモリや CPU の制限を受けないようにします。高いパフォーマンスが要求されるワークロードの場合、インスタンスに 60 GB 以上のメモリを割り当てます。データベースの挿入、更新、削除が遅い場合は、書き込みとデータベースのロケーションを確認します。データの送信距離が長いと、レイテンシが発生します。Query Insights を使用してクエリのパフォーマンスのトラブルシューティングを行います。
データベースの選択が遅い場合は、次のことを考慮します。
- 読み取りのパフォーマンスにはキャッシュが重要です。PostgreSQL Statistics Collector でさまざまな
blks_hit / (blks_hit + blks_read)
の比率を確認します。99% 以上になっているのが理想的です。そうでない場合は、インスタンスの RAM のサイズを増やすことを検討してください。 - ワークロードが CPU を大量に使用するクエリ(並べ替え、正規表現、その他の複雑な関数)で構成されている場合、インスタンスが制限される可能性があります。その場合には、vCPU を追加します。
- 読み取りとデータベースの場所を確認します。レイテンシは、書き込みパフォーマンスより読み取りパフォーマンスに大きく影響します。
- 適切なインデックスの追加、スキャンするデータの削減、余分なラウンド トリップの回避など、Cloud SQL に固有ではないパフォーマンス向上手段を調査します。
EXPLAIN
を使用して、クエリ パフォーマンスを改善するために、テーブルのどこにインデックスを追加すべきか特定します。たとえば、JOIN キーとして使用するすべてのフィールドについて、両方のテーブルにインデックスを作成します。
トラブルシューティング
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 鍵バージョンは復元されたが、インスタンスは引き続き停止中である | 鍵バージョンが無効になっているか、適切な権限が付与されていない。 | 鍵のバージョンを再度有効にし、鍵をホストする Google Cloud プロジェクト内のユーザーまたはサービス アカウントに cloudkms.cryptoKeyEncrypterDecrypter ロールを付与します。 |
再暗号化のトラブルシューティングの表
エラー: | 次のような問題が考えられます... | 次のことを試します... |
---|---|---|
Cloud KMS 鍵にアクセスできないため、CMEK リソースの再暗号化に失敗しました。主キーのバージョンが有効で、権限が正しく付与されていることを確認してください。 | 鍵バージョンが無効になっているか、適切な権限が付与されていない。 | Cloud KMS 鍵バージョンを再度有効にします。 鍵をホストする Google Cloud プロジェクトで、ユーザーまたはサービス アカウントに |
サーバー内部エラーが発生したため、CMEK リソースの再暗号化に失敗しました。しばらくしてからもう一度お試しください | サーバー内部エラーが発生しました。 | 再暗号化を再試行します。詳細については、既存の CMEK 対応インスタンスまたはレプリカを再暗号化するをご覧ください。 |