Cloud SQL のトラブルシューティング

このページでは、データベース エンジンに固有ではない Cloud SQL の問題のトラブルシューティングについて説明します。

このページには次のトピックが含まれています。

バックアップと復元

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
現在のオペレーションのステータスを確認できない。 ユーザー インターフェースには成功または失敗のみが表示されます。 詳細については、これらのデータベース コマンドをご覧ください。
オペレーションの開始元が見つからない。 ユーザー インターフェースにはオペレーションを開始したユーザーは表示されません。 監査ログを使用して確認します。
自動バックアップ中のディスク容量が不足する。 インスタンスがハードディスクの容量の上限に達しました。 ファイル システムのサイズと割り当てを確認します
インスタンスの削除後にバックアップを実行できない。 インスタンスが削除されました。 エクスポートから再作成するか、猶予期間内であればカスタマー サポートにお問い合わせください。
自動バックアップが停止している可能性がある。 バックアップ時間はデータベースのサイズと相関しています。 オペレーションをキャンセルする必要がある場合は、カスタマー サポートお問い合わせください
復元に失敗した。 ダンプファイルに、まだ存在していないデータベース ユーザーが含まれている可能性があります。 復元する前にデータベース ユーザーを作成します
このインスタンスに対するオペレーションが無効。 コピー先インスタンスのサイズがコピー元よりも小さくなります。 宛先インスタンスのサイズを増やします
自動バックアップを保持する日数を増やす。 保持される自動バックアップは 7 つのみです。 手動バックアップを管理します
バックアップ失敗時の不明なエラー。 バックアップがタイムアウトした可能性があります。 これらのフラグを確認します。
バックアップの失敗について通知されない。 デフォルトの通知はありません。 カスタム アラートを設定してください。

現在のオペレーションのステータスを確認できない

Google Cloud Console でオペレーションのステータスを確認することはできません。

次のような問題が考えられます

Google Cloud Console では、完了時に成功または失敗のみが表示され、警告は返されません。

次の方法をお試しください

データベースに接続し、SHOW WARNINGS を実行します。


オペレーションの開始元が見つからない

オンデマンド バックアップ オペレーションを開始したユーザーを確認する場合。

次のような問題が考えられます

Google Cloud Console のインスタンス オペレーション ページには、オペレーションを開始したユーザーは表示されません。

次の方法をお試しください

ログを確認し、テキストでフィルタしてユーザーを見つけます。個人情報の監査ログが必要になる場合があります。関連するログファイルは次のとおりです。

  • Cloud Audit Logs が有効になっている場合は、cloudaudit.googleapis.com/activity も使用できます。


インスタンスの削除後にバックアップを実行できない

インスタンスを削除した後はバックアップを実行できません。

次のような問題が考えられます

インスタンスが削除されました。

次の方法をお試しください

  • Cloud SQL インスタンスの削除の猶予期間は 4 日間です。 この間、カスタマー サポートがインスタンスを再作成できます。インスタンスを削除した後は、データを復元できません。
  • エクスポートを行った場合は、新しいインスタンスを作成してからインポートを実行して、データベースを再作成できます。エクスポートでは Cloud Storage への書き込みが行われ、インポートでは Cloud Storage からの読み取りが行われます。

自動バックアップが停止している

自動バックアップが長時間停止していて、キャンセルできません。

次のような問題が考えられます

データベースのサイズによっては、バックアップに時間がかかる可能性があります。

次の方法をお試しください

オペレーションをキャンセルする必要がある場合は、カスタマー サポートにインスタンスの force restart を依頼できます。


バックアップからの復元が失敗した

SQL ダンプファイルで参照されているユーザーが存在しない場合、復元オペレーションが失敗する可能性があります。

次のような問題が考えられます

SQL ダンプを復元する前に、オブジェクトを所有しているか、またはダンプされたデータベース内のオブジェクトに対する権限が付与されているデータベース ユーザーが存在する必要があります。 そうでない場合、復元で、元の所有権や権限でのオブジェクトの再作成に失敗します。

次の方法をお試しください

SQL ダンプから復元する前に、データベース ユーザーを作成します。


このインスタンスに対するオペレーションが無効

instances.restoreBackup に対する API 呼び出しからのエラー メッセージ HTTP Error 400: This operation isn't valid for this instance が表示されます。

次のような問題が考えられます

バックアップ サイズ(XX GB)がストレージ サイズ(YY GB)より小さいインスタンスには、バックアップから復元できません。

次の方法をお試しください

