発生している問題
現在PostgreSQLのWALファイルをアーカイブする設定を行っているのですが、
下記の問題により出来ない状態です。
どなたか改善策をご教授いただけないでしょうか。
環境
Windows Server 2019
PostgreSQL 13.4
※PostgreSQLの環境変数は未設定(業務都合により)
やりたいこと
postgresql.confファイル内の以下の記述を変更することで、WALファイルの自動アーカイブを行いたい。
#archive_mode = off archive_mode = on # off -> onに書き換え #archive_command = '' archive_command = 'copy "%p" "C:¥¥Program Files¥¥PostgreSQL¥¥13¥¥archive¥¥%f"' # Windowsのためcopyコマンドでarchiveファイルにコピーしたい
※ %pはアーカイブ対象のWALファイルの完全パス、%fは対象のファイル名
この設定により、WALファイルが新しく作成されるたびに古いWALがarchiveフォルダにコピーされてくれるはず、、、という認識です。
発生している問題
コマンドプロンプト上でサービスを起動pg_ctl start
すると、なにもしなくても不定期的(30~60秒に1度程度)に0個のファイルをコピーしました
と「現在あるWALファイル個数分だけ」繰り返し出力されてしまいます。
まとまめすと、以下2点の問題があります。
- 不定期的にWALのコピー(archive_command)が実行されてしまう。
- コピーが失敗している(もちろんarchiveフォルダにコピーされていない)。
上記問題に対して、解決策をお持ちの方がいらっしゃいましたらご教授いただけますと幸いです。
試したこと
- コマンドプロンプト上で直接WALファイルをコピーする
copy "[WALファイルのパス]¥[WALファイル名]" "C:¥Program Files¥PostgreSQL¥13¥archive¥[ファイル名]"
→ できた
- confファイル上で、%p, %fではなく直接ファイルを指定した。
→ できなかった。同様に0個のファイルがコピーされた。
あなたの回答
tips
プレビュー