[pgsql-jp: 36187] 原因不明のデータ消失

Nobuaki Inamura inamuran36 @ mahikari.or.jp
2005年 10月 18日 (火) 21:21:54 JST


稲村と申します。

現在以下の環境でPostgresを運用しております
Debian3.1(Sarge)
Postgres7.4.6

運用の都合上、ACCESSのmdbとPostgresのデータベースに同時に書き込みをしていて、
ACCESS+ODBCがインターフェースとなっています。
(トランザクションはACCESSのVBAで記述している。)

Postgresは2台のホストで稼動していて、1台目のPostgresにInsertかUpdateがあった際に、
トリガーにて反映されるようになっています。
これにはdblinkというユーザ定義関数を使用しています。

図解すると以下のようになります。


(インターフェース用mdb)------(データ用mdb)
             |
              ---(Postgres1)----------(Postgres2)
                        ↑
             トリガ+ユーザ定義関数にてリアルタイムに更新


この状況で次のような問題が発生しています。
・データ用mdbとPostgres1にはデータがないが、Postgres2にはデータがある。
・Postgres1にはその消失したデータを確かに一度書き込みに来ている形跡がある。
  →形跡とは、Postgres1ではシーケンスで一意の番号が取れるようになっているが、
   消失したデータ分だけシーケンス番号が飛んでいる。
・ACCESS上では特にエラーはかえっていない。

・・・というで、原因が特定できずに困っています。
データ用MDBにもデータがないので、書き込むところでロールバックしたのかな?とも
思ったのですが、シーケンスが進んでるし、Postgres2にはかかれてるし・・・
といった具合で迷宮入りしております。
(シーケンスはロールバックしても戻らないのでしょうか??
管理ツールにpgadminを使っていますが、管理ツール上から書き込みに失敗するとシーケンスだけ
勝手に進んでいます・・・。なんらかの設定等が悪いのでしょうか?)

心当たりのあります方、アドバイスをよろしくお願いいたします。


---------
稲村 inamuran36 @ mahikari.or.jp





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