ターゲット インスタンスを編集して、ストレージ サイズを増やします。


自動バックアップを保持する日数を増やす

自動バックアップを保持できる日数を 7 日から 30 日以上に増やす場合。

次のような問題が考えられます

保持されるバックアップは 7 つのみです。バックアップの保持には費用がかかり、ディスク容量が必要となるため、バックアップは定期的に削除されます。残念ながら、現在表示されているバックアップのみが復元可能な自動バックアップです。

次の方法をお試しください

バックアップを無期限に保持する場合、自動バックアップと同じ方法で削除されないので、オンデマンド バックアップを作成します。 オンデマンド バックアップは無期限に維持されます。つまり、削除されるか、そのインスタンスが属しているインスタンスが削除されるまで保持されます。このタイプのバックアップは自動的に削除されないため、課金に影響する可能性があります。


バックアップ失敗時の不明なエラー

バックアップに失敗すると、Unknown error と表示されます。

次のような問題が考えられます

バックアップの作成の時間が、タイムアウト時間である 10 分に達しています。自動バックアップには 10 分のタイムアウトが設定されており、その時間内にバックアップが終了することになっています。

次の方法をお試しください

バックアップの作成に影響するフラグは checkpoint_timeoutcheckpoint_completion_target の 2 つです。バックアップの開始時に slow チェックポイントが実行されます。このチェックポイントは、checkpoint_completion_targetcheckpoint_timeout を掛けた時間がかかります。

例: 900 sec * 0.9 sec = 810 sec = 13.5 min。このため、タイムアウトが発生します。この場合は、checkpoint_completion_target の値を減らすことにより問題が解決されます。

バックアップの失敗について通知されない

自動バックアップが失敗しましたが、通知を受信しませんでした。

考えられる原因

自動バックアップに失敗すると、Cloud SQL インスタンスの Details ページに Operation error メッセージが表示されます。バックアップに失敗してもメール通知は送信されません。

次の方法をお試しください

Monitoring アラートを作成するか、Error Reporting 通知を使用して、独自のカスタム通知を設定します。

クローンの作成

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
constraints/sql.restrictAuthorizedNetworks エラーでクローンの作成に失敗する。 Authorized Networks 構成によってブロックされています。 こちらのいずれかをお試しください。

constraints/sql.restrictAuthorizedNetworks エラーでクローンの作成に失敗する

constraints/sql.restrictAuthorizedNetworks エラーが表示され、クローンの作成に失敗します。

次のような問題が考えられます

クローン作成のオペレーションが、Authorized Networks 構成によってブロックされている。Authorized Networks は、Google Cloud Console の [接続] セクションでパブリック IP アドレスに構成されており、セキュリティに関する考慮事項により、クローン作成が許可されていません。

次の方法をお試しください

可能であれば、Cloud SQL インスタンスからすべての Authorized Networks エントリを削除します。それができない場合は、Authorized Networks エントリなしでレプリカを作成します。

接続

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
Unauthorized to connect エラー。 多くの根本原因が考えられます。 次の方法をお試しくださいをご覧ください。
ネットワークの関連付けに失敗した。 プロジェクトで Service Networking API が有効になっていません。 プロジェクトで Service Networking API を有効にします
Remaining connection slots are reserved 最大接続数に達しました。 max_connections フラグの値を大きくします
Set Service Networking service account as servicenetworking.serviceAgent role on consumer project サービス アカウントのネットワーク権限がないか、正しくありません。 Service Networking API を無効にして、再度有効にします

接続が中断された

エラー メッセージ Got an error reading communication packets または Aborted connection xxx to db: DB_NAME が表示されます。

次のような問題が考えられます

  • ネットワークが不安定です。
  • TCP keep-alive コマンドに応答しません(クライアントまたはサーバーのいずれかが応答しないか、過負荷の可能性があります)。
  • データベース エンジン接続の存続期間を超過し、サーバーが接続を終了しています。

次の方法をお試しください

アプリケーションはネットワーク障害に対応し、接続プールや再試行などのベスト プラクティスに沿っている必要があります。通常、可能な場合は、接続プーラーによりこれらのエラーが検出されます。エラーが検出されない場合、アプリケーションは、再試行を行うか安全に失敗する必要があります。

接続の再試行には、次の方法をおすすめします。

  1. 指数バックオフ。再試行の間隔を指数関数的に増やします。
  2. ランダム化されたバックオフも追加します。
これらの方法を組み合わせると、スロットリングが減ります。


接続失敗

エラー メッセージ Unauthorized to connect が表示されます。

