CJ Club TOP/FAQ/ログ内容が消えてしまったのですが修復できますか?


疑問ねこ Q/ ログ内容が消えてしまったのですが修復できますか?
ねこくん A/ 基本的にはできない

     CGIを使っていて宿命と思えるのが「ログの消失」。

      1.ログの読みこみ => 2.それに新規記事を追加したログを生成 => 3.ログを上書き

    とするのだが、2 の処理中にログが白紙になるのでその時に他の人が 1 の処理をすると当然なにもないログを読みこんで上書きしてしまうのだ。
     基本的に消えた内容を修復する事はできないが、バックアップ機能などを利用している場合、バックアップが消えていなければ修復することができる時もある。

    ロック機能を使用する

       ロック機能を使うとログ消失の確率がさがる。
       しかし、確率が下がるだけなのでまったくおきなくなる、という保障はできない。結局はログのバックアップをこまめにとることが大事。
       *下手なロックは、余計にログが消える確立を高くする場合があるので注意してください!

    ロック機能の仕組み

      00.ロックファイルの確認 => 0.ロックファイル生成 => 1.ログの読みこみ
      => 2.それに新規記事を追加したログを生成 => 3.ログに上書き => 4.ロックファイルを削除

       こんな感じ。00 でロックファイルを確認し存在したら存在しなくなるまで待つ。存在しなかったら生成して処理を進める。ので、誰かが処理中にはロックファイルが存在するので処理がすむまで他の人が処理できない仕組みになっている。
       たまに rename関数 を使ったロック機能もある。それは 3 のときにロックファイルにログを書き、そのファイルをログファイルの名前に変更するというもの。


BACK