[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 メーリングリストの案内