DMP ファイルをインポートする

このページでは、custom 形式または directory 形式を使用して pg_dump ツールで作成された DMP ファイルを AlloyDB データベースにインポートする方法について説明します。

pg_dump ツールで作成されたファイルを plain 形式でインポートするには、SQL ファイルをインポートするをご覧ください。

インポートを実行する手順は次のとおりです。

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

  2. インポート オペレーションを実行するクライアント ホストを準備します。

  3. データベースにDMP ファイルをインポートします。

  4. 手順を実行するために作成したリソースをクリーンアップします。

始める前に

  • 使用している Google Cloud プロジェクトで、オーナー(roles/owner)または編集者(roles/editor)の基本 IAM ロールが必要です。または、次の事前定義された IAM ロールが必要です。
    • AlloyDB 管理者(roles/alloydb.admin)または AlloyDB 閲覧者(roles/alloydb.viewer
    • Storage 管理者(roles/storage.admin
    • Compute インスタンス管理者(v1)(roles/compute.instanceAdmin.v1

DMP ファイルをアップロードする

DMP ファイルをアップロードするには、Cloud Storage バケットを作成し、DMP ファイルをそのバケットにアップロードします。

  1. AlloyDB データベースが存在するプロジェクトとリージョンに Standard Storage のリージョン ストレージ バケットを作成します。

  2. 作成したストレージ バケットに DMP ファイルをアップロードします。

クライアント ホストを準備する

インポート オペレーションを実行するクライアントホストを準備するには、データベースが配置されている AlloyDB プライマリ インスタンスに接続できる Compute Engine VM を作成し、その VM に pg_restore ツールと Google Cloud CLI をインストールします。

  1. psql クライアントをインスタンスに接続するの手順に沿って、適切な接続と pg_restore ツールがインストールされた Compute Engine VM を作成します。これらの手順を行う場合は、インポートする DMP ファイルに対応できる十分なローカル ストレージを Compute Engine VM に割り当ててください。

  2. gcloud CLI をインストールして、Cloud Storage バケット内の DMP ファイルにコマンドラインからアクセスできるようにします。

DMP ファイルをインポートする

DMP ファイルをインポートするには、データベースが存在する AlloyDB プライマリ インスタンスの IP アドレスを取得し、pg_restore ツールを使用してファイルをデータベースにインポートします。

  1. 詳細を表示して、データベースが存在する AlloyDB プライマリ インスタンスの IP アドレスを取得します。
  2. Compute Engine VM に SSH 接続します。

    コンソール

    1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

      [VM インスタンス] に移動

    2. 仮想マシン インスタンスのリストで、作成したインスタンスの行にある [SSH] をクリックします。

      インスタンス名の横にある SSH ボタン。

    gcloud

    gcloud compute ssh コマンドを使用して、作成したインスタンスに接続します。

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    次のように置き換えます。

    • PROJECT_ID: インスタンスが含まれているプロジェクトの ID。
    • ZONE: インスタンスが存在するゾーンの名前。
    • VM_NAME: インスタンスの名前。
  3. DMP ファイルをクライアント ホストのローカル ファイル システムにコピーします。
    gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
  4. 次のコマンドを実行して、すべての EXTENSION ステートメントをコメントアウトする TOC ファイルを作成します。
    pg_restore \
    -l DMP_FILE_NAME | sed -E 's/(.* EXTENSION )/; \1/g' > TOC_FILE_NAME
    • DMP_FILE_NAME: ローカル ファイル システム上の DMP ファイル。
    • TOC_FILE_NAME: ローカル ファイル システムに作成する TOC ファイルのファイル名を指定します。
  5. DMP ファイルをインポートします。
    pg_restore -h IP_ADDRESS -U postgres \
      -d DB_NAME \
      -L TOC_FILE_NAME \
      DMP_FILE_NAME
    
    • IP_ADDRESS: プライマリ インスタンスの IP アドレス。
    • DB_NAME: インポート先のデータベースの名前。
    • TOC_FILE_NAME: 前の手順で作成した TOC ファイル。
    • DMP_FILE_NAME: DMP ファイル。

    pg_restore コマンドには、データのインポート オペレーションを制御するための追加オプションがいくつかあります。

リソースのクリーンアップ

DMP ファイルのインポートが正常に完了したら、Cloud Storage バケットを削除し、インポート手順で使用した Compute Engine VM を削除できます。