PostgreSQL バックアップリストア(pg_dump、pg_dumpall、pg_restore)
pg_dump
https://www.postgresql.jp/document/11/html/app-pgdump.html
第8回 バックアップ・リストア
- pg_dump [接続オプション] [-Fp|-Fc|-Fd|-Ft] [-f ファイル名] [データベース名]
- psql [接続オプション] [オプション] [データベース名]
- テキスト形式のバックアップをリストアする。
- pg_restore [接続オプション] [-d データベース名] [ファイル名]
- カスタム形式やtar形式のように、平文以外の形式でバックアップした場合に使用。
PostgreSQLサーバーが動いている状態で実行する。
GRANTやREVOKEによるアクセス権限は、各データベース内にあるため、バックアップされる。
インデックスはバックアップに含まれない。
物理バックアップの方が高速だが、サイズは大きい。(pg_dumpは低速だがサイズが小さい)
標準出力にバックアップを出力することができる。
受験対策
2.02_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法」
2.06_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法」
2.30_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法」
2.31_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法」
2.45_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法」
2.46_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法」
2.61_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法(各種バックアップコマンドの使い方)」
2.82_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法(各種バックアップコマンドの使い方) 」
2.120_Silverの例題解説「S2 運用管理 - S2.4 バックアップ方法(各種バックアップコマンドの使い方)」
pg_dumpall
https://www.postgresql.jp/document/11/html/app-pg-dumpall.html
第8回 バックアップ・リストア
- $ pg_dumpall -f db.sql
PostgreSQLサーバーが動いている状態で実行する。
データベースクラスタ全体のバックアップを取得する。(ユーザ情報などを含む)
バックアップに設定ファイルは含まれない。
内部的には、個々のデータベースについてpg_dumpコマンドを実行する。
テキスト形式でしか出力できない。
オプションを指定することで、グローバルオブジェクトのみをバックアップすることも可能。
psqlコマンドを使用してリストアする。
pg_restore
https://www.postgresql.jp/document/11/html/app-pgrestore.html
- pg_restore [接続オプション] [オプション] [ファイル名]
- -c, --clean リストア前に既存のデータベースオブジェクトを削除する。
- -d, --dbname データベース名。
- -1, --single-transaction リストア処理を1つのトランザクションとして実行する。
- -j, --jobs= 同時に実行するジョブ数。
リストア対象には、テーブルデータの他にラージオブジェクトやシーケンス値が含まれる。
リストア先に指定するデータベースは、リストア時に作成されている必要がある。
標準出力に出力することができる。