このページには、Cloud SQL for MySQL の既知の問題と、これらの問題を回避したりこれらの問題から復旧したりする方法が記載されています。
インスタンスに関する問題が発生している場合は、オペレーション ガイドラインと問題を診断するの内容もご確認ください。データの永続性と可用性の問題
生成された列(MySQL 5.7 インスタンスのみ)
生成された列を使用すると、MySQL の問題によりデータが破損する場合があります。詳しくは、MySQL バグ #82736 をご覧ください。
インスタンス接続の問題
期限切れの SSL/TLS 証明書
SSL を使用するようにインスタンスを構成している場合は、Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動して、インスタンスを開きます。[接続] ページを開き、[セキュリティ] タブを選択して、サーバー証明書が有効であることを確認します。期限切れの場合は、新しい証明書を追加してローテーションする必要があります。
Cloud SQL Auth Proxy のバージョン
Cloud SQL Auth Proxy を使用して接続する場合は、最新のバージョンを使用していることを確認してください。詳細については、Cloud SQL Auth Proxy の最新状態の維持をご覧ください。
Not authorized to connect
接続しようとしているインスタンスがそのプロジェクトに存在しない場合、そのインスタンスにアクセスする権限がないというエラー メッセージが表示されます。
Cloud SQL のインスタンスを作成できない
Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]
エラーのメッセージが表示された場合は、Cloud SQL インスタンスをもう一度作成してみてください。
管理に関する問題
Cloud SQL のインポートまたはエクスポートを長時間実行する場合は、1 インスタンスに対して一度に 1 つのオペレーションしか実行できません。オペレーションを開始するときは、インスタンスに対して他のオペレーションを行う必要がないことを確認してください。また、オペレーションの開始時にキャンセルすることもできます。
MySQL は各 DDL ステートメントで自動 commit します。Cloud SQL は、インスタンスをキャンセルするまで、インポートのすべての手順を保持します。そのため、インスタンスのデータを手動でクリーンアップすることが必要になる場合があります。
データのインポートとエクスポートに関する問題
CSV エクスポートで NULL と改行が正しい形式にならない。
Cloud SQL エクスポート機能を使用して CSV 形式でデータをエクスポートする場合、NULL は
"N
としてエクスポートされます。これにより、CSV ファイルに対になっていない引用符が付加される可能性があります。また、テキストデータに改行文字が含まれているときも、行の末尾に引用符が追加されます。デフォルトのエスケープ文字を使用してエクスポートしたファイルをインポートすると、ファイルはこの値を
NULL
ではなく"NULL"
として扱います。ファイルをエクスポートするときにデフォルトをオーバーライドするには、--escape="5C"
を使用します。SQL モード設定は、Cloud SQL で SQL クエリをどのように解釈するかに影響します。
たとえば、[Strict SQL] を有効にせずにデータベースからエクスポートし、Cloud SQL (デフォルトで [Strict SQL] を有効にします)にインポートしようとすると、インポートが失敗することがあります。ベスト プラクティスは、エクスポートで使用したのと同じ SQL モードをインポートで使用することです。
DEFINER 句によってインポートが失敗することがある
DEFINER ユーザーが SUPER またはシステム ユーザーで、Cloud SQL へのインポートを実行しているユーザーと異なる場合、DEFINER 句がインポート オペレーションを妨げることがあります。Cloud SQL での DEFINER の使用方法と回避策をご覧ください。
大規模なデータベース(たとえば、500 GB 以上のデータを持つデータベース)からデータのインポートとエクスポートをしようとすると、インポートとエクスポートのオペレーションが完了するのに長い時間がかかることがあります。さらに、インポートやエクスポートの実行中は、他のオペレーション(例えば、バックアップ オペレーション)を実行できません。
gcloud
または API を使用して以前のバックアップを復元すると、インポートとエクスポートのプロセスのパフォーマンスを向上できます。
- Cloud Storage は、最大 5 テラバイトの単一オブジェクト サイズをサポートしています。5 TB を超えるデータベースの場合、Cloud Storage へのエクスポート オペレーションは失敗します。その場合は、エクスポート ファイルを小さなセグメントに分割する必要があります。
トランザクション ログとディスクの増大
ログは継続的ではなく、1 日 1 回削除されます。ログの保持日数とバックアップ数が同じ値で構成されていると、バックアップが発生するタイミングによっては、1 日分のロギングが失われる可能性があります。たとえば、ログ保持期間を 7 日に設定し、保持するバックアップの数を 7 に設定すると、6~7 日分のログが保持されます。
バックアップの数は、保持するログの日数より 1 以上大きい数に設定することをおすすめします。
MySQL インスタンスのアップグレードに関する問題
Database Migration Service を使用して MySQL インスタンスをバージョン 5.7 からバージョン 8.0 にアップグレードし、バージョン 5.7 インスタンスで mysql
という名前のデータベースにストアド プロシージャを作成した場合、ストアド プロシージャはアップグレードしたバージョン 8.0 インスタンスの mysql
データベースにはコピーされません。また、アップグレードしたインスタンスの mysql
データベースにストアド プロシージャを作成できない場合があります。
InnoDB のページ圧縮に関する問題
InnoDB のページ圧縮によって、ディスクの読み書きが必要なデータの量を減らすことで、更新クエリのパフォーマンスを改善できます。ただし、ページ圧縮は、頻繁に更新されるテーブルの更新クエリのパフォーマンスに影響を与える可能性があります。ページ圧縮が更新クエリに与える影響を評価するために、ページ圧縮を行う場合と行わない場合のパフォーマンス テストを実行します。これにより、ページ圧縮がワークロードのパフォーマンスにどのように影響するかを確認できます。
ページ圧縮のパフォーマンスは、次のように最適化できます。
データ型に適した圧縮アルゴリズムの使用。たとえば、テキストデータには LZ4、バイナリデータには ZLIB を使用します。
頻繁に更新されるデータは圧縮しない。データの圧縮と解凍は、更新クエリの速度を低下させることがあります。
Cloud Monitoring または Cloud Logging に関連する問題
次のリージョン名のインスタンスは、次のように、特定の状況では正しく表示されません。
us-central1
はus-central
と表示されます。europe-west1
はeurope
と表示されます。asia-east1
はasia
と表示されます。
この問題は、次の状況で発生します。
- Cloud Monitoring のアラート
- Metrics Explorer
- Cloud Logging
リソース メタデータ ラベルを使用して、Cloud Monitoring のアラートと Metrics Explorer の問題を軽減できます。cloudsql_database のモニタリング対象リソースラベル region
ではなく、システム メタデータ ラベル region
を使用します。