[pgsql-jp: 39107] データディレクトリが突然使用できなくなったことを検知する設定について

高尾 宏治 kouji @ netlab.jp
2008年 1月 30日 (水) 16:31:21 JST


高尾と申します。

Debian GNU/Linux 3.1(sarge)上で、
PostgreSQL 7.4.7とpgpool 3.1.2を使用しています。
先日、ファイルシステムに異常が発生し、
強制的に/var/libがアンマウントされ、使用できない状態になりました。
/var/libはPostgreSQLのデータディクレクトリである/var/lib/postgre/dataを
含みます。

このとき、PostgreSQLがSELECTやINSERTのときに
常にエラーを返すわけではないことを知りました。
手元の環境で、PostgreSQLを起動後、データディレクトリをmvした後に、
INSERTやSELECTが成功することを確認しました。
オンメモリで全ての処理を行うなどにより、
ディスクアクセスを行わない場合は、エラーにならないのかな、
と想像しています。
つまり、データディレクトリがないのに、
PostgreSQLが普通の動作をしてしまいました。

このため、pgpoolがPostgreSQLの異常を検知できず、
ファイルオーバーできませんでした。
pgpoolのヘルスチェックでも正常だと判断するようです。

そこで、お聞きしたいのですが、
PostgreSQLの起動中にデータディレクトリに、突然アクセスできなくなった場合、
PostgreSQLが異常が発生したと判断し、postmasterを強制終了したり、
接続を拒否できるような設定などはないでしょうか。

もし、設定がないようならば、
定期的にデータディレクトリの有無をチェックし、
データディレクトリがない場合に、
PostgreSQLのプロセスを強制終了させるようなプログラムを
開発しようと思っています。

◯環境

OS: Debian GNU/Linux 3.1(sarge)
PostgreSQL: 7.4.7
pgpool: 3.1.2

以上です。
よろしくお願いします。

---
株式会社ネットワーク応用通信研究所 研究員 高尾 宏治
〒690-0826 島根県松江市学園南二丁目12番5号
          HOYOパークサイドビル・2F
TEL:0852-28-9280 FAX:0852-28-9281
URL:http://www.netlab.jp/
e-mail:kouji @ netlab.jp




pgsql-jp メーリングリストの案内