web-dev-qa-db-ja.com

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

私はpostgresqlの初心者で、ローカルではpgadmin3を使用しています。ただし、リモートサーバーでは、そのような贅沢はありません。

データベースのバックアップを作成してコピーしましたが、コマンドラインからバックアップを復元する方法はありますか?私はGUIやpg_dumpsに関連するものしか見ていないので、誰かがこれをどうやってやればいいのか教えてもらえれば、それは素晴らしいことです!

208
TwixxyKit

ダンプファイルの作成方法に応じて、検討するツールが2つあります。

あなたの最初の参照元はmanページpg_dump(1)であるべきです。それがダンプそれ自身を作成するものだからです。それは言います:

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

データベースを再構築するには、代替アーカイブファイルフォーマットをpg_restore(1)で使用しなければなりません。それらはpg_restoreが何が復元されるかについて選択的にすることを可能にします、あるいは復元される前にアイテムを並べ替えることさえ可能にします。アーカイブファイルフォーマットは、アーキテクチャを越えて移植できるように設計されています。

それで、それが捨てられた方法によります。おそらく、file(1)という優れたコマンドを使ってそれを理解することができます - ASCII textやSQLに言及しているのなら、psqlで復元するべきです。そうでなければpg_restoreを使うべきです

復元はとても簡単です。

psql -U <username> -d <dbname> -1 -f <filename>.sql

または

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

それぞれのマンページをチェックしてください - 復元がどのように機能するかに影響するたくさんのオプションがあります。ダンプがどのように生成されたかに応じて、復元する前に「ライブ」データベースを消去するか、template0からそれらを再作成する必要があります(コメントに示されているとおり)。

260

バックアップを作成します

pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f 
"/usr/local/backup/10.70.0.61.backup" old_db

-F cはカスタムフォーマットです(圧縮されており、-j Nと並行して実行できます)。-bはBLOBを含み、-vは冗長で、-fはバックアップファイル名です

バックアップからの復元

pg_restore -h localhost -p 5432 -U postgres -d old_db -v 
"/usr/local/backup/10.70.0.61.backup"

設定が重要です - h localhost - オプション

151
pilot

データベースに対する完全な権限を得るには、postgresとしてログインする必要があります。

su - postgres
psql -l                      # will list all databases on Postgres cluster

pg_dump/pg_restore

  pg_dump -U username -f backup.dump database_name -Fc 

スイッチ-Fはバックアップファイルのフォーマットを指定します:

  • cはカスタムPostgreSQLフォーマットを使用します。これは圧縮されており、最小のバックアップファイルサイズになります。
  • 各ファイルが1つのテーブルであるディレクトリのd
  • TARアーカイブ用のt(カスタムフォーマットよりも大きい)
  • -h/--Hostサーバーが稼働しているマシンのホスト名を指定します
  • -W/--passwordデータベースに接続する前にpg_dumpにパスワードの入力を要求する

バックアップを復元:

   pg_restore -d database_name -U username -C backup.dump

パラメータ-Cは、データをインポートする前にデータベースを作成する必要があります。うまくいかない場合は、いつでもデータベースを作成できます。コマンドで(ユーザーpostgresまたはデータベースを作成する権限を持つその他のアカウントとして)createdb db_name -O owner

pg_dump/psql

引数-Fを指定しなかった場合は、デフォルトのプレーンテキストSQLフォーマットが使用されました(または-F pとともに)。それならpg_restoreは使えません。 psqlを使ってデータをインポートすることができます。

バックアップ:

pg_dump -U username -f backup.sql database_name

リストア:

psql -d database_name -f backup.sql
64
Tombart

POSTGRESQL 9.1.12

ダンプ:

pg_dump -U user db_name > archive_name.sql

ユーザーパスワードを入力してEnterを押します。

リストア:

psql -U user db_name < /directory/archive.sql

ユーザーパスワードを入力してEnterを押します。

44
Natan Medeiros

データベースの復元に使用するpg_dumpのバージョンは以下のとおりです。

pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup

またはpsqlを使う:

psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup

-hホスト、-pポート、-uログインユーザー名、-dデータベースの名前

28
Yahor M

GZIPによるバックアップと復元

より大きなサイズのデータ​​ベースではこれはとても良いです

バックアップ

pg_dump -U user -d mydb | gzip > mydb.pgsql.gz

頼りにする

gunzip -c mydb.pgsql.gz | psql dbname -U user

https://www.postgresql.org/docs/9.1/static/backup-dump.html

13
Sarath Ak
Backup:  $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}

Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
8
Aaron Lelevier

