コマンドラインを使用して postgres バックアップ ファイルを復元しますか? 質問する

コマンドラインを使用して postgres バックアップ ファイルを復元しますか? 質問する

ローカルでは、pgadmin3 を使用します。ただし、リモート サーバーでは、そのような余裕はありません。

すでにデータベースのバックアップを作成してコピーしましたが、コマンドラインからバックアップを復元する方法はありますか? GUI または pg_dumps に関連するものだけが表示されます。

ベストアンサー1

ダンプ ファイルを作成した方法に応じて、確認するツールが 2 つあります。

最初の参照元はmanページですpg_dumpダンプ自体を作成するのはそれだからです。次のように書かれています。

ダンプはスクリプトまたはアーカイブ ファイル形式で出力できます。スクリプト ダンプは、データベースを保存時の状態に再構築するために必要な SQL コマンドを含むプレーン テキスト ファイルです。このようなスクリプトから復元するには、スクリプトを psql(1) に渡します。スクリプト ファイルを使用すると、他のマシンや他のアーキテクチャでもデータベースを再構築できます。また、多少の変更を加えることで、他の SQL データベース製品でもデータベースを再構築できます。

データベースを再構築するには、pg_restore(1) で代替のアーカイブ ファイル形式を使用する必要があります。これにより、pg_restore は復元する対象を選択したり、復元前に項目を並べ替えたりすることができます。アーカイブ ファイル形式は、アーキテクチャ間で移植できるように設計されています。

ダンプされた方法によって異なります。Linux/Unixを使用している場合は、優れたコマンドを使用しておそらく理解できますfile(1)。ASCIIテキストやSQLが記載されている場合は、次のように復元する必要があります。psqlそうでなければ、おそらくpg_restore

復元は非常に簡単です:

psql -U username -d dbname < filename.sql

-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql

または

pg_restore -U username -d dbname -1 filename.dump

それぞれのマニュアルページを確認してください。復元の動作に影響するオプションがかなりあります。ダンプの生成方法によっては、復元する前に「ライブ」データベースをクリーンアップするか、template0 から再作成する必要があります (コメントで指摘されているように)。

おすすめ記事