データのエクスポート

このページでは、Cloud SQL インスタンスからデータをエクスポートする方法について説明します。

Cloud SQL から Cloud Storage の BAK ファイルにデータをエクスポートします。データをエクスポートした後、ファイルを Cloud SQL の別の SQL Server データベースにインポートできます。ローカル環境にダウンロードすれば、そのデータにローカルでアクセスできるようになります。

データのエクスポートのベスト プラクティスについては、データのインポートとエクスポートのベスト プラクティスをご覧ください。

Cloud SQL から BAK ファイルにデータをエクスポートする

始める前に

この手順では、ファイルを Cloud Storage にエクスポートする必要があります。Cloud Storage にデータをエクスポートするには、インスタンスのサービス アカウントにプロジェクトで設定された storage.objectAdmin IAM ロールが必要です。IAM ロールについては、Cloud Storage の Cloud Identity and Access Management をご覧ください。

インスタンスのサービス アカウント名は、Google Cloud Console のインスタンスの [概要] ページで確認できます。Cloud Storage バケットのロールは、バケットを検査する gsutil ツールを使用して確認できます。

gsutil iam get gs://[BUCKET_NAME]

バケットでの IAM 使用について詳しくは、こちらをご覧ください。

Cloud Storage の BAK ファイルにデータをエクスポートする

Cloud SQL インスタンス上のデータベースから Cloud Storage バケットの BAK ファイルにデータをエクスポートする手順は次のとおりです。

Console

  1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. データのエクスポート元となるインスタンスをクリックして、[概要] ページを開きます。
  3. ボタンバーで [エクスポート] をクリックします。
  4. [Cloud Storage エクスポートのロケーション] で、エクスポートするバケット、フォルダ、ファイルを追加するか、[参照] をクリックしてバケット、フォルダ、ファイルを検索または作成します。

    [参照] をクリックした場合:

    1. [ロケーション] で、エクスポート先の Cloud Storage バケットまたはフォルダを選択します。
    2. [名前] テキスト ボックスに、ファイルの名前を追加します。すでに作成したファイルであれば、[ロケーション] のリストから選択します。

      ファイル拡張子 .gz を使用して、エクスポート ファイルを圧縮できます。

    3. [選択] をクリックします。
  5. [形式] で [BAK] をクリックします。
  6. [エクスポートするデータベース] で、プルダウン メニューからエクスポートするデータベースを選択します。
  7. [エクスポート] をクリックしてエクスポートを開始します。
  8. [データベースをエクスポートしますか?] というダイアログ ボックスが開き、大規模なデータベースの場合、エクスポート プロセスに 1 時間以上かかることがあるという内容のメッセージが表示されます。エクスポート時、インスタンスで実行できる操作は情報の閲覧のみです。一度開始したエクスポートは停止できません。エクスポートを開始してもよい場合は、[エクスポート] をクリックします。開始しない場合は、[キャンセル] をクリックします。

gcloud

  1. Cloud Storage バケットをまだ作成していない場合は、作成します。

    バケットの作成方法については、ストレージ バケットの作成をご覧ください。

  2. ファイルをバケットにアップロードします。

    ファイルをバケットにアップロードする方法については、オブジェクトのアップロードをご覧ください。

  3. エクスポート元のインスタンスを記述します。
      gcloud sql instances describe [INSTANCE_NAME]
      
  4. serviceAccountEmailAddress フィールドをコピーします。
  5. gsutil iam を使用して、バケットのサービス アカウントに storage.objectAdmin IAM ロールを付与します。IAM 権限の設定については、IAM 権限の使用をご覧ください。
  6. データベースをエクスポートします。
      gcloud beta sql export bak [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.sql.gz \
                                  --database=[DATABASE_NAME]
      

    gcloud beta sql export bak コマンドの使用方法については、コマンドのリファレンス ページをご覧ください。

  7. 以前に設定した IAM ロールを保持する必要がない場合は、この時点で取り消してください。

REST

  1. エクスポート先のバケットを作成します。
    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    このステップは必須ではありませんが、他のデータへ一切アクセスできないようにするために、実行することを強く推奨します。

  2. バケットに対する storage.objectAdmin IAM ロールをインスタンスに付与します。IAM 権限の設定については、IAM 権限の使用をご覧ください。
  3. データベースをエクスポートします。

    後述のリクエスト データは、次のように置き換えてから使用します。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID
    • bucket_name: Cloud Storage バケット名
    • path_to_dump_file: SQL ダンプファイルへのパス
    • database_name: Cloud SQL インスタンス内のデータベースの名前

    HTTP メソッドと URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    JSON 本文のリクエスト:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_dump_file",
          "databases": ["database_name"]
        }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  4. 以前に設定した IAM ロールを保持する必要がない場合は、この時点で取り消してください。
このリクエストのパラメータの一覧については、instances:export ページをご覧ください。

次のステップ