2

私の意図は、次を使用してデータベースをダンプすることです。

pg_dump -U postgres -h localhost -p 5432 MYDB | gzip > database_dump.gz

そして、それを別の環境に復元するには:

gunzip -c database_dump.gz | ssh 10.10.10.10 \
  psql -1 -U postgres -h localhost -p 5432 MYDB

2 番目の環境でデータベースを復元する前に、既存のデータベースを削除して、新しいダンプ (より新しいデータを含む) を作成します。

これが私の質問です。-C出力されたダンプ ファイルにステートメントが含まれるように、pg_dump ステートメントでパラメーターを指定する必要がありますCREATE DATABASEか? CREATE DATABASEパラメータがないと、ダンプ ファイルにステートメントが含まれていないことに気付きました。

パラメータの9.1ドキュメントによると-C、「このオプションはプレーンテキスト形式でのみ意味があります。アーカイブ形式の場合、pg_restoreを呼び出すときにオプションを指定できます。」私はそれが何を意味するのか確信が持てません。上記のように、pg_restore ではなく psql を使用して復元しています。

4

1 に答える 1

4

psqlデータベースを再作成するには、 を追加する必要があることを意味します-C

pg_restorepg_dump非プレーンテキスト形式で生成されたスクリプトからデータベースを復元するための特別なツールです。のようにインタラクティブに使用することはできませんpsql。一方、アーカイブ内のオブジェクトを一覧表示し、復元する必要があるオブジェクトを選択するオプションがあります。もう 1 つの便利なオプションは、アーカイブを処理するための同時ジョブの数を設定することです。場合によっては、これにより復元が大幅に高速化されることがあります。

pg_dumpオプションを使用するための出力形式を指定しない場合-F、プレーンテキスト アーカイブが作成されます。

于 2012-09-07T13:30:56.460 に答える