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

2021年7月25日PostgreSQLその他

コマンドの前に:分かりづらいpg_dumpを詳しく解説

pg_dumpはオプションも多く、はっきり言って初見では難しいと思っています。

 

恥ずかしながら近頃ようやく理解できたといえるようになってきたと思うので、

自分がわかりづらいと感じたことを活かし、下の記事にまとめました。

 

サイトによってpg_dumpの書き方に違いがある理由もこれでわかるはず。

時間がある時にでも一読してもらえると嬉しいです。

(本音言うとこの下のコマンド見なくていいから、こっち見てほしいです!)

 

 

 

pg_dumpでバックアップをする

バックアップをするためには、pg_dump.exeを使用します。

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

 

実際のバックアップコマンド例を紹介します。

-- 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

 

 

 

 

pg_restoreでDBを復元(=リストア)する

バックアップファイルからDBをリストアをするためには、pg_restore.exeを使用します。

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

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

 

・1.はあらかじめ作成しておいたDBに対してリストアをする構文です。

『-d』でDBを指定していますが、指定するDBがなけばエラーが発生します。

 

・2.はDBがない場合で、バックアップで取得したDB名が作成されます。

※『-C』『-d』は『新規に指定したDB名でリストアする』で、DB名は指定できません。