Postgresデータベースの復元:pg_restore -vs-ちょうどpsqlを使用して


16

pg_dump(プレーンテキスト形式)を使用してPostgresデータベースをダンプし、psql-fオプション付き)を使用して単純に復元します。

どちらが質問を請います:pg_restoreを使用しないことで何かが欠けているのpsqlですか?

pg_dumpパラメーターを使用して、トリガーの無効化などのオプションを制御できます。それでは、何のpg_restoreために使われますか?非プレーンテキストダンプフォーマット?


4
マニュアルから: " pg_restoreは、非プレーンテキスト形式のいずれかでpg_dumpによって作成されたアーカイブからPostgreSQLデータベースを復元するためのユーティリティです "
a_horse_with_no_name 14

回答:


19

SQL形式のダンプを作成した場合、使用できるのはのみですpsql

custom-format(pg_dump -Fc)またはdirectory-format(pg_dump -Fd)ダンプを作成した場合は、を使用でき、使用する必要がありますpg_restore

カスタムおよびディレクトリ形式のダンプには、プレーンなSQLスクリプトダンプよりも多くの利点があり、私はそれらを排他的に使用します。あなたは、選択的に、指定しなければならない多くのオプションなどの時間、復元のスキーマのみ、データのみ、または両方を含めるかどうかを選択することができ、唯一のいくつかのテーブル/スキーマを復元することができますpg_dumpSQL形式のダンプと時間がで選択することができrestore-をカスタム形式のダンプとを使用する場合の時間pg_restore

下位互換性がなければ、デフォルトは(カスタム)形式にpg_dumpなるはず-Fcです。

SQL形式のダンプをPostgreSQLデータベースに復元してから復元されたDBをダンプしないと、カスタム形式またはディレクトリ形式に変換できません。


また、関数の名前をバッチで変更し、適切な正規表現を使用してsqlファイルでできるようにデータ操作を行うことは可能ですか?
velop

1
いや、しかし、あなたがすることができpg_restoreずにdbnameそれを有効にする引数使用すると、1つが必要な場合は、SQL形式のダンプ。その逆はできません。
クレイグリンガー

@CraigRinger psqlを使用する場合と復元にpg_dumpを使用する場合に速度の違いはありますか?
ニクンジサードハラ

2
@NikunjSardhara通常はありませんがpg_restore、並列リストアをサポートします。これを使用すると、LOTが高速になります。
クレイグリンガー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.