PostgreSQL 9.4 バックアップ(コマンド系)
PostgreSQLをバックアップする方法はいくつかあります。今回はコマンドを使うバックアップをやります。
コマンドで行うバックアップはデータベース稼働中に実行できます。
■全体バックアップ
全体バックアップを行うには、pg_dumpall コマンドを実行します。
cd C:\Program Files\PostgreSQL\9.4\bin
pg_dumpall -c -h localhost -l postgres -p 5432 -U postgres -f C:\work\ps\tmp\test.sql
cdコマンドでpg_dumpall.exeがあるフォルダまで移動してから適当にオプションを付けてpg_dumpallを実行します。
コマンドラインオプション
-c | バックアップファイルにデータベース削除コマンドとロール削除コマンドを含めます |
-h | データベースサーバを指定します。上記はlocalhostを指定しましたが、IPアドレスでもいけます。 |
-l | データベース名を指定します |
-p | ポートを指定します |
-U | 接続ユーザを指定します。(パスワードは起動後に求められます) |
-f | バックアップの出力先ファイルを指定します。 |
コマンドラインオプションは他にもあります。詳しくは公式ページを参照して下さい。
■個別バックアップ
個別バックアップを行うには、pg_dump コマンドを実行します。
cd C:\Program Files\PostgreSQL\9.4\bin
pg_dump -Fp -c -h localhost -d postgres -p 5432 -U postgres -t m_user -f C:\work\ps\tmp\test2.sql
cdコマンドでpg_dump.exeがあるフォルダまで移動してから適当にオプションを付けてpg_dumpを実行します。 -t でテーブルを指定します。複数指定することやワイルドカードの指定ができます
複数指定
-t m_user -t t_loginhistory
ワイルドカード指定
-t *user
コマンドラインオプション
-c | バックアップファイルにデータベースオブジェクト削除コマンドを含めます。バックアップ形式がテキストのみ有効です |
-h | データベースサーバを指定します。上記はlocalhostを指定しましたが、IPアドレスでもいけます。 |
-d | データベース名を指定します |
-p | ポートを指定します |
-U | 接続ユーザを指定します。(パスワードは起動後に求められます) |
-f | バックアップの出力先ファイルを指定します。 |
-t | テーブルを指定します。複数指定やワイルドカードも使えます |
-T | 対象外とするテーブルを指定します。複数指定やワイルドカードも使えます |
-Fp | テキストで出力 |
-Fc | 圧縮形式で出力 |
-Fd | テーブル毎に圧縮ファイルを作成しフォルダで出力 |
--column-inserts | COPYコマンドではなくINSERT文で出力。リストア時はCOPYより遅い |
コマンドラインオプションは他にもあります。詳しくは公式ページを参照して下さい。
■リストア
リストアを行うには psql 、 pg_restore コマンドを使用します。テキスト形式の場合、psql を使用し、 の場合、pg_restore を使用します。
psqlでテキスト形式バックアップをリストア
cd C:\Program Files\PostgreSQL\9.4\bin
psql -U postgres -f C:\work\ps\tmp\test.sql
コマンドラインオプション
-d | データベース名を指定します |
-f | ファイルに書かれたSQLを実行します |
-h | データベースサーバを指定します。 |
-p | ポートを指定します |
-U | 接続ユーザを指定します。 |
コマンドラインオプションは他にもあります。詳しくは公式ページを参照して下さい。
pg_restoreで圧縮形式バックアップをリストア
cd C:\Program Files\PostgreSQL\9.4\bin
pg_restore -c -d postgres -U postgres C:\work\ps\tmp\test2.backup
コマンドラインオプション
-c | リストア前にデータベースオブジェクトを削除します |
-d | データベースを指定します |
-t | テーブルを指定します |
-U | 接続ユーザを指定します |
-h | データベースサーバを指定します。 |
-p | ポートを指定します |
コマンドラインオプションは他にもあります。詳しくは公式ページを参照して下さい。
ページのトップへ戻る