データのインポートとエクスポートに関するベスト プラクティス

このページでは、Cloud SQL を使用してデータのインポートまたはエクスポートを行う際のベスト プラクティスについて説明します。Cloud SQL にデータをインポートする手順については、データのインポートをご覧ください。データが Cloud SQL にある場合も、お客様が管理しているインスタンスにある場合も、データをエクスポートするための手順については、データのエクスポートをご覧ください。

インポートとエクスポートのベスト プラクティス

データをインポートおよびエクスポートする際に考慮すべきベスト プラクティスは次のとおりです。

Cloud Storage リクエスト元による支払いバケットを使用しない

Cloud SQL からのインポートとエクスポートに、リクエスト元による支払いが有効になっている Cloud Storage バケットは使用できません。

費用削減のため、データを圧縮する

Cloud SQL では、圧縮ファイルと非圧縮ファイルの両方のインポートとエクスポートがサポートされています。特に大きいインスタンスをエクスポートするときは、圧縮すると Cloud Storage のストレージ スペースを大幅に節約でき、ストレージ コストの削減にもなります。

BAK ファイルをエクスポートする場合は、.gz ファイル拡張子を使用してデータを圧縮します。ファイル拡張子 .gz のファイルは、インポートすると自動的に解凍されます。

長時間にわたるインポートおよびエクスポート プロセスの削減

インポート機能(Cloud Storage バケット経由)を使用した Cloud SQL へのインポートとエクスポートは、データベースのサイズによっては、完了するまでに時間がかかる場合があります。その結果、次の影響があります。

  • 長時間実行されている Cloud SQL インスタンス オペレーションを停止することはできません。
  • 各インスタンスに対して実行できるインポートまたはエクスポートのオペレーションは、一度に 1 つのみです。

Cloud SQL のインポートまたはエクスポート機能をバッチサイズのより小さいデータで使用して、各オペレーションの完了に要する時間を短縮できます。

データベース全体の移行では、インポートには通常 SQL ファイルではなく、BAK ファイルを使用します。一般に、SQL ファイルからのインポートは BAK ファイルからのインポートよりもはるかに時間がかかります。

インポートしたデータベースを確認する

インポートが完了したら、データベースに接続し、該当するデータベース コマンドを実行して内容が正しいことを確認します。たとえば接続して、データベース、テーブル、特定のエントリを一覧表示します。

既知の制限事項

既知の制限事項のリストについては、データのインポートとエクスポートに関する問題をご覧ください。

エクスポート オペレーションの自動化

Cloud SQL にはデータベースのエクスポートを自動化するための組み込みの機能はありませんが、いくつかの Google Cloud コンポーネントを使用して、独自の自動化ツールを構築できます。詳細については、このチュートリアルをご覧ください。

トラブルシューティング

インポート オペレーションのトラブルシューティング

問題 トラブルシューティング
HTTP Error 409: Operation failed because another operation was already in progress 保留中のオペレーションがインスタンスにすでに存在しています。一度に実行できるオペレーションは 1 つだけです。現在のオペレーションが完了してからリクエストを試してください。
インポート オペレーションに時間がかかりすぎる。 アクティブな接続が多すぎると、インポート オペレーションが妨げられる可能性があります。

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

再起動により、次の処理が行われます。

  • すべての接続を終了します。
  • リソースを消費している可能性のあるタスクをすべて終了します。
ダンプファイルで参照しているユーザーが存在しない場合、インポート オペレーションが失敗することがある。 ダンプファイルをインポートする前に、オブジェクトを所有しているデータベース ユーザーか、ダンプされたデータベース内のオブジェクトに対する権限が付与されているデータベース ユーザーがターゲット データベース内に存在している必要があります。そうでない場合、インポート オペレーションを実行すると、元の所有権または権限でのオブジェクトの再作成に失敗します。

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

エクスポート オペレーションのトラブルシューティング

問題 トラブルシューティング
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 Storage に適用される IAM ロールをご覧ください。
エクスポートを自動化したい。 Cloud SQL には、エクスポートを自動化する方法がありません。

自動バックアップの自動化に関する記事のように、Google Cloud プロダクト(Cloud Scheduler、Pub/Sub、Cloud Functions)を使用して、独自の自動エクスポート システムを構築できます。

次のステップ