PostgreSQL バックアップとリストア

Windows環境において、pg_dump でスクリプト形式のバックアップを作成し、psql で作成されたスクリプトを実行しリストアを行う方法

【事前準備】
pg_dump でバックアップを行うために事前にパスワードファイルを作成する必要がある。
ファイル名と保存場所は、%APPDATA%\postgresql\pgpass.conf
内容は各項目をコロン (:) で区切り、次のフォーマットで記述する。
ホスト名:ポート番号:データベース名:ユーザー名:パスワード

【バックアップ】

pg_dump.exe -h ホスト名 -p ポート番号 -d データベース名 -U オーナーユーザー -F plain -v -f バックアップファイル名 2> ログ・ファイル名

(例)
pg_dump.exe -h localhost -p 5432 -d db001 -U user001 -F plain -v -f C:\Temp\bk20180620.sql 2> C:\Temp\bk20180620.log

これで、スクリプト形式のバックアップが C:\Temp\bk20180620.sql に作成され、pg_dump 実行時のログが、C:\Temp\bk20180620.log に記録される。

【リストア】

  1. psql でログインする
    データベースは「postgres」ログインIDは「postgres」
  2. データベースのドロップ(リストア先のデータベースが存在する時)
    DROP DATABASE リストア先のデータベース名;
  3. データベースの作成
    CREATE DATABASE リストア先のデータベース名 OWNER オーナーユーザー;
    (バックアップ時のユーザーやテーブルスペースなども事前に作成する)
  4. 一度、psql を終了
    \q
  5. 再度 psql でログインする
    データベースは「リストア先のデータベース名」ログインIDは「postgres」
  6. 下記のコマンドを投入
    \i ‘c:\\temp\\bk20180620.sql’

以上

シェアする

  • このエントリーをはてなブックマークに追加

フォローする