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

ApsaraDB RDS:pg_restore を使用した論理バックアップデータの復元

最終更新日:Jun 21, 2026

このトピックでは、pg_restore コマンドを使用して、論理バックアップファイル (.dump) から ApsaraDB RDS for PostgreSQL インスタンスまたはオンプレミスの PostgreSQL データベースにデータを復元する方法について説明します。

説明
  • データ量が少ない場合 (単一テーブルのデータなど) は、論理バックアップを使用して迅速に回復できます。 データ量が多い場合は、フル物理バックアップから新しいインスタンスにデータを復元し、Data Transmission Service (DTS) を使用して元のインスタンスにデータを移行することを推奨します。

  • データ回復方法の詳細については、「データ回復」をご参照ください。

前提条件

PostgreSQL データの論理バックアップが作成されていること。

注意事項

  • データを復元する際、デフォルトの postgres データベースには接続しないでください。

  • 特定のテーブルを復元しても、そのテーブルが依存する他のデータベースオブジェクトは復元されません。 そのため、クリーンなデータベースに復元する場合、操作が成功しないことがあります。

データベースの復元

  1. バックアップデータが保存されている ECS インスタンスまたはオンプレミスホストにログインし、次のコマンドを実行してデータベースを復元します。

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

    パラメーター

    説明

    hostname

    ApsaraDB RDS for PostgreSQL インスタンスのエンドポイント。

    説明

    username

    ApsaraDB RDS for PostgreSQL インスタンスの特権アカウントのユーザー名。

    port

    ApsaraDB RDS for PostgreSQL インスタンスのポート番号。

    dbname

    復元するデータベースの名前。

    -c (オプション)

    -c オプションは、既存のデータベースオブジェクトを削除してから再作成します。 他のオプションの詳細については、公式の pg_restore ドキュメントをご参照ください。

    dumpdir

    バックアップファイルのパスと名前。

    例:

    pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump
  2. Password:」と表示されたら、インスタンスの特権アカウントのパスワードを入力して Enter キーを押します。

    [root@iZbpxxx ~]# pg_restore -h 'pgm-xxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump
    Password:
    [root@iZbpxxx ~]#
    説明

    組み込みの plpgsql 拡張に関する警告は無視できます。

特定のテーブルの復元

  1. バックアップデータが保存されている ECS インスタンスまたはオンプレミスホストにログインし、次のコマンドを実行して特定のテーブルを復元します。

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

    パラメーター

    説明

    hostname

    ApsaraDB RDS for PostgreSQL インスタンスのエンドポイント。

    説明

    username

    ApsaraDB RDS for PostgreSQL インスタンスの特権アカウントのユーザー名。

    port

    ApsaraDB RDS for PostgreSQL インスタンスのポート番号。

    dbname

    復元するデータベースの名前。

    table

    復元するテーブルの名前。

    -c (オプション)

    -c オプションは、既存のデータベースオブジェクトを削除してから再作成します。 他のオプションの詳細については、公式の pg_restore ドキュメントをご参照ください。

    dumpdir

    バックアップファイルのパスと名前。

    例:

    pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dump
  2. Password:」と表示されたら、インスタンスの特権アカウントのパスワードを入力して Enter キーを押します。

    [root@iZbpxxx ~]# pg_restore -h 'pgm-bpxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dump
    パスワード:
    [root@iZbpxxx ~]#

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

  1. バックアップデータが保存されている ECS インスタンスまたはオンプレミスホストにログインし、次のコマンドを実行してデータベーススキーマのみを復元します。

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

    パラメーター

    説明

    hostname

    ApsaraDB RDS for PostgreSQL インスタンスのエンドポイント。

    説明

    username

    ApsaraDB RDS for PostgreSQL インスタンスの特権アカウントのユーザー名。

    port

    ApsaraDB RDS for PostgreSQL インスタンスのポート番号。

    dbname

    ターゲットデータベースの名前。

    -s

    -s オプションは、データではなくスキーマ (データ定義) のみを復元します。 他のオプションの詳細については、公式の pg_restore ドキュメントをご参照ください。

    dumpdir

    バックアップファイルのパスと名前。

    例:

    pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dump
  2. Password:」と表示されたら、インスタンスの特権アカウントのパスワードを入力して Enter キーを押します。

    [root@iZbpxxx ~]# pg_restore -h 'pgm-bpxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dump
    Password:
    [root@iZbpxxx ~]#
    説明

    組み込みの plpgsql 拡張に関する警告は無視できます。