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 検証レポート