PostgreSQLでクラスタ全体をバックアップする

実際に試した環境

・ Ubuntu 20.04
・ PostgreSQL 12

バックアップする。

# pg_dumpall -U postgres -f /mnt/backup/test.sql

「Peer authentication failed for user “postgres”」が発生する場合、下記ファイルを編集してpeer認証を無効(サービス再起動が必要)にする。

#local    all    postgres            peer
local    all    postgres            md5

もしcronなどで利用するためにパスワード認証をスキップしたい場合は、実行ユーザー(ここではroot)のホームディレクトリに下記を作成する。

*:*:*:postgres:ぱすわーど

バックアップからリストアする。

# su postgres
$ psql -f /mnt/backup/test.sql

補足

圧縮しながらバックアップする。

# pg_dumpall -U postgres | gzip -c /mnt/backup/test.sql.gz

パスワードをつける場合はzipを使用するぐらいしか思いつかない。

# cd /mnt/backup/
# pg_dumpall -U postgres -f test.sql
# zip --encrypt --password ぱすわーど test.sql.zip test.sql