2022年11月

.pgpassの書式

pg_basebackupコマンドに--write-recovery-confオプションをつけて実行すると、postgresql.auto.confが生成されます。
その中身は
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 'user=[ユーザー名] passfile=''/var/lib/pgsql/.pgpass'' channel_binding=prefer host=[ホスト名] port=5432 sslmode=prefer sslcompression=0 sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres target_session_attrs=any'
のようになっています。
pg_basebackupをするためのユーザーがバックアップ元に接続するためにパスワードが必要な場合、そのパスワードを.pgpassに書くことができます。
.pgpassの書式は、34.16. パスワードファイルの通りです。
具体的には
erogamescape.dyndns.org:5432:replication:[ユーザー名]:[パスワード]
となります。
また、.pgpassの権限は600でなければなりません。
600でないとログにエラーが出力されます。
WARNING: password file "/var/lib/pgsql/.pgpass" has group or world access; permissions should be u=rw (0600) or less


PostgreSQL13からpg_basebackupコマンドの進捗を確認できるようになりました。


PostgreSQL13からpg_basebackupコマンドの進捗をバックアップ元でも確認できるようになりました。

pg_basebackupコマンドの実行の際に-Pオプションをつけて実行すれば、実行の進捗を確認できるので、バックアップ元で進捗状況を確認できなくてもいいとは思うのですが、-Pをつけわすれて実行してしまった場合、
pg_basebackup: starting background WAL receiver
と表示されてから何も応答がなくて、いつバックアップが終わるのかわからなくなった…というときに重宝します。
バックアップ元で
[postgres@sakura 15]$ psql
psql (15.1)
Type "help" for help.

postgres=# \x
Expanded display is on.
postgres=#  SELECT * FROM pg_stat_progress_basebackup;
(0 rows)
とSELECT * FROM pg_stat_progress_basebackup;で確認できます。
バックアップ先でpg_basebackupコマンドを実行してから、バックアップ元でSELECT * FROM pg_stat_progress_basebackup;を実行すると
Sun 13 Nov 2022 11:45:38 AM JST (every 2s)

-[ RECORD 1 ]--------+---------------------------------
pid                  | 2700275
phase                | waiting for checkpoint to finish
backup_total         | 
backup_streamed      | 0
tablespaces_total    | 0
tablespaces_streamed | 0
と進捗が表示されます。
このとき
postgres=#  \watch
とwatchコマンドを実行すると、SELECT * FROM pg_stat_progress_basebackup;を淡々と実行してくれます。
実行の様子は以下の通りです。
Sun 13 Nov 2022 11:45:54 AM JST (every 2s)

-[ RECORD 1 ]--------+---------------------------------
pid                  | 2700275
phase                | waiting for checkpoint to finish
backup_total         | 
backup_streamed      | 0
tablespaces_total    | 0
tablespaces_streamed | 0

Sun 13 Nov 2022 11:45:56 AM JST (every 2s)

-[ RECORD 1 ]--------+-------------------------
pid                  | 2700275
phase                | streaming database files
backup_total         | 13075364864
backup_streamed      | 15485440
tablespaces_total    | 1
tablespaces_streamed | 0

Sun 13 Nov 2022 11:45:58 AM JST (every 2s)

-[ RECORD 1 ]--------+-------------------------
pid                  | 2700275
phase                | streaming database files
backup_total         | 13075364864
backup_streamed      | 36467200
tablespaces_total    | 1
tablespaces_streamed | 0

Sun 13 Nov 2022 11:46:00 AM JST (every 2s)

-[ RECORD 1 ]--------+-------------------------
pid                  | 2700275
phase                | streaming database files
backup_total         | 13075364864
backup_streamed      | 57504768
tablespaces_total    | 1
tablespaces_streamed | 0

[参考文書]
PostgreSQL13 検証レポート
記事検索