- 1. 概要
- 2. 全体
- 3. ロール
- 4. 参考サイト
1. 概要
「pg_dumpall」は、主に「PostgreSQL」全体のバックアップを行います。
2. 全体
特に大きさその他に支障がない場合は、全体をまとめて、バックアップしたり、リストアしたりするのが最も簡単な方法です。
データベース全体をテキストファイルに出力するには
pg_dumpall --clean --if-exists --column-inserts --username=postgres --file ファイル名
圧縮なしにテキストファイルに出力しますので、比較的小さめのデータベースが対象になります。
「--clean」は、リストアの際、リストア先のデータベースをいったん、クリアする構文を仕込んでいます。
「--if-exists」は、「--clean」の際、「もしそのテーブルがあれば」という条件つきになります。
「--column-insert」は、データの入力を、「SQL」の「INSERT」文の構文にしています。
「--username=pgsql」で右辺に設定しているのは、「postgreSQL」ユーザです。
バージョン「8」までは、「pgsql」 。
バージョン「9」以降は、「postgres」になりますのでご注意ください。
デフォルトでは、ポート番号「5432」で接続しています。
「PostgreSQL」側で、接続に使用しているポート番号が異なる場合は、下記のように指定します。
pg_dumpall --port=ポート番号 ...
文字のエンコードを変更する際は、下記のように指定します。
(「PostgreSQL 9.6」では、このオプションは効きません)
pg_dumpall --encoding=エンコード ...
上記でバックアップしたファイルをリストアするには
psql --quiet --username=postgres --file ファイル名 postgres
「--quiet」オプションは、冗長な出力を避けるものです。
1行「Insert」につき。
INSERT 0 1
てな、出力があるので、このオプションはつけておいた方がよいでしょう。
3. ロール
バックアップ。
pg_dumpall --roles-only --clean --if-exists > ファイル名
リストア。
psql -f ファイル名 postgres
4. 参考サイト
本ページは、下記のサイトを参考にさせていただきました。
「pg_dump」
|
|