このページでは、custom
形式または directory
形式を使用して pg_dump
ツールで作成された DMP ファイルを AlloyDB データベースにインポートする方法について説明します。
pg_dump
ツールで作成されたファイルを plain
形式でインポートするには、SQL ファイルをインポートするをご覧ください。
インポートを実行する手順は次のとおりです。
Cloud Storage バケットに DMP ファイルをアップロードします。
インポート オペレーションを実行するクライアント ホストを準備します。
データベースにDMP ファイルをインポートします。
手順を実行するために作成したリソースをクリーンアップします。
始める前に
- 使用している 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
)
- AlloyDB 管理者(
DMP ファイルをアップロードする
DMP ファイルをアップロードするには、Cloud Storage バケットを作成し、DMP ファイルをそのバケットにアップロードします。
AlloyDB データベースが存在するプロジェクトとリージョンに Standard Storage のリージョン ストレージ バケットを作成します。
作成したストレージ バケットに DMP ファイルをアップロードします。
クライアント ホストを準備する
インポート オペレーションを実行するクライアントホストを準備するには、データベースが配置されている AlloyDB プライマリ インスタンスに接続できる Compute Engine VM を作成し、その VM に pg_restore
ツールと Google Cloud CLI をインストールします。
psql クライアントをインスタンスに接続するの手順に沿って、適切な接続と
pg_restore
ツールがインストールされた Compute Engine VM を作成します。これらの手順を行う場合は、インポートする DMP ファイルに対応できる十分なローカル ストレージを Compute Engine VM に割り当ててください。gcloud CLI をインストールして、Cloud Storage バケット内の DMP ファイルにコマンドラインからアクセスできるようにします。
DMP ファイルをインポートする
DMP ファイルをインポートするには、データベースが存在する AlloyDB プライマリ インスタンスの IP アドレスを取得し、pg_restore
ツールを使用してファイルをデータベースにインポートします。
- 詳細を表示して、データベースが存在する AlloyDB プライマリ インスタンスの IP アドレスを取得します。
- Compute Engine VM に SSH 接続します。
コンソール
- Google Cloud コンソールで、[VM インスタンス] ページに移動します。
- 仮想マシン インスタンスのリストで、作成したインスタンスの行にある [SSH] をクリックします。
gcloud
gcloud compute ssh
コマンドを使用して、作成したインスタンスに接続します。gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
次のように置き換えます。
PROJECT_ID
: インスタンスが含まれているプロジェクトの ID。ZONE
: インスタンスが存在するゾーンの名前。VM_NAME
: インスタンスの名前。
- DMP ファイルをクライアント ホストのローカル ファイル システムにコピーします。
gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
- 次のコマンドを実行して、すべての
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 ファイルのファイル名を指定します。
- 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 を削除できます。