次のような問題が考えられます

承認はさまざまなレベルで行われるため、多くの原因が考えられます。

  • データベース レベルでは、データベース ユーザーが存在し、パスワードが一致する必要があります。
  • プロジェクト レベルでは、ユーザーに適切な IAM 権限がない可能性があります。
  • Cloud SQL レベルでは、根本原因はインスタンスへの接続方法によって異なります。パブリック IP を介してインスタンスに直接接続する場合、接続のソース IP がインスタンスの承認済みネットワーク内に存在している必要があります。

    デフォルトでは、RFC 1918 以外のアドレスから接続する場合を除き、プライベート IP 接続が許可されています。RFC 1918 以外のクライアント アドレスは、承認済みネットワークとして構成する必要があります。

    Cloud SQL は、デフォルトでは VPC から RFC 1918 以外のサブネット ルートを学習しません。RFC 1918 以外のルートをエクスポートするには、Cloud SQL へのネットワーク ピアリングを更新する必要があります。例:

    gcloud compute networks peerings update cloudsql-[mysql/postgres]-googleapis-com --network=NETWORK --export-subnet-routes-with-public-ip --project=PROJECT
    

    Cloud SQL Proxy 経由で接続する場合は、IAM 権限が適切に設定されていることを確認します。

  • ネットワーク レベルでは、Cloud SQL インスタンスでパブリック IP を使用している場合、接続のソース IP が承認済みネットワーク内に存在している必要があります。

次の方法をお試しください

  • ユーザー名とパスワードを確認します。
  • ユーザーの IAM のロールと権限を確認します。
  • パブリック IP を使用する場合は、ソースが承認済みネットワーク内に存在していることを確認します。

ネットワークの関連付けに失敗した

エラー メッセージ Error: Network association failed due to the following error が表示されます。サービス ネットワーキングのサービス アカウントをユーザープロジェクトの servicenetworking.serviceAgent ロールとして設定します。

次のような問題が考えられます

プロジェクトで Service Networking API が有効になっていません。

次の方法をお試しください

プロジェクトで Service Networking API を有効にします。Cloud SQL インスタンスにプライベート IP アドレスの割り当てを試行中で、共有 VPC を使用しているときにこのエラーが表示される場合は、ホスト プロジェクトに対して Service Networking API を有効にする必要もあります。


残りの接続スロットが予約済み

エラー メッセージ FATAL: remaining connection slots are reserved for non-replication superuser connections が表示されます。

次のような問題が考えられます

最大接続数に達しました。

次の方法をお試しください

max_connections フラグの値を編集します。max_connections を特定の値より大きくすると、SLA サポートが失われる可能性があります。


サービス ネットワーキングのサービス アカウントをユーザー プロジェクトの servicenetworking.serviceAgent ロールとして設定する

エラー メッセージ set Service Networking service account as servicenetworking.serviceAgent role on consumer project. が表示されます。

次のようなことが考えられます

ユーザーまたはサービス アカウントの権限が正しくありません。これは、Terraform 構成スクリプトなど自動セットアップ スクリプトの実行中に発生することがあります。

次の方法をお試しください

サービスの権限を修復するには、Service Networking API を無効にして 5 分待ち、再度有効にします。

インスタンスの作成

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
Internal error サービス ネットワーキングのサービス アカウントがありません。 Service Networking API を無効にしてから再度有効にします
Terraform インスタンスの作成に失敗した。 Terraform 構成エラー。 Terraform 構成ファイルを調べて修復します。
Terraform スクリプトの HTTP Error 409 別のオペレーションがすでに進行中です。 各オペレーションが完了するまで待機するように Terraform スクリプトを修正します。
Unknown error 最近削除したインスタンスと同じ名前のインスタンスを作成しようとしています。または、使用されている新しいプライベート IP 範囲で同時に複数のインスタンスを作成しようとしています。 インスタンスに別の名前を使用するか、インスタンスが削除されてから 1 週間経過するまで待ちます。異なる名前を使用して、連続的に失敗したインスタンスを再作成します

内部エラー

エラー メッセージ {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null} が表示されます。

次のような問題が考えられます

サービス プロジェクトに、この機能に必要なサービス ネットワーキング サービス アカウントがない可能性があります。

次の方法をお試しください

サービスの権限を修復するには、Service Networking API を無効にして 5 分待ち、再度有効にします。


Terraform インスタンスの作成に失敗した

Terraform インスタンスの作成に失敗しました。

次のような問題が考えられます