1.端末を開きます。

2.以下のコマンドでデータベースをバックアップします

あなたのpostgres bin - /opt/PostgreSQL/9.1/bin/

ソースデータベースサーバ - 192.168.1.111

バックアップファイルの場所と名前 - /home/dinesh/db/mydb.backup

ソースDB名 - mydatabase

/opt/PostgreSQL/9.1/bin/pg_dump --Host '192.168.1.111' --port 5432 --username "postgres" --no-password - フォーマットカスタム--blobs --file "/ home/dinesh/db /mydb.backup "" mydatabase "

3.宛先にmydb.backupファイルを復元します。

送信先サーバー - localhost

宛先データベース名 - mydatabase

バックアップを復元するためのデータベースを作成します。

/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "データベースの作成mydatabase"

バックアップを復元します。

/opt/PostgreSQL/9.1/bin/pg_restore --Host 'localhost' --port 5432 --username "postgres" --dbname "mydatabase" --no-password --clean "/ home/dinesh/db/mydb。バックアップ"

6
Dinesh-SriLanka

Pg_dumpを使ってバックアップを作成した場合は、次の方法で簡単に復元できます。

  1. コマンドラインウィンドウを開く
  2. Postgresのbinフォルダに行きます。例えば、次のとおりです。cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
  3. データベースを復元するためのコマンドを入力してください。 For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
  4. あなたのpostgresユーザーのパスワードを入力してください
  5. 復元処理を確認する
3
user6155322

試してみてください。

pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>
3

下記のリンクが言ったように、ダンプファイルを復元するためにpsqlコマンドを使用することができます。

https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE

psql dbname < infile

ユーザー名を設定する必要がある場合は、コマンドの後にユーザー名を追加するだけです。

psql dbname < infile username
2
Maryam Saeidi

これを試して:

psql -U <username> -d <dbname> -f <filename>.sql

.sqlファイルからDB psqlを復元します。

2
Faysal Maqsood

次のコマンドが役立つかどうかを確認してください。

Sudo su - yourdbuser
psql
\i yourbackupfile
2
Mehmet Ali

バックアップSQLファイルがある場合は、簡単に復元できます。下記の指示に従ってください。

1. At first, create a database using pgAdmin or whatever you want (for example my_db is our created db name)
2. Now Open command line window
3. Go to Postgres bin folder. For example:  cd "C:\ProgramFiles\PostgreSQL\pg10\bin"
4. Enter the following command to restore your database: psql.exe -U postgres -d my_db -f D:\Backup\backup_file_name.sql 

必要に応じてあなたのpostgresユーザのパスワードを入力してPostgresにその仕事をさせてください。その後、復元プロセスを確認できます。

1
Omar Hasan

Postgresバックアップファイルの復元は、最初にどのようにバックアップを取ったかによって異なります。

Pg_dumpを-F cまたは-F dと一緒に使った場合はpg_restoreを使う必要があります。

psql -h localhost -p 5432 -U postgres <バックアップファイル

postgresデータベースをバックアップおよび復元する9つの方法

1
Prashant Kumar

1)psqlターミナルを開きます。

2)ダンプファイルを解凍します。

3)空のデータベースを作成します。

4).dumpファイルを復元するには、次のコマンドを使用します。

<database_name>-# \i <path_to_.dump_file>
1
Vaibhav Desai

これは私のために働いた:

pg_restore --verbose --clean --no-acl --no-owner --Host = localhost -dbname = db_name --username = username latest.dump

1
Franz

データをバックアップする場合、またはバックアップからデータを復元する場合は、次のコマンドを実行できます。

1データのバックアップを作成するには、C:\programfiles\postgres\10\bin\のようにpostgres\bin \ディレクトリに移動してから、次のコマンドを入力します - pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb.090718_after_readUpload.backup

2バックアップからデータを復元するには、C:\programfiles\postgres\10\bin\のようにpostgres\bin \ディレクトリに移動し、以下のコマンドを入力します - C:\programFiles\postgres\10\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ngb.130918.backup

バックアップファイルが存在することを確認してください。

Pg_dumpを実行する際に認証の問題がありましたので、自分のダンプファイルを移動しました。

mv database_dump /tmp

一時ディレクトリに入れて実行した

su -u postgres
cd /tmp
pg_restore database_dump

大きなデータベースダンプがある場合は、現在のユーザとpostgresユーザがデータベースダンプファイルにアクセスしてそこに置くことができる別のディレクトリを作成したいだけかもしれません。

0
user1876508