セットアップした PostgreSQL 9.4 クラスターのフェイルオーバーをテストしているときに、このエラーに出くわしました。ここでは、スレーブを新しいマスターに昇格させようとしています:
$ repmgr -f /etc/repmgr/repmgr.conf --verbose standby promote
2014-09-22 10:46:37 UTC LOG: database system shutdown was interrupted; last known up at 2014-09-22 10:44:02 UTC
2014-09-22 10:46:37 UTC LOG: database system was not properly shut down; automatic recovery in progress
2014-09-22 10:46:37 UTC LOG: redo starts at 0/18000028
2014-09-22 10:46:37 UTC LOG: consistent recovery state reached at 0/19000600
2014-09-22 10:46:37 UTC LOG: record with zero length at 0/1A000090
2014-09-22 10:46:37 UTC LOG: redo done at 0/1A000028
2014-09-22 10:46:37 UTC LOG: last completed transaction was at log time 2014-09-22 10:36:22.679806+00
2014-09-22 10:46:37 UTC FATAL: could not open directory "pg_logical/snapshots": No such file or directory
2014-09-22 10:46:37 UTC LOG: startup process (PID 2595) exited with exit code 1
2014-09-22 10:46:37 UTC LOG: aborting startup due to startup process failure
pg_logical/snapshots
dir は実際にはマスターノードに存在し、空です。
UPDpg_logical/snapshots
:空のディレクトリを手動で作成したところpg_logical/mappings
、サーバーは文句なしに起動しました。repmgr standby clone
同期中にこのディレクトリを省略しているようです。しかし、このディレクトリの目的が知りたいだけなので、疑問は残ります。セットアップに何かが欠けている可能性があります。単にグーグルで検索しても意味のある結果は得られませんでした。