これは通常、Terraform スクリプト自体の問題です。

次の方法をお試しください

Terraform 構成ファイルを調べて修復します。


Terraform スクリプトの 409 エラー

Terraform スクリプトにエラー メッセージ HTTP Error 409 が表示されます。

次のような問題が考えられます

Operation failed because another operation was already in progress

次の方法をお試しください

スクリプトを修正して、各インスタンスのオペレーションが完了するまで実行を停止します。スクリプトをポーリングして、前のオペレーション ID の 200 が返されるまで待ってから、次のステップに進みます。


不明なエラー

インスタンスを作成しようとすると、Cloud SQL creation failed, error UNKNOWN のようなエラー メッセージが表示されます。

次のような問題が考えられます

最近削除したインスタンスの名前を再利用しようとしている可能性があります。インスタンス名を削除した後、1 週間は再利用できません。または、最初のインスタンスのみが作成され、他のインスタンスが Unknown error で失敗したときに、新しいプライベート IP 範囲を使用して複数のインスタンスを同時に作成しようとしています。

次の方法をお試しください

インスタンスに別の名前を使用するか、その名前を使用して新しいインスタンスを作成します。複数のインスタンスを同時に作成するのではなく、連続して作成します。

高可用性

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
手動フェイルオーバーの指標が見つからない。 自動フェイルオーバーのみが指標に含まれます なし
CPU と RAM の使用率がほぼ 100% インスタンスのマシンサイズが負荷に対して小さすぎます。 インスタンスのマシンサイズをアップグレードします

手動フェイルオーバーの指標が見つからない

手動フェイルオーバーを実行しましたが、自動フェイルオーバーの指標に対応するエントリが Metrics Explorer で見つかりません。

次のような問題が考えられます

自動フェイルオーバーのみが指標に含まれます。手動で開始されたフェイルオーバーには指標が含まれません。

次の方法をお試しください

なし


CPU と RAM の使用率がほぼ 100%

Cloud SQL インスタンス リソース(CPU と RAM)の使用率が 100% に近いため、高可用性インスタンスが停止します。

次のような問題が考えられます

インスタンスのマシンサイズが負荷に対して小さすぎます。

次の方法をお試しください

インスタンスを編集してより大きなマシンサイズにアップグレードし、CPU とメモリのサイズを大きくします。

インポートとエクスポート

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
オペレーションのステータスを確認できない。 ユーザー インターフェースには成功または失敗のみが表示されます。 詳細については、これらのデータベース コマンドをご覧ください。
エクスポートに時間がかかりすぎる。 Cloud SQL では同時実行オペレーションの同期がサポートされません。 エクスポートのオフロードを使用します。詳細
インポートに時間がかかりすぎる。 アクティブな接続が多すぎると、インポート オペレーションが妨げられる可能性があります。 未使用の接続を閉じるか、インポート オペレーションを開始する前に Cloud SQL インスタンスを再起動してください。
インポートに失敗した。 エクスポートされたファイルに、まだ存在しないデータベース ユーザーが含まれている可能性があります。 インポートを行う前に、データベース ユーザーを作成します。
エクスポート オペレーション中に接続が切断した。 クエリで最初の 7 分以内にデータを生成する必要があります。 クエリを手動でテストします。詳細については、こちらをご覧ください。
エクスポート中に不明なエラーが発生した。 帯域幅の問題である可能性があります。 インスタンスと Cloud Storage バケットの両方が同じリージョンに存在することを確認します
エクスポートを自動化する場合。 Cloud SQL には、エクスポートを自動化する方法がありません。 この機能を実行する独自のパイプラインを構築します。 詳細については、こちらをご覧ください。
ERROR_RDBMS: system error occurred Cloud Storage の権限またはテーブルが存在しません。 権限を確認するか、テーブルが存在することを確認します

オペレーションのステータスを確認できない

進行中のオペレーションのステータスが表示されません。

次のような問題が考えられます

Google Cloud Console では、完了時に成功または失敗のみが表示され、警告は返されません。

次の方法をお試しください

データベースに接続し、SHOW WARNINGS を実行します。


エクスポートに時間がかかりすぎる

エクスポートに時間がかかりすぎるため、他のオペレーションをブロックします。

次のような問題が考えられます

Cloud SQL では同時実行オペレーションの同期がサポートされません。

次の方法をお試しください

サイズの小さい多数のデータセットを一度にエクスポートしてみてください。


インポートに時間がかかりすぎる

インポートに時間がかかりすぎるため、他のオペレーションをブロックしています。

