このトピックでは、pg_restoreを使用して、接尾辞が付いている論理バックアップファイルからデータを復元する方法について説明します。ApsaraDB RDS for PostgreSQLインスタンスまたはオンプレミスPostgreSQLデータベースにダンプします。
説明
テーブル内のデータなど、少量のデータの場合は、論理バックアップファイルを使用してデータを復元することをお勧めします。 大量のデータの場合は、完全な物理バックアップファイルから新しいRDSインスタンスに復元し、data Transmission Service (DTS) を使用して元のRDSインスタンスにデータを移行することを推奨します。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンス間のデータ移行」をご参照ください。
データ復元方法の詳細については、「データ復元方法の概要」をご参照ください。
データベースのデータを復元する
論理バックアップファイルを格納するElastic Compute Service (ECS) インスタンスまたはオンプレミスホストにログインし、次のコマンドを実行してデータベースのデータを復元します。
pg_restore -h '<ホスト名>' -U <ユーザー名> -p <ポート> -d <dbname> -c <dumpdir>
パラメーター | 説明 |
hostname | RDSインスタンスへの接続に使用されるエンドポイント。 |
username | RDSインスタンスの特権アカウントのユーザー名。 |
port | RDSインスタンスへの接続に使用されるポート。 |
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
CLIにpassword:
が表示されている場合は、RDSインスタンスの特権アカウントのパスワードを入力し、Enterキーを押します。

説明
組み込みのplpgsql拡張機能によって生成されるアラートは無視できます。
テーブルのデータを復元する
論理バックアップファイルを格納するECSインスタンスまたはオンプレミスホストにログインし、次のコマンドを実行してテーブルのデータを復元します。
pg_restore -h '<ホスト名>' -U <ユーザー名> -p <ポート> -d <dbname> -t <テーブル> -c <dumpdir>
パラメーター | 説明 |
hostname | RDSインスタンスへの接続に使用されるエンドポイント。 |
username | RDSインスタンスの特権アカウントのユーザー名。 |
port | RDSインスタンスへの接続に使用されるポート。 |
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
CLIにpassword:
が表示されている場合は、RDSインスタンスの特権アカウントのパスワードを入力し、Enterキーを押します。

データを除外したデータベースのスキーマを復元する
論理バックアップファイルを格納するECSインスタンスまたはオンプレミスホストにログインし、次のコマンドを実行してデータベースのスキーマのみを復元します。
pg_restore -h '<ホスト名>' -U <ユーザー名> -p <ポート> -d <dbname> -s <dumpdir>
パラメーター | 説明 |
hostname | RDSインスタンスへの接続に使用されるエンドポイント。 |
username | RDSインスタンスの特権アカウントのユーザー名。 |
port | RDSインスタンスへの接続に使用されるポート。 |
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
CLIにpassword:
が表示されている場合は、RDSインスタンスの特権アカウントのパスワードを入力し、Enterキーを押します。

説明
埋め込みplpgsql拡張によって生成されるアラートは無視できます。