[pgsql-jp: 37587] 高負荷状態時にデータ破損の可能性
Mitsutoshi Nakamura
gmataw @ bitvalue.com
2006年 10月 19日 (木) 18:05:49 JST
中村@東京です。
先日、PHP で構築した運用中の会員サイトのメンバー情報テーブルを
ある時点の状態に戻すという作業を行なった時に、操作したメンバー
情報テーブル以外もデータが破損してしまうという現象がありました。
該当 DB は 60 テーブルで構成されており、データが不正になっていた
テーブルは(現状確認出来たのは)2 テーブルのみです。
※復旧作業に追われている為、全テーブルの内容は確認出来てません
確認できた不正なテーブルの内容は以下の 2 パターンになります。
1.一部の行のフィールドがずれた様な内容に変わっている
2.全てのデータが 3 倍の件数になっている
状況(サーバーの高負荷等)によっては、上記の様な事は有りうるの
でしょうか?
■環境
OS : RHEL3
DB : PostgreSQL7.1.3
AP : PHP4.3.7
■cron
毎時 15 分に pg_dump にてバックアップを作成している。
ファイルサイズは 170M 程度。
■実行内容
1.作業用に db_tmp_1 を作成
$ createdb db_tmp_1
2.db_tmp_1 に復旧したい日時の DB を構築
$ psql db_tmp_1 < 200610xx-xxxx.dmp
3.上記 No.2 の作業(違う時間のダンプファイル)を複数回実施
--- 補足 1 ---
作業開始時間としては 16:00 頃からで、WEB のアクセスも頻繁にあり
cron の実行時間と重なったときは負荷平均率が 8.00 程度までいって
いたと記憶しています。
--- 補足 2 ---
データ破損は運用中 DB のメンバーテーブルを変更する作業の前に
発生している。
また、上記作業中は私自身混乱しており手作業のミスでデータを壊して
しまったのか、それともある条件下では上記の様な事が起こり得るのか
という事を調査しております。
以上、皆様のアドバイスを頂けると幸いです。
pgsql-jp メーリングリストの案内