考えられる原因

アクティブな接続が多すぎると、インポート オペレーションが妨げられる可能性があります。CPU とメモリが接続のために消費されると、使用可能なリソースが制限されます。

次の方法をお試しください

未使用のオペレーションを終了します。CPU とメモリ使用量を確認して、使用可能なリソースが十分にあるようにします。インポート オペレーションの最大リソースを確保するために、オペレーションを開始する前にインスタンスを再起動することをおすすめします。再起動:

  • すべての接続を閉じます。
  • リソースを消費している可能性のあるタスクをすべて終了します。


インポートに失敗した

エクスポートされた SQL ダンプファイルで参照されているユーザーが存在しない場合、インポートは失敗します。

次のような問題が考えられます

SQL ダンプをインポートする前に、オブジェクトを所有しているか、またはダンプされたデータベース内のオブジェクトに対する権限が付与されているデータベース ユーザーが存在する必要があります。 そうでない場合、復元で、元の所有権や権限でのオブジェクトの再作成に失敗します。

次の方法をお試しください

SQL ダンプをインポートする前に、データベース ユーザーを作成します。


エクスポート オペレーション中に接続が切断された

エクスポート オペレーション中に接続が切断しました。

次のような問題が考えられます

エクスポートが開始されてから最初の 7 分以内に、エクスポートで実行されているクエリでデータが生成されないため、Cloud Storage への接続がタイムアウトする可能性があります。

次の方法をお試しください

次のコマンドを使用して任意のクライアントから接続し、クエリの出力を標準出力に送信して、クエリを手動でテストします。

COPY (INSERT_YOUR_QUERY_HERE) TO STDOUT WITH ( FORMAT csv, DELIMITER ',', ENCODING 'UTF8', QUOTE '"', ESCAPE '"' )

これは、エクスポートが開始されるとすぐにクライアントからデータの送信が開始されるためです。データが送信されていない接続を維持すると、最終的に接続が切断されてエクスポートが失敗し、操作が不確定な状態になります。また、gcloud からのエラー メッセージは次のように表示されます。

operation is taking longer than expected


エクスポート中に不明なエラーが発生した

データベースを Cloud Storage バケットにエクスポートしようとすると、エラー メッセージ Unknown error が表示されます。

次のような問題が考えられます

帯域幅の問題が原因で転送が失敗する可能性があります。

次の方法をお試しください

Cloud SQL インスタンスが Cloud Storage バケットとは異なるリージョンに存在している可能性があります。ある大陸から別の大陸へのデータの読み取りと書き込みではネットワークの使用量が多く、このような断続的な問題を引き起こす可能性があります。インスタンスとバケットのリージョンを確認します。


エクスポートを自動化する

エクスポートを自動化する場合。

次のような問題が考えられます

Cloud SQL には、エクスポートを自動化する方法がありません。

次の方法をお試しください

Google Cloud プロダクト(Cloud Scheduler、Pub/Sub、Cloud Functions)を使用して、独自の自動エクスポート システムを構築できます。詳細については、こちらをご覧ください。


ERROR_RDBMS システムエラーが発生した

エラー メッセージ [ERROR_RDBMS] system error occurred が表示されます。

次のような問題が考えられます

  • ユーザーが必要なすべての Cloud Storage 権限を持っていない可能性があります。
  • データベース テーブルが存在しない可能性があります。

次の方法をお試しください

  1. バケットに対して少なくとも WRITER 権限があり、エクスポート ファイルに対して READER 権限があることを確認してください。Cloud Storage のアクセス制御の構成について詳しくは、アクセス制御リストの作成と管理をご覧ください。
  2. テーブルが存在していることを確認します。存在している場合は、バケットに対して正しい権限があることを確認します。

ロギング

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
ロギングで大量の CPU とメモリを使用している。 ロギングを調整する必要があります。 ロギング リソースの使用量を調整してみてください。
監査ログが見つからない。 ユーザー認証。 ユーザーロールと権限を確認します
ログにオペレーション情報が見つからない。 監査ログは有効になっていません。 監査ロギングを有効にします

ロギングで大量の CPU とメモリを使用している

ロギングで大量の CPU とメモリを使用しています。

次のような問題が考えられます

ロギングの使用量を調整する必要があります。

次の方法をお試しください

log_statement フラグを「なし」、logging_collector フラグを「オフ」に設定できます。ロギングがまだ行われている場合は、他のログ関連のフラグを調整できます。インスタンスを編集して、これらのフラグを変更できます。


監査ロギング

Cloud SQL の監査ロギングを有効にしたが、Cloud Logging で監査ログが見つからない

次のような問題が考えられます

オペレーションが、ユーザー作成データを作成、変更、または読み取る認証済みのユーザー ドリブン API 呼び出しの場合、またはリソースの構成ファイルまたはメタデータにアクセスした場合にのみ、データアクセス ログに書き込まれます。

次の方法をお試しください

オペレーションを実行するユーザーのロールと権限を確認します。


オペレーションの情報がログに見つからない

オペレーションの詳細を確認する場合。たとえば、ユーザーが削除されたものの、誰が行ったかを確認できない場合。ログには開始されたオペレーションが表示されますが、それ以上の情報は提供されません。

次のような問題が考えられます

このような詳細な個人情報(PII)を記録するには、監査ロギングを有効にする必要があります。

次の方法をお試しください

プロジェクトで監査ロギングを有効にします。

インスタンスの管理

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
一時ストレージにより、自動ストレージが増加した。 自動ストレージが有効になっています。 再起動すると一時ファイルは削除されますが、保存容量は減りません。インスタンスのサイズをリセットできるのはカスタマー サポートのみです。詳細については、こちらをご覧ください。
データが自動的に削除される。 どこかでこれを行うスクリプトが実行されています。 スクリプトの検索を試してください。
インスタンスを削除できない。 複数の根本原因が存在している可能性があります。 複数のソリューションが存在している可能性があります。
一時的なデータサイズが大きいためにインスタンスが停止する。 一度に作成された一時テーブルが多すぎます。 インスタンスを再起動し、この緩和策オプションをお試しください。
アップグレード中の致命的なエラー。 さまざまな原因が考えられます。 ログに詳細情報が表示される場合があります。強制的に再起動するには、カスタマー サポートにお問い合わせください。
ディスク容量が不足した後、再起動時にインスタンスが停止する。 自動ストレージ増加機能が有効になっていません。 ストレージの自動増量を有効にします
再起動時のシャットダウンに時間がかかります。 60 秒後に終了してない未処理の接続によって、クリーンでないシャットダウンが発生する可能性があります。 接続時間が 60 秒未満の場合のみ
Access denied for user ユーザー認証、または期限切れの SSL / TLS 証明書。 ユーザーと証明書のステータスを確認します。
ユーザーを削除できない。 ユーザーがデータベース内のオブジェクトを所有している可能性があります。 オブジェクトの削除または再割り当てが必要となる可能性があります。
共有 VPC の既存のインスタンスにプライベート IP アドレスを割り当てることができない。 インスタンスのアドレスは、作成時にプロジェクトに関連付けられます。 新しい Cloud SQL インスタンスを作成して、既存のインスタンスを置き換えます。
特定のクエリの実行が遅い。 データベースに固有の問題またはネットワーク レイテンシ。 おすすめの方法をご覧ください。
メモリ不足が示されているが、モニタリング グラフに表示されない。 一部の RAM が内部オーバーヘッド プロセスで使用されている可能性があります。 インスタンスに、ワークロードの十分なオーバーヘッドがあることを確認してください。


一時ストレージにより、自動ストレージが増加した

一時テーブルのストレージ使用量が増えたため、自動ストレージが増えました。

次のような問題が考えられます

自動ストレージが有効になっています。

次の方法をお試しください

一時テーブルを削除するために再起動しても、自動的に増加するストレージ サイズは減少しません。


データが自動的に削除される

データが一定の間隔で自動的に削除されます。

次のような問題が考えられます

ほとんどの場合、スクリプトが環境内のどこかで実行されています。

次の方法をお試しください

削除時刻の前後のログで、ダッシュボードや別の自動プロセスから不正なスクリプトが実行されていないかどうかを確認します。


インスタンスを削除できない

エラー メッセージ 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 である可能性があります。

次のような問題が考えられます

  1. 別のオペレーションが進行中です。
  2. INSTANCE_RISKY_FLAG_CONFIG 警告は、少なくとも 1 つの beta フラグが使用されるたびにトリガーされます。

次の方法をお試しください

  1. Cloud SQL オペレーションは同時には実行されません。他のオペレーションが完了するのをお待ちください。
  2. 危険なフラグ設定を削除して、インスタンスを再起動します。

一時的なデータサイズが大きいためにシステムが停止する

一時的なデータサイズが大きいためにシステムが停止します。

次のような問題が考えられます

クエリと負荷に応じて、一度に多数の一時テーブルを作成できます。

次の方法をお試しください

残念ながら、サービスの再起動以外の方法で ibtmp1 ファイルを圧縮することはできません。

緩和策の 1 つは、ROW_FORMAT=COMPRESSED を使用して一時テーブルを作成し、一時ファイル ディレクトリ内の file-per-table テーブルスペースに保存することです。ただし、各一時テーブルの file-per-table テーブルスペースの作成と削除によって、パフォーマンスが低下します。


アップグレード中の致命的なエラー

インスタンスのリソースをアップグレードすると、エラー メッセージ ERROR_INTERNAL_FATAL が表示されます。

次のような問題が考えられます

さまざまな原因が考えられます。

次の方法をお試しください

ログに詳細が表示される場合がありますが、インスタンスを強制的に再作成するにはカスタマー サポートが必要になる場合があります。


ディスク容量が不足した後、再起動時にインスタンスが停止する

ディスク容量が不足した後、再起動時にインスタンスが停止します。

次のような問題が考えられます

自動ストレージ増加機能が有効になっていません。

次の方法をお試しください

インスタンスのストレージが不足し、ストレージの自動増加機能が有効になっていない場合、インスタンスはオフラインになります。この問題を回避するには、インスタンスを編集して、ストレージの自動増加を有効にします。



再起動時のシャットダウンが遅い

再起動時のシャットダウンに時間がかかります。

次のようなことが考えられます

インスタンスをシャットダウンしたときに、60 秒以内に終了しない未処理の接続があると、クリーンでないシャットダウンが発生します。

次の方法をお試しください

接続が 60 秒未満の場合は、データベース コマンドのプロンプトからの接続を含めて、ほとんどのクリーンでないシャットダウンを回避できます。これらの接続を数時間または数日間維持すると、クリーンでないシャットダウンが発生する場合があります。


ユーザーのアクセスが拒否された

エラー メッセージ Access denied for user 'XXX'@'XXX' (using password: XXX) が表示されます。

次のような問題が考えられます

次のようないくつかの原因が考えられます。

  • ユーザー名(またはパスワード)が正しくない。
  • ユーザーが @XXX 以外から接続している。
  • ユーザーが、接続しようとしているデータベースに対する適切な権限を持っていない。

次の方法をお試しください

  • ユーザー名と対応するパスワードを確認します
  • 接続元をチェックして、ユーザーがアクセス権を持っている場所と一致しているかどうかを確認します。
  • データベース内のユーザーの権限をチェックします。

ユーザーを削除できない

データベース ユーザーを削除することはできません。

次のような問題が考えられます

データベースに依存しているオブジェクトがあります。これらのオブジェクトを削除するか、別のユーザーに再度割り当てる必要があります。

次の方法をお試しください

ユーザーに依存しているオブジェクトを特定し、それらのオブジェクトをドロップするか、別のユーザーに再度割り当てます。


共有 VPC の既存のインスタンスにプライベート IP アドレスを割り当てることができない

共有 VPC の既存のインスタンスにプライベート IP アドレスを割り当てることができません。

次のような問題が考えられます

その理由は、Cloud SQL インスタンスが作成されると自動でテナント プロジェクトに接続され、同じプロジェクト内のすべての Cloud SQL インスタンスも接続されるためです。ただし、作成されたインスタンスが共有 VPC でプライベート IP を使用している場合は、共有 VPC ホスト プロジェクトに関連付けられたテナント プロジェクトに接続されます。

次の方法をお試しください

新しい Cloud SQL インスタンスを作成して、既存のインスタンスを置き換えることが可能です。


特定のクエリの実行が遅い

CPU 使用率が常に高くなっています。

次のような問題が考えられます

クエリは多くの理由で遅くなることがあります。主に特定のデータベース側による原因です。Cloud SQL がネットワーク レイテンシに関係する理由の 1 つは、ソース(ライターまたはリーダー)リソースと宛先(Cloud SQL)リソースが異なるリージョンに存在していることです。

次の方法をお試しください

特に、一般的なパフォーマンスのヒントをご覧ください。

データベースの挿入、更新、削除が遅い場合は、次のことを考慮します。

  • 書き込みとデータベースの場所を確認します。データの送信距離が長いと、レイテンシが発生します。
  • 読み取りとデータベースの場所を確認します。レイテンシは、書き込みパフォーマンスより読み取りパフォーマンスに大きく影響します。
レイテンシを低減するために、ソースリソースと宛先リソースの両方を同じリージョンに配置することをおすすめします。


メモリ不足が示されているが、モニタリング グラフに表示されない

インスタンスが失敗し、Out of memory が報告されていますが、コンソールまたは {monitoring_name} グラフにはメモリがまだ残っていると表示されているようです。

次のような問題が考えられます

ワークロード以外にも、アクティブな接続の数や内部オーバーヘッド プロセスなど、メモリ使用量に影響を与える可能性のある要因があります。こうしたことが常にモニタリング グラフに反映されるとは限りません。

次の方法をお試しください

インスタンスに、ワークロードと追加のオーバーヘッドを考慮するために十分なオーバーヘッドがあることを確認してください。

レプリケーション

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
リードレプリカの作成時にレプリケーションが開始されなかった。 バイナリ ロギングを有効にした後に、少なくとも 1 つのバックアップが作成されている必要があります。 バイナリログを有効にした後、少なくとも 1 つのバックアップが作成されるまで待ちます
リードレプリカを作成できない - 不明なエラー。 多くの根本原因が考えられます。 ログで詳細を確認します
ディスクに空きがない。 レプリカの作成中にプライマリ インスタンスのディスクの空きがなくなる可能性があります。 プライマリ インスタンスをより大きなディスクサイズにアップグレードします
レプリカ インスタンスのメモリ使用量が多すぎる。 レプリカは、頻繁にリクエストされる読み取りオペレーションをキャッシュに保存できます。 レプリカ インスタンスを再起動して、一時メモリ領域を再利用します。
レプリケーションが停止しました。 保存容量の上限に達しましたが、保存容量の自動増加が有効になっていません。 ストレージの自動増量を有効にします
レプリケーション ラグが常に大きい。 多くの根本原因が考えられます。 レプリカのインスタンス サイズを大きくするか、データベースの負荷を軽減します

リードレプリカの作成時にレプリケーションが開始されなかった

リードレプリカの作成時にレプリケーションが開始されませんでした。

次のような問題が考えられます

プライマリ インスタンスには少なくとも 1 週間分の binlog が必要です。存在しない場合、レプリカは複製を開始できません。

次の方法をお試しください

binlog が十分な数になるまで待ちます。


リードレプリカを作成できない - 不明なエラー

リードレプリカを作成できません - unknown error

次のような問題が考えられます

ログファイルに、より具体的なエラーが表示される可能性があります。

次の方法をお試しください

Cloud Logging のログを調べて、実際のエラーを確認します。エラーが set Service Networking service account as servicenetworking.serviceAgent role on consumer project の場合は、Service Networking API を無効にしてから再度有効にします。 この措置で、プロセスを続行するために必要なサービス アカウントが作成されます。


ディスクに空きがない

error: disk is full

次のようなことが考えられます

レプリカの作成中にプライマリ インスタンスのディスクの空きがなくなる可能性があります。

次の方法をお試しください

プライマリ インスタンスを編集して、より大きなディスクサイズにアップグレードします。


レプリカ インスタンスのメモリ使用量が多すぎる

レプリカ インスタンスのメモリ使用量が多すぎます。

次のような問題が考えられます

レプリカは一時メモリを使用して頻繁にリクエストされる読み取りオペレーションをキャッシュするため、プライマリ インスタンスより多くのメモリを使用する可能性があります。

次の方法をお試しください

レプリカ インスタンスを再起動して、一時メモリ領域を再利用します。


レプリケーションが停止した

レプリケーションが停止しました。

次のような問題が考えられます

保存容量の上限(>automatic storage increase is disabled)に達しました。

次の方法をお試しください

インスタンスを編集して automatic storage increase を有効にします。


レプリケーション ラグが常に大きい

レプリケーション ラグが常に大きい。

次のような問題が考えられます

書き込みの負荷が大きすぎてレプリカで処理できません。レプリケーション ラグは、レプリカの SQL スレッドで IO スレッドに対応できない場合に発生します。クエリやワークロードによっては、特定のスキーマで一時的または永続的に高いレプリケーション ラグが発生することがあります。レプリケーション ラグの一般的な原因は次のとおりです。

  • すべてのテーブルに一意のキーまたは主キーが必要です。一意のキーまたは主キーのないテーブルを更新するたびに、レプリカでテーブル全体がスキャンされます。
  • DELETE ... WHERE field < 50000000 などのクエリでは、レプリカに膨大な数の更新が蓄積されるため、行ベースのレプリケーションでレプリケーション ラグが発生します。

次の方法をお試しください

インスタンスを編集して、レプリカのサイズを増やすか、データベースの負荷を軽減します。