ぺーぺーぷーぷーな日々

Claris FileMaker と戯れる日々です。

FileMakerの「データベースの修復中に問題が検出されました」に驚く。

今年のはじめ頃のこと。
ANNYYS_Dv 稼働前の点検として、全ての自作の FileMaker のファイルに「修復」を実行したところ、問題が検出されてたじろいでしまいました。しかも複数のファイルから(汗)。



対処法としては、問題がなかった頃のクローンファイルと置き換えて、データをインポートし直してあげる、といった方法が適切だと思いますが、私の場合、古いバックアップにもすでに問題が発生しているものがあって、適切な代替ファイルが見つかりませんでした…。このことについては後述。


何にせよ、使い続けるのは危険。
しかし最初から作り直すとなると、なかなか辛い。そこで、自分なりに問題箇所の特定を試みました。
ちなみにログファイルを見ても、私には解析できなくて、問題箇所の特定にいたらず。

データの中身にエラーがある。


問題のあったファイルから、「データなしのコピー」でファイルを作り直すと、そのファイルからは問題が検出されない、というファイルが有りました。そうなると、構造上の問題じゃなくて中身の問題、ってわけで、全てのデータをエクスポートして、改めて空のファイルにインポートし直しました。そうすることで、問題は検出されなくなりました。もしかすると、最適化コピーでも対処できたのかもしれません。

特定のテーブルにエラーがある。


空のファイルにしても問題が検出されるとなると、問題はテーブルか、あるいはスクリプトとか?
今回問題のあったファイルは、複数のテーブルで構成されていました。だいたいのファイルがそうなんですけど。


そこで、ファイル内で構成されているテーブルをひとつひとつ削除して、そのたびに問題がないかをチェックする、という作業を繰り返してみました。すると、特定のテーブルを削除することで問題が検出されなくなることがわかりました。


つまり、問題はそのテーブル。


作り直すとなると、そのテーブルとテーブルオカレンス。
というわけで、そのテーブルを削除して、改めてそのテーブルを作り直すことにしました。
ちなみに、別ファイルにそのテーブルをコピペしても、やっぱり問題が検出されました。問題ごとコピペされるのか。そうなると後は地道な作業。辛いのは計算式の埋め込み直しと、テーブルオカレンスのつなぎ直し作業。いや、それだけじゃなくてレイアウトもスクリプトも…。


これでひとまず、件のファイルから問題が検出されることはなくなりました。
そのうち、また作り直そうと思っています。

予兆はあったのか。


今となっては、何が予兆だったのかがわからないのです。
もしかすると、FileMaker Server のログに形跡があったのかもしれません。今となってはログを辿りづらい。また、この現象! と特徴づけられるような現象の特定にはいたらず、逆にいえば、フツーに動いていたので、ファイルに問題が発生していることに気が付かなかったのです。


今回問題が検出されたファイルは、いずれも古くから使っていたファイルでした。まさに10年前から、fp7 の頃から使い続け、fp12 への変換をへて使い続けてきたファイル群。いわば、秘伝のタレを継ぎ足し継ぎ足し使い続けるように運用してきたデータが入っているわけですが、入れ物にヒビが入ってたらダメですね(笑)。
また、それらは FileMaker Server 導入以前から使われてきたファイル群で、ローカルマシンでの数々のフリーズにも遭遇していたはずで、そうなると、かなり以前から問題を抱えていたのかもしれません。


いや、それでもなお、フツーに動いてた、っていうのが問題発見が遅れるという点では最も怖い。

今後の対処法


根幹となる対策は、やはり FileMaker Server の導入と、そのバックアップ機能を活かすことですね。月に1度はクローンを作る、バックアップの履歴は長期間に渡って残す。これらのことは、FileMaker Server の設定である程度自動化できます。
それから、ファイルに変更を加えたときにも、しっかりと手動でクローンを残したり実稼働前にファイルの点検をすべきですね。


あとは、どうやったら予兆を捉えることができるんだろう?
私は現在、ときどき思い出したように、問題が発生していないかどうか、手動で「修復」をかけてチェックしています。


http://filemaker-jp.custhelp.com/app/answers/detail/a_id/9151/~/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E5%A3%8A%E3%82%8C%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95
http://filemaker-jp.custhelp.com/app/answers/detail/a_id/12929/related/1