【PostgreSQL】Windowsでpg_dumpとpg_restoreの実行方法

2020年7月18日

スポンサーリンク

DBのバックアップとリストア

ここではWindows機でのバックアップとリストアの方法を紹介します。

 

バックアップ構文

バックアップをするための基本的な構文は次の通りです。(コマンドプロンプトより実行)

pg_dump -U ユーザー名 -f バックアップファイルのフルパス -Fc データベース名

『'pgdump' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。』のエラーメッセージが表示された場合はcdコマンドでpg_dumpのexeがあるフォルダまで移動したあとに、pg_dumpを実行します。

下の例では、「…\PostgreSQL\12」としていますが12の個所は使っているバージョンに合わせて変更して下さい。

--1.pg_dump.exeのあるフォルダまでcdコマンドで移動する
cd C:\Program Files\PostgreSQL\bin

--2.pg_dumpの実行
pg_dump -U ユーザー名 -f バックアップファイルのフルパス -Fc データベース名

バックアップファイルのフルパスは""(ダブルクオーテーション)でくくって下さい。また、拡張子は「.backup」になります。

 

 

バックアップコマンド

実際のバックアップコマンド例です。

--1.pg_dump.exeのあるフォルダまでcdコマンドで移動する
cd C:\Program Files\PostgreSQL\bin

--2.pg_dumpの実行
pg_dump -U postgres -f "C:\test\db.backup" -Fc testdb

 

 

バックアップを実行時のパスワードをスキップする

バックアップを実行時のパスワードをスキップする方法はこちらで紹介しています。

 

 

リストア構文

リストアをするための基本的な構文は次の通りです。(コマンドプロンプトより実行をします。)

--1.あらかじめ作っておいた空のデータベースにリストアする
pg_restore -U postgres -d データベース名 "バックアップファイルパス" 

--2.リストアと同時にデータベースを作成する(作られるDB名はバックアップと同じになる)
pg_restore -U ユーザー名 -C -d postgres "バックアップファイルパス"

※バックアップファイルのフルパスは""(ダブルクオーテーション)でくくって下さい。

 

①はあらかじめpgAdmin等で作成しておいたデータベースに対してリストアをする構文です。『-d』でデータベースを指定していますが、この指定されているデータベースがなけばエラーが発生します。

 

②は、あらかじめデータベースを作る必要はありませんが、バックアップで取得したDB名に自動でなります。※『-C』『-d』は『新規に指定したDB名でリストアする』ように見えますが、DB名は指定できません。

 

PostgreSQLの構文まとめを書いています

入門~経験者まで「基本構文・こんな時どう書くんだっけ?」のまとめ