このページでは、サポートされているデータベース エンジンで発生する Cloud SQL に関する問題のトラブルシューティングを行う際のヒントを紹介します。これらのヒントには特定のデータベース エンジンだけに適用されるものと、データベース エンジン全般に共通なものがあります。
特定のデータベース エンジンのトラブルシューティングのヒントについては、該当する各ページをご覧ください。
次のいずれかのページで、質問や問題がすでに解決されていないかを確認してください。
このページには次のトピックが含まれています。
- バックアップとリカバリ
- クローンの作成
- 接続
- インスタンスの作成
- 外部プライマリ
- 外部レプリカ
- フラグ
- 高可用性
- インポートとエクスポート
- Vertex AI との統合
- リンクされているサーバー
- Logging
- インスタンスの管理
- Private Service Connect
- レプリケーション
バックアップとリカバリ
問題 | トラブルシューティング |
---|---|
現在のオペレーションのステータスを確認できない。 | Google Cloud Console では、オペレーションの完了時に成功または失敗のみが表示されます。警告やその他の情報を表示するように設計されていません。 特定の Cloud SQL インスタンスのすべてのオペレーションを確認するには、 |
オンデマンド バックアップ オペレーションを開始したユーザーを確認したい。 | オペレーションを開始したユーザーはユーザー インターフェースに表示されません。 ユーザーを特定するには、ログを表示してテキストでフィルタします。個人情報の監査ログが必要になる場合があります。関連するログファイルは次のとおりです。
|
インスタンスを削除すると、その後インスタンスのバックアップは作成できません。 | インスタンスの完全削除後にデータを復元することはできません。ただし、インスタンスが復元されると、バックアップも復元されます。削除したインスタンスの復元について詳しくは、復元バックアップをご覧ください。 エクスポートを行っていれば、新しいインスタンスを作成してインポートを行い、データベースを再作成できます。エクスポートでは Cloud Storage への書き込みが行われ、インポートでは Cloud Storage からの読み取りが行われます。 |
自動バックアップが長時間停止していて、キャンセルできない。 | データベースのサイズによっては、バックアップに時間がかかる可能性があります。 オペレーションをキャンセルする必要がある場合は、カスタマー サポートにインスタンスの |
SQL ダンプファイルで参照されているユーザーが存在しない場合、復元オペレーションが失敗する可能性があります。 | SQL ダンプを復元する前に、オブジェクトを所有しているデータベース ユーザーか、ダンプされたデータベース内のオブジェクトに対する権限が付与されているデータベース ユーザーが、ターゲット データベース内に存在している必要があります。そうでない場合、復元オペレーションを実行すると、元の所有権または権限でのオブジェクトの再作成に失敗します。 SQL ダンプを復元する前に、データベース ユーザーを作成します。 |
自動バックアップの保持日数を 7 日から 30 日以上に増やしたい。 | 保持する自動バックアップ数を構成できます。自動バックアップは、構成された保持値に基づいて定期的に削除されます。復元可能な自動バックアップは、現在表示されているバックアップだけです。 バックアップを無期限に保持する場合は、オンデマンド バックアップを作成します。オンデマンド バックアップは、自動バックアップと同じ方法では削除されません。オンデマンド バックアップは無期限に維持されます。つまり、削除されるか、所属するインスタンスが削除されるまで保持されます。このタイプのバックアップは自動的に削除されないため、課金に影響する可能性があります。 |
自動バックアップが失敗したときにメール通知を受信できない。 | Cloud SQL からバックアップのステータスの通知を受信するには、ログベースのアラートを構成します。 |
インスタンスがエラー状態とバックアップ復元状態の間でループしているため、インスタンスが繰り返し失敗する。復元後にデータベースに接続して使用しようとすると失敗する。 |
次の方法をお試しください。
|
バックアップ / 復元オペレーションを実行したときにデータの欠落が見つかることがあります。 | テーブルがログに記録されずに作成されました。次に例を示します。
これらのテーブルはバックアップからの復元には含まれません。
解決策としては、バックアップを使用してテーブルを復元する場合に、ログに記録されていないテーブルを使用しないことです。すでにログに記録されていないテーブルがあるデータベースから復元する場合は、データベースをファイルにダンプし、これらのテーブルのダンプ済みファイルを |
クローン
問題 | トラブルシューティング |
---|---|
constraints/sql.restrictAuthorizedNetworks エラーでクローンの作成に失敗する。 |
クローン作成のオペレーションが、Authorized Networks 構成によってブロックされている。Authorized Networks は、Google Cloud Console の [接続] セクションでパブリック IP アドレスに構成されており、セキュリティに関する考慮事項により、クローン作成が許可されていません。可能であれば、Cloud SQL インスタンスからすべての |
エラー メッセージ: Failed to create subnetwork. Couldn't find free
blocks in allocated IP ranges. Please allocate new ranges for this service
provider. Help Token: [help-token-id]. |
Google Cloud コンソールを使用して、プライベート IP アドレスを持つインスタンスのクローンを作成しようとしていますが、割り振られた IP 範囲を指定しなかったため、ソース インスタンスが指定した範囲で作成されていません。その結果、クローニングされたインスタンスはランダムな範囲に作成されます。
|
接続
問題 | トラブルシューティング |
---|---|
Aborted connection . |
次のような問題が考えられます。
アプリケーションは、接続プールや再試行などのベスト プラクティスに従ってネットワーク障害に対応する必要があります。通常、可能であれば、これらのエラーが接続プーラーによって検出されます。エラーが検出されない場合、アプリケーションは、再試行するか安全に失敗する必要があります。 接続の再試行には、次の方法をおすすめします。
これらの方法を組み合わせると、スロットリングが減ります。 |
FATAL: database 'user' does not exist . |
gcloud sql connect --user はデフォルトの postgres ユーザーでのみ機能します。デフォルト ユーザーで接続してから、ユーザーを変更します。 |
接続されているユーザーを確認する必要があります。 | データベースにログインし、次のコマンドを実行します。SELECT datname, usename, application_name as appname, client_addr, state, now() - backend_start as conn_age, now() - state_change as last_activity_age FROM pg_stat_activity WHERE backend_type = 'client backend' ORDER BY 6 DESC LIMIT 20 |
インスタンスの作成
問題 | トラブルシューティング |
---|---|
エラー メッセージ: Failed to create subnetwork. Router status is
temporarily unavailable. Please try again later. Help Token:
[token-ID] |
Cloud SQL インスタンスをもう一度作成してみてください。 |
エラー メッセージ: Failed to create subnetwork. Required
'compute.projects.get' permission for PROJECT_ID |
プライベート IP アドレスを使用してインスタンスを作成すると、Service Networking API を使用してサービス アカウントがジャスト イン タイムで作成されます。Service Networking API を最近有効にしたばかりの場合は、サービス アカウントが作成されず、インスタンスの作成が失敗する可能性があります。この場合、サービス アカウントがシステム全体に伝播するのを待つか、必要な権限を使用して手動で追加する必要があります。 |
エクスポート
問題 | トラブルシューティング |
---|---|
HTTP Error 409: Operation failed because another operation was
already in progress. |
保留中のオペレーションがインスタンスにすでに存在しています。一度に実行できるオペレーションは 1 つだけです。現在のオペレーションが完了してからリクエストを試してください。 |
HTTP Error 403: The service account does not have the required
permissions for the bucket. |
バケットが存在し、バケットへのエクスポートを許可する Storage Object Creator ロール(roles/storage.objectCreator )が Cloud SQL インスタンス用のサービス アカウント(エクスポートを行っているアカウント)に付与されていることを確認します。Cloud Storage に適用される IAM ロールをご覧ください。 |
CSV のエクスポートは機能したが、SQL エクスポートに失敗した。 | CSV 形式と SQL 形式ではエクスポート方法が異なります。SQL 形式ではデータベース全体がエクスポートされるため、完了までに時間がかかります。CSV 形式ではエクスポートに含めるデータベースの要素を定義できます。 CSV エクスポートを使用して必要なものだけをエクスポートします。 |
エクスポートに時間がかかりすぎる。 | Cloud SQL では同時実行オペレーションの同期がサポートされません。 エクスポートをオフロードします。エクスポートをオフロードするときに、Cloud SQL はソース インスタンスでエクスポートを発行するのではなく、オフロード インスタンスを起動してエクスポートを実行します。エクスポート オフロードには、ソース インスタンスでのパフォーマンス向上、エクスポート実行中の管理オペレーションのブロック解除などの利点があります。エクスポート オフロードでは、合計レイテンシがオフロード インスタンスの起動時間まで増加する可能性があります。一般に、適当なサイズのエクスポートでは、レイテンシは重要ではありません。ただし、エクスポートが小さい場合、レイテンシが増加することがあります。 |
拡張機能の作成のエラー。 | ダンプファイルに、サポートされていない拡張機能への参照が含まれています。 |
pg_dumpall の使用中にエラーが発生した。 |
--global フラグを持つ pg_dumpall ユーティリティを使用するには、スーパーユーザー ロールが必要ですが、このロールは Cloud SQL ではサポートされていません。ユーザー名を含むエクスポート オペレーションの実行中にエラーが発生しないようにするには、--no-role-passwords フラグも使用します。 |
エクスポートが完了する前にオペレーションがタイムアウトすると、Could not receive data from client: Connection reset
by peer. というエラー メッセージが表示されます。 |
Cloud Storage が所定の時間(通常は約 7 分)内にデータを受信しないと、接続はリセットされます。最初のエクスポート クエリは、非常に時間がかかる可能性があります。
|
エクスポートを自動化したい。 | Cloud SQL には、エクスポートを自動化する方法がありません。 自動バックアップの自動化に関する記事のように、Google Cloud プロダクト(Cloud Scheduler、Pub/Sub、Cloud Run 関数)を使用して、独自の自動エクスポート システムを構築できます。 |
外部プライマリ
問題 | トラブルシューティング |
---|---|
Lost connection to MySQL server during query when dumping table . |
ソースが使用不能か、ダンプに含まれているパケットが大きすぎる可能性があります。 外部プライマリが接続できることを確認します。また、ソース インスタンスの net_read_timeout フラグと net_write_timeout フラグの値を変更して、エラーを防ぐこともできます。これらのフラグに使用可能な値の詳細については、データベース フラグを構成するをご覧ください。 マネージド インポート移行の |
最初のデータの移行は成功したが、データが複製されていない。 | 根本原因の一つとして、ソース データベースでレプリケーション フラグが定義されているため、データベースの一部またはすべての変更が複製されていない可能性があります。
プライマリ インスタンスで |
最初のデータ移行は成功したが、しばらくするとデータ レプリケーションが機能しなくなる。 | 次の方法をお試しください。
|
mysqld check failed: data disk is full . |
レプリカ インスタンスのデータディスクに空き容量がありません。 レプリカ インスタンスのディスクサイズを増やします。ディスクサイズを手動で増やすか、自動ストレージ増加を有効にします。 |
外部レプリカ
問題 | トラブルシューティング |
---|---|
エラー メッセージ: The slave is connecting ... master has purged
binary logs containing GTIDs that the slave requires |
プライマリ Cloud SQL インスタンスで自動バックアップ、バイナリログ、ポイントインタイム リカバリが有効になっているため、レプリカが追いつくまで必要なログが保持されていなければなりません。しかし、この場合、バイナリログは存在しますが、読み取りを開始する行がレプリカで認識されません。 正しいフラグを設定して新しいダンプファイルを作成し、そのファイルを使用して外部レプリカを構成します。
|
フラグ
問題 | トラブルシューティング |
---|
高可用性
問題 | トラブルシューティング |
---|---|
手動フェイルオーバーの指標が表示されない。 | 自動フェイルオーバーの指標のみが表示されます。 |
Cloud SQL インスタンス リソース(CPU と RAM)の使用率が 100% に近いため、高可用性インスタンスが停止する。 | インスタンスのマシンサイズが負荷に対して小さすぎます。 インスタンスを編集してより大きなマシンサイズにアップグレードし、CPU とメモリのサイズを大きくします。 |
インポート
問題 | トラブルシューティング |
---|---|
HTTP Error 409: Operation failed because another operation was already in progress . |
保留中のオペレーションがインスタンスにすでに存在しています。一度に実行できるオペレーションは 1 つだけです。現在のオペレーションが完了してからリクエストを試してください。 |
インポート オペレーションに時間がかかりすぎる。 | アクティブな接続が多すぎると、インポート オペレーションが妨げられる可能性があります。 未使用のオペレーションを終了します。Cloud SQL インスタンスの CPU とメモリ使用量をチェックして、十分なリソースがあることを確認します。インポートに最大限のリソースを確保するため、オペレーションを開始する前にインスタンスを再起動することをおすすめします。 再起動により、次の処理が行われます。
|
ダンプファイルで参照しているユーザーが存在しない場合、インポート オペレーションが失敗することがある。 | ダンプファイルをインポートする前に、オブジェクトを所有しているデータベース ユーザーか、ダンプされたデータベース内のオブジェクトに対する権限が付与されているデータベース ユーザーがターゲット データベース内に存在している必要があります。そうでない場合、インポート オペレーションを実行すると、元の所有権または権限でのオブジェクトの再作成に失敗します。 インポートする前に、データベース ユーザーを作成します。 |
インポート オペレーションが失敗し、テーブルが存在しないというエラーが表示される。 | テーブルに他のテーブルの外部キーと依存関係が存在する場合があります。このため、オペレーションの順序によっては、インポート オペレーション中に 1 つ以上のテーブルがまだ存在しない可能性があります。 次の方法をお試しください。 次の行をダンプファイルの先頭に追加します。 SET FOREIGN_KEY_CHECKS=0; また、次の行をダンプファイルの末尾に追加します。 SET FOREIGN_KEY_CHECKS=1; これらの設定により、インポート オペレーション中のデータの整合性チェックが無効になり、データの読み込み後に再び有効になります。ダンプファイルの作成時にデータがすでに検証されているため、この設定はデータベース上のデータの整合性には影響しません。 |
Vertex AI との統合
問題 | トラブルシューティング |
---|---|
エラー メッセージ: Google ML integration API is supported only on Postgres version 12 or above. |
Cloud SQL で Vertex AI のインテグレーションを有効にするには、バージョン 12 以降の Cloud SQL for PostgreSQL データベースが必要です。データベースをこのバージョンにアップグレードするには、データベースのメジャー バージョンをインプレースでアップグレードするをご覧ください。 |
エラー メッセージ: Google ML Integration API is not supported on shared core instance. Please upsize your machine type. |
インスタンスのマシンタイプに共有コアを選択した場合、Cloud SQL で Vertex AI とのインテグレーションを有効にすることはできません。マシンタイプを専用コアにアップグレードします。詳細については、マシンタイプをご覧ください。 |
エラー メッセージ: Google ML Integration is unsupported for this maintenance version. Please follow https://cloud.google.com/sql/docs/postgres/self-service-maintenance to update the maintenance version of the instance. |
Cloud SQL で Vertex AI とのインテグレーションを有効にするには、インスタンスのメンテナンス バージョンが R20240130 以降である必要があります。インスタンスをこのバージョンにアップグレードするには、セルフサービス メンテナンスをご覧ください。 |
エラー メッセージ: Cannot invoke ml_predict_row if 'cloudsql.enable_google_ml_integration' is off. |
cloudsql.enable_google_ml_integration データベース フラグがオフになっていて、Cloud SQL を Vertex AI と統合できません。このフラグをオンにするには、 gcloud sql instances patch コマンドを使用します。gcloud sql instances patch INSTANCE_NAME --database-flags cloudsql.enable_google_ml_integration=on INSTANCE_NAME は、プライマリ Cloud SQL インスタンスの名前に置き換えます。 |
エラー メッセージ: Failed to connect to remote host: Connection refused. |
Cloud SQL と Vertex AI のインテグレーションが有効になっていません。このインテグレーションを有効にするには、gcloud sql instances patch コマンドを使用します。gcloud sql instances patch INSTANCE_NAME INSTANCE_NAME は、プライマリ Cloud SQL インスタンスの名前に置き換えます。 |
エラー メッセージ: Vertex AI API has not been used in project PROJECT_ID before or it is disabled. Enable it by visiting /apis/api/aiplatform.googleapis.com/overview?project=PROJECT_ID then retry. |
Vertex AI API が有効になっていません。この API を有効にする方法については、Vertex AI とデータベースのインテグレーションを有効にするをご覧ください。 |
エラー メッセージ: Permission 'aiplatform.endpoints.predict' denied on resource. |
Vertex AI の権限が、Cloud SQL インスタンスが配置されているプロジェクトの Cloud SQL サービス アカウントに追加されていません。これらの権限をサービス アカウントに追加する方法については、Vertex AI とデータベースのインテグレーションを有効にするをご覧ください。 |
エラー メッセージ: Publisher Model `projects/PROJECT_ID/locations/REGION_NAME/publishers/google/models/MODEL_NAME` not found. |
ML モデルまたは LLM が Vertex AI に存在しません。 |
エラー メッセージ: Resource exhausted: grpc: received message larger than max. |
Cloud SQL が Vertex AI に渡すリクエストのサイズが、gRPC の上限(リクエストあたり 4 MB)を超えています。 |
エラー メッセージ: Cloud SQL attempts to send a request to Vertex AI. However, the instance is in the %s region, but the Vertex AI endpoint is in the %s region. Make sure the instance and endpoint are in the same region. |
Cloud SQL が Vertex AI にリクエストを送信しようとしていますが、インスタンスのリージョンと Vertex AI エンドポイントのリージョンが異なります。この問題を解決するには、インスタンスとエンドポイントの両方を同じリージョンに配置する必要があります。 |
エラー メッセージ: The Vertex AI endpoint isn't formatted properly. |
Vertex AI エンドポイントの形式が正しくありません。詳細については、オンライン予測にプライベート エンドポイントを使用するをご覧ください。 |
エラー メッセージ: Quota exceeded for aiplatform.googleapis.com/online_prediction_requests_per_base_model with base model: textembedding-gecko. |
Cloud SQL が Vertex AI に渡すリクエストの数が上限(1 リージョン、1 プロジェクト、1 分あたり 1,500 件)を超えています。 |
リンクされているサーバー
エラー メッセージ | トラブルシューティング |
---|---|
Msg 7411, Level 16, State 1, Line 25
|
DataAccess オプションが無効になっている。次のコマンドを実行して、データアクセスを有効にします。EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='data access', @optvalue='TRUE' LINKED_SERVER_NAME は、リンクされたサーバーの名前に置き換えます。 |
Access to the remote server is denied because no
login-mapping exists. (Microsoft SQL Server, Error: 7416)
|
暗号化された接続を確立する際にこの問題が発生した場合は、リンクされたサーバーにアクセスするときに別の方法でユーザー ID を指定する必要があります。これを行うには、次のコマンドを実行します。
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct= N'', @provider= N'SQLNCLI', @datasrc= N'TARGET_SERVER_ID', @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID' 次のように置き換えます。
|
Logging
問題 | トラブルシューティング |
---|---|
監査ログが見つからない。 | オペレーションが、ユーザー作成データを作成、変更、または読み取る認証済みのユーザー ドリブン API 呼び出しの場合、またはリソースの構成ファイルまたはメタデータにアクセスした場合にのみ、データアクセス ログに書き込まれます。 |
ログにオペレーション情報が見つからない。 | オペレーションの詳細を確認したい場合があります。 たとえば、ユーザーが削除され、誰がその操作を行ったのかを確認できない場合があります。ログでは、オペレーションが開始したことは確認できますが、それ以上の情報は記録されません。このような詳細な個人情報(PII)を記録するには、監査ログを有効にする必要があります。 |
一部のログは、Cloud SQL for SQL Server インスタンスの error.log ログからフィルタリングされます。 |
フィルタリングされたログには、タイムスタンプのない AD ログが含まれます。また、Login failed for user 'x'. Reason: Token-based server access
validation failed with an infrastructure error. Login lacks connect endpoint
permission. [CLIENT: 127.0.0.1] も含まれます。これらのログは、混乱を招く可能性があるため、除外されています。 |
ロギングで大量のディスク容量を使用している。 | ディスク容量を使用するログファイルには、REDO ログ、一般ログ、バイナリログの 3 種類があります。 各タイプの詳細を確認するには、データベースに接続して次のコマンドを実行します。 SHOW VARIABLES LIKE 'innodb_log_file%'; SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2),2) AS GB from mysql.general_log; SHOW BINARY LOGS; |
ログファイルが読みにくい。 | ログを json またはテキストで表示することもできます。gcloud logging read コマンドを Linux の後処理コマンドと一緒に使用して、ログをダウンロードできます。ログを JSON 形式でダウンロードするには: gcloud logging read \ "resource.type=cloudsql_database \ AND logName=projects/PROJECT_ID \ /logs/cloudsql.googleapis.com%2FLOG_NAME" \ --format json \ --project=PROJECT_ID \ --freshness="1d" \ > downloaded-log.json ログをテキスト形式でダウンロードするには: gcloud logging read \ "resource.type=cloudsql_database \ AND logName=projects/PROJECT_ID \ /logs/cloudsql.googleapis.com%2FLOG_NAME" \ --format json \ --project=PROJECT_ID \ --freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \ | .textPayload' \ --order=asc > downloaded-log.txt |
PostgreSQL ログでクエリログが見つからない。 | pgaudit フラグを有効にする必要があります。
|
インスタンスを管理する
問題 | トラブルシューティング |
---|---|
MySQL 再起動後のパフォーマンスが低下する。 | Cloud SQL では、InnoDB バッファプールにデータをキャッシュできます。ただし、このキャッシュは再起動後に空になるため、すべての読み取りでデータを取得するためにバックエンドへのラウンド トリップが必要になります。その結果、キャッシュがいっぱいになるまで、クエリが想定よりも遅くなる可能性があります。 |
クラッシュの復旧が遅い。 | 大量の general_log が蓄積している可能性があります。大量の general_log が累積しないようにすることで、クラッシュの復旧時間を短縮できます。general_log がオンになっている場合は、テーブルを切り捨てて、general_log を短時間だけ有効にします。一般ログのサイズを確認するには、データベースに接続して次のクエリを実行します。 SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2)),2) from mysql.general_log;
|
ストレージの使用状況を確認したい。 | たとえば、データベースで使用されているのは 3 GB のみで、ストレージで 14 GB が使用されていると表示される場合があります。テーブルで使用されない領域の大半はバイナリログや一時ファイルで使用されています。 次の方法をお試しください。
|
クエリがブロックされる。 | クエリが MySQL データベースをロックして、後続のすべてのクエリでブロック / タイムアウトが発生する可能性があります。 データベースに接続して、次のクエリを実行します。
リストの最初の項目が、後続の項目が待機しているロックを保持している場合があります。
|
バイナリログを手動で削除することができない。 | バイナリログは手動で削除できません。バイナリログは、関連する自動バックアップによって自動的に削除されます。これは通常、約 7 日後に発生します。 |
一時ファイルに関する情報を確認したい。 | ibtmp1 という名前のファイルが一時データの保存に使用されます。このファイルはデータベースの再起動時にリセットされます。一時ファイルの使用状況に関する情報を確認するには、データベースに接続して次のクエリを実行します。
|
テーブルサイズについて確認したい。 | この情報はデータベースから入手できます。 データベースに接続し、次のクエリを実行します。
|
mysqld が signal 11 を受け取った。 | クエリをリファクタリングして、過剰な接続が発生しないようにします。それでも問題が解決しない場合は、カスタマー サポートにお問い合わせください。signal 11 は通常、MySQL ソフトウェアの問題を表します。
|
InnoDB: page_cleaner: 1000ms intended loop took 5215ms. The
settings might not be optimal. |
ページ クリーナーがインスタンスの変化率に追いつかない。ページ クリーナーは 1 秒おきにバッファプールをスキャンし、ダーティページをバッファプールからディスクにフラッシュします。表示される警告は、フラッシュするダーティページが多数あり、これらのバッチをディスクにフラッシュするのに 1 秒以上かかっていることを示しています。 可能であれば、インスタンスをシャーディングします。大きな Cloud SQL インスタンスを 1 つ使用するより、小さなインスタンスを多数使用することをおすすめします。 |
実行中のクエリを調べたい。 | データベースに接続して次のクエリを実行します。
|
特定のフィールドで使用されているユニットを確認したい。 | データベースに接続して次のクエリを実行します(独自の FIELD_NAME を使用します)。
|
データベース設定の現在の値を確認したい。 | データベースに接続して次のクエリを実行します(独自の SETTING_NAME を使用します)。
すべての設定を表示するには、 |
ブロックされたバックグラウンド プロセスを停止したい。 | ユーザーに pg_signal_backend のロールが必要です。次のコマンドを実行します。
|
インスタンスによるトランザクション ID の消費量が 100% に近づいている。 | 内部モニタリングは、インスタンスがトランザクション ID を 100% 近く消費していることを警告します。書き込みがブロックされる可能性があるトランザクションのラップアラウンドは回避したい。 autovacuum ジョブがブロックされるか、ワークロードの速度に対応できる速さでトランザクション ID が再利用されていない可能性があります。 トランザクションのラップアラウンド問題によるサービス停止を回避するために、TXID ラップアラウンドの処理に関するセルフサービスのヒントをご覧ください。 一般的な調整のアドバイスについては、PostgreSQL における VACUUM オペレーションの最適化、モニタリング、トラブルシューティングをご覧ください。 |
一時ストレージにより、自動ストレージが増加した。 | 自動ストレージが有効になっています。 再起動すると一時ファイルは削除されますが、保存容量は減りません。インスタンスのサイズをリセットできるのはカスタマー サポートのみです。 |
データが自動的に削除される。 | ほとんどの場合、環境内のどこかでスクリプトが実行されています。 削除時刻の前後のログで、ダッシュボードや別の自動プロセスから不正なスクリプトが実行されていないかどうかを確認します。 |
インスタンスを削除できない。 | エラー メッセージ 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 つは、 |
アップグレード中の致命的なエラー。 | ログに詳細が表示される場合がありますが、インスタンスを強制的に再作成するにはカスタマー サポートが必要になる場合があります。 |
ディスク容量が不足した後、再起動時にインスタンスが停止する。 | 自動ストレージ増加機能が有効になっていません。 インスタンスのストレージが不足していてストレージの自動増加機能が有効になっていない場合、インスタンスはオフラインになります。この問題を回避するには、インスタンスを編集して、ストレージの自動増加を有効にします。 |
オンプレミスのプライマリ インスタンスが停止する。 | Google Cloud では、Cloud SQL に含まれていないインスタンスはサポートされません。 |
再起動時のシャットダウンが遅い。 | インスタンスをシャットダウンしたときに、60 秒以内に終了しない未処理の接続があると、不完全なシャットダウンが発生します。 接続が 60 秒未満の場合は、データベースのコマンド プロンプトからの接続を含め、ほとんどの不完全なシャットダウンを回避できます。これらの接続を数時間または数日間維持すると、不完全なシャットダウンが発生する場合があります。 |
ユーザーを削除できない。 | データベースに依存しているオブジェクトが存在する可能性があります。これらのオブジェクトを削除するか、別のユーザーに再割り当てする必要があります。 ユーザーに依存しているオブジェクトを特定し、それらのオブジェクトをドロップするか、別のユーザーに再度割り当てます。 |
特定のクエリの実行が遅い。 | クエリが遅くなる理由はさまざまですが、その多くはデータベース側の問題です。Cloud SQL でネットワーク レイテンシが問題になるのは、ソース(ライターまたはリーダー)リソースと宛先(Cloud SQL)リソースが異なるリージョンに存在している場合です。 一般的なパフォーマンスのヒントをご覧ください。 データベースの挿入、更新、削除が遅い場合は、次のことを考慮します。
レイテンシを低減するために、ソースリソースと宛先リソースの両方を同じリージョンに配置することをおすすめします。 |
メモリ不足が示されているが、モニタリング グラフに表示されない。 | インスタンスが失敗し、Out of memory が報告されていても、Google Cloud Console または Cloud Monitoring のグラフにはメモリがまだ残っているように表示される場合があります。ワークロード以外にも、アクティブな接続の数や内部オーバーヘッド プロセスなど、メモリ使用量に影響を与える可能性のある要因があります。こうしたことが常にモニタリング グラフに反映されるとは限りません。 インスタンスに、ワークロードと追加のオーバーヘッドを考慮するのに十分なオーバーヘッドがあることを確認してください。 |
削除したインスタンスを復元する。 | インスタンスを削除すると、バックアップを含め、そのインスタンスのすべてのデータが完全に失われます。 データを保持するには、インスタンスを削除する前に Cloud Storage にデータをエクスポートします。 Cloud SQL 管理者のロールには、インスタンスを削除する権限が含まれています。誤って削除されないように、このロールは必要な場合にのみ付与してください。 |
既存の Cloud SQL インスタンスの名前を変更したい。 | 既存のインスタンス名の変更はサポートされていません。 新しいインスタンスを作成することにより、既存のインスタンス名を変更できます。
いずれの場合も、オペレーションの完了後に古いインスタンスを削除できます。パフォーマンスには影響がなく、インスタンスの構成設定(フラグ、マシンタイプ、ストレージ サイズ、メモリなど)をやり直す必要がないことから、クローンルートを使用することをおすすめします。 |
インスタンスの削除中にエラーが発生しました。 | インスタンスに対して削除保護が有効になっている場合は、インスタンスを削除する計画を確認します。次に、インスタンスを削除する前に削除保護を無効にします。 |
Private Service Connect
問題 | トラブルシューティング |
---|---|
インスタンスのサービス アタッチメントが、Private Service Connect エンドポイントを受け入れない。 |
|
レプリケーション
問題 | トラブルシューティング |
---|---|
作成時にリードレプリカがレプリケーションを開始しなかった。 | ログファイルに、より具体的なエラーが記録されている可能性があります。Cloud Logging のログを調べて、実際のエラーを確認します。 |
リードレプリカを作成できない - invalidFlagValue エラー。 | リクエスト内のフラグのいずれかが無効です。これは、明示的に指定されたフラグか、デフォルト値に設定されたフラグである可能性があります。 まず、
|
リードレプリカを作成できない - 不明なエラー。 | ログファイルに、より具体的なエラーが記録されている可能性があります。Cloud Logging のログを調べて、実際のエラーを確認します。 エラーが |
ディスクに空きがない。 | レプリカの作成中にプライマリ インスタンスのディスクの空きがなくなる可能性があります。プライマリ インスタンスを編集して、より大きなディスクサイズにアップグレードします。 |
レプリカ インスタンスのメモリ使用量が多すぎる。 | レプリカは一時メモリを使用して頻繁にリクエストされる読み取りオペレーションをキャッシュに保存するため、プライマリ インスタンスより多くのメモリを使用する可能性があります。 レプリカ インスタンスを再起動して、一時メモリ領域を再利用します。 |
レプリケーションが停止した。 | ストレージの上限に達しており、ストレージの自動増量が有効になっていません。 インスタンスを編集して |
レプリケーション ラグが常に大きい。 | 書き込みの負荷が大きすぎてレプリカで処理できません。レプリケーション ラグは、レプリカの SQL スレッドで IO スレッドに対応できない場合に発生します。クエリやワークロードによっては、特定のスキーマで一時的または永続的に高いレプリケーション ラグが発生することがあります。レプリケーション ラグの一般的な原因は次のとおりです。
考えられる解決策は次のとおりです。
|
レプリカの作成がタイムアウトで失敗する。 | プライマリ インスタンスで長時間 commit されていないトランザクションが実行されると、リードレプリカの作成に失敗することがあります。 実行中のクエリをすべて停止してからレプリカを再作成します。 |