すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:pg_restore を使用して論理バックアップファイルからデータを復元する

最終更新日:Mar 29, 2026

pg_restore を使用して、.dump 形式の論理バックアップファイルから ApsaraDB RDS for PostgreSQL インスタンスまたはオンプレミスの PostgreSQL データベースへデータを復元します。

単一テーブルなどの少量のデータの場合、論理バックアップの解凍は容易です。大規模なデータセットの場合は、フル物理バックアップから新しい RDS インスタンスに解凍した後、Data Transmission Service (DTS) を使用して元のインスタンスにデータを移行します。すべての解凍メソッドについては、「解凍」をご参照ください。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

注意事項

  • デフォルトの postgres データベースへデータを復元しないでください。

  • 単一テーブルを復元する場合、pg_restore はそのテーブルが依存するデータベースオブジェクトを復元しません。これらの依存関係がターゲットデータベースに存在しない場合、復元が失敗する可能性があります。

データベースの復元

バックアップファイルを格納する ECS インスタンスまたはオンプレミスホストにログインし、以下のコマンドを実行します。

pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -c <dumpdir>
パラメーター説明
hostnameRDS インスタンスへの接続に使用するエンドポイントです。内部エンドポイントを使用する場合、ECS インスタンスと RDS インスタンスは同じネットワークタイプ(VPC またはクラシックネットワーク)を使用している必要があります。両方とも VPC ネットワークタイプを使用する場合は、同一の VPC 内にある必要があります。「ApsaraDB RDS for PostgreSQL インスタンスのエンドポイントおよびポート番号の表示と変更」をご参照ください。パブリックエンドポイントを使用する場合は、あらかじめ割り当てる必要があります。「ApsaraDB RDS for PostgreSQL インスタンスへのパブリックエンドポイントの申請またはリリース」をご参照ください。
usernameRDS インスタンスの特権アカウントのユーザー名です。
portRDS インスタンスへの接続に使用するポート番号です。
dbname対象データベースの名前
-c(任意)再作成前に既存のデータベースオブジェクトを削除します。「pg_restore」をご参照ください。
dumpdir論理バックアップファイルのパスです。

例:

pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump

Password: のプロンプトが表示されたら、特権アカウントのパスワードを入力し、Enter キーを押します。

image.png
組み込みの plpgsql 拡張による警告は無視してください。

テーブルの復元

バックアップファイルを格納する ECS インスタンスまたはオンプレミスホストにログインし、以下のコマンドを実行します。

pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -t <table> -c <dumpdir>

-t <table> フラグは、復元対象のテーブルを指定します。その他のパラメーターは、「データベースの復元」と同一です。

パラメーター説明
table復元対象のテーブル名です。

例:

pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dump

Password: のプロンプトが表示されたら、特権アカウントのパスワードを入力し、Enter キーを押します。

image.png
単一テーブルを復元する場合、そのテーブルが依存するデータベースオブジェクトは復元されません。これらのオブジェクトがターゲットデータベースにすでに存在することを確認してください。存在しない場合、復元が失敗する可能性があります。

データベーススキーマの復元

データを復元せずにデータベーススキーマのみを復元するには、ECS インスタンスまたはオンプレミスホストにログインし、以下のコマンドを実行します。

pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -s <dumpdir>

-s フラグは、データをロードせずにスキーマのみを復元します。その他のパラメーターは、「データベースの復元」と同一です。

例:

pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dump

Password: のプロンプトが表示されたら、特権アカウントのパスワードを入力し、Enter キーを押します。

image.png
組み込みの plpgsql 拡張による警告は無視してください。

次のステップ