DBの時刻合わせに気をつけよう
サーバ設定に慣れた人であれば、ついついDBサーバにもNTP等を使った自動時刻をしてしまいたくなるものである。しかしDBの中には下手に時刻合わせをしてしまうとダウンしてしまうものもあるので気をつけよう。
【時刻合わせとDBダウンの関係性】
時刻合わせと言っても、現在時刻より先に進むパターンと過去の時刻に戻るパターンがある。ほとんどのDBでは前者のパターンでは問題がない。しかし気をつけなければならないのは後者のパターンである。時刻が過去に戻るとDBによってはシステム不整合と検知されダウンしてしまうものがある(ORACLEなど)。
【DBの時刻の合わせ方】
一番安全なのは時刻合わせをする場合はメンテ日に全システムを止めた上で時刻を合わせることである。
【裏技】
しかし、そうは言ってもとめられないシステムというものもあるだろう。そういった場合はこういう裏技がある。それは時刻を止めるかもしくは時刻の進行をゆっくりにしてしまうことである。無論OSやDBにそういう機能はないはずなので、こういった場合は何かしらのアプリケーションを探すか自作する必要がある。
※追記(2005.9.22):ntpdにはslewモードというのがありそれを使うと良いとのこと。石坂さん、上美谷さん、教えてくださってありがとうございました。
※追記(2005.9.22):WindowsTimeサービスも
時刻のずれが一定時間内であれば slew モードのように動作するそうです。上美谷さん、教えてくださってありがとうございました。



Comments
ntpdを使うのであれば、一度しっかり合わせるにしても、その後はslewモードをONにしておけばいいのでは。
Posted by: 石坂 | September 21, 2005 at 08:24 PM
slewモードというものがあるんですね。φ(.. )メモメモ
Windows2003の場合でも似たようなことができる機能ってないですかね。
Posted by: sanonosa | September 22, 2005 at 09:57 AM
WindowsTimeサービスは、
時刻のずれが一定時間内であれば slew モードのように動作するそうです。
http://www.atmarkit.co.jp/fwin2k/operation/winntp01/winntp01_04.html
ActiveDirectory環境では自動的に
ドメインコントローラに時刻を合わせるよう設定されるので
SQLServerをインストールするマシンの
時刻あわせに気を使った記憶がありません。
Posted by: 上美谷 | September 22, 2005 at 01:36 PM