postfix + dbmail + pgpool + postgresql
やっと設定が終わってエラーが出なくなった。
http://www2b.biglobe.ne.jp/~caco/pgpool/
http://journal.mycom.co.jp/column/yetanother/028/index.html
http://ossipedia.ipa.go.jp/capacity/EV0612150226/
http://ossipedia.ipa.go.jp/capacity/CS0612150225/
dbmailがどのようにテーブルロックしているかを追って修正するつもりはないので、pgpool.conf に
replication_strict = true insert_lock = true
を設定する。
あとDebianでpostgresqlの待ち受けポートを変更する場合、/etc/postgresql/postgresql.conf だけじゃなくて /etc/init.d/postgresql にもポートの設定があるので注意する。
pgpoolを5432以外のポートで動かしていると
psql -U user dbname
と接続してDBを操作したときに面倒なことになるので、pgpoolを5432で動かしてpostgresqlを別のポートで動かすようにした。
postgreyを使っていると、海外からのスパムが未だにゼロ件だ。tail -f でログを表示してると、時々一秒間に10接続以上スパムが来たりしていた。
動いてるサーバをいじるのって気を遣うねぇ・・。webサーバならともかくメールは消失させるわけにいかない。しかしレプリケーション設定・復旧時にはワンミスでその可能性がある・・怖い怖い。
# 追記
まだエラーが出るなぁ・・・。
invalid byte sequence for encoding "EUC-JP": 0x****
どの段階で何の文字コードが使われるんだっけ・・。
取り敢えず英語/日本語では使えるし、このエラーが出ている送信元は今のところ全部スパムっぽいから放っておいてもいいんだけど・・・。むしろpostgreyを通過した後に予想外のフィルタがかかってるわけだが。。しかし破棄されるわけではなくキューに溜まっていく。
それにShift-JISにしか無い文字コードでメールを送ったら、文字化け以前に届きもしないのはまずいな。自分のメーラーの電八は送信前に勝手にチェックされるから、ちょっと他の人に試してもらわないと・・。
データベースの本文格納カラムをバイト型にしないとダメなのかな。運用開始後に気付くことが多すぎる・・。