トランザクションログ自体が、ハードウェアのダウンなどで書き込みミスして
しまうこともあるだろうから、どうやってそれを防いでいるのかも気になる。
トランザクションログを記録しているファイルをTとしたとき、
Tを修正(追記など)する前に、いったんTをT'というファイル名でバックアップし、
してから、Tに追記すれば、Tをディスクにflushしてる間にシステムがダウンしても
T'には「多分」元のデータは残ってるんだろうな。絶対じゃないけど。
それで次に起動した時、Tにちゃんと書き込まれてない事をどうにかして検出すれば
T'をTにコピーしなおせば、今までの大事なログデータは元に戻せる。
しかし、「Tにちゃんと書き込まれていない事」をどうやって検出するか、
という問題は残る。
Tの先頭にこれから書くはずのバイト数を記録しておいて、それと実際のTの
バイト数が異なっていれば異常を検出できるかな。
バイト数だけでなく、ファイルの最後に眺めのENDマーク文字列みたいなものを
書いておけばさらに安心かな。