WAL のアーカイブの使い方

書き終わった WAL を別の場所に保管する

書き方

ALTER SYSTEM SET archive_mode = on;(再起動が要る)
ALTER SYSTEM SET archive_command = 'test ! -f /backup/wal/%f && cp %p /backup/wal/%f';
SELECT * FROM pg_stat_archiver;

archive_mode を on にすると、WAL のファイルが書き終わるたびに archive_command を実行します。%p はファイルのパス、%f はファイルの名前です。test ! -f で、同じ名前を上書きしないようにします。コマンドが失敗すると、成功するまでやり直し、その間 WAL は pg_wal にたまり続けます。pg_stat_archiver の failed_count・last_failed_wal と、ログの archive command failed で気づけます。

例

SELECT archived_count, last_archived_wal, failed_count FROM pg_stat_archiver;

実際に打って練習する

PostgreSQL DBA コースの Lv37「WAL を保管する アーカイブ」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、プラチナ以上のプランで遊べます。

PostgreSQL の管理コマンド一覧(DBA)へ戻る