1. ホーム

[解決済み】コマンドラインを使ってpostgresのバックアップファイルをリストアする?

2022-03-24 02:44:29

質問

私はpostgresqlの初心者で、ローカルではpgadmin3を使っています。 しかし、リモートサーバ上では、そのような贅沢はできません。

すでにデータベースのバックアップを作成し、それをコピーしているのですが、コマンドラインからバックアップを復元する方法はあるのでしょうか? GUIやpg_dumpsに関連するものしか見ませんので、どなたか教えていただけると助かります。

解決方法は?

ダンプファイルの作成方法によって、2つのツールを見ることができます。

最初に参照するのはマニュアル・ページです。 pg_dump(1) これは、ダンプそのものを作成するものだからです。 と書いてあります。

ダンプは、スクリプトまたは アーカイブファイル形式 スクリプトダンプは プレーンテキストファイルで、SQL を再構築するために必要なコマンドです。 を、データベースと同じ状態にする。 保存された時点の 保存時の このようなスクリプトから復元するには、そのスクリプトを psql(1). スクリプトファイルを使用することができます データベースを再構築するために 他のマシンや他の アーキテクチャ、多少の修正 他のSQLデータベース製品でも

代替アーカイブファイル形式 は、pg_restore(1) と共に使用する必要があります。 データベースを再構築します。これにより pg_restoreは、何を選択するか がリストアされ、さらにそのリストアの順番を変更することもできます。 の項目は、リストアされる前に そのため アーカイブファイル形式は アーキテクチャを越えて移植可能である。

だから、捨て方による。 あなたはおそらく、優れた file(1) コマンドで復元できます。 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

リストアの動作に影響を与えるオプションがかなり多くあります。 ダンプの生成方法によっては、リストア前に "live" データベースをクリーンアウトするか、template0から再作成する必要があります(コメントで指摘されたとおり)。