ssCAROのブログ

色んなとこで見つけたプログラムのメモ置き場っぽい

Windowsの時刻同期(Slew モード)

Windows ServerにはDBがインストールされ、NTPサーバーからの時刻同期もやったりします。
このとき、時刻同期により時刻が後戻りするとDBに影響が出たりします。
そのため、時刻同期を後戻りすることなく、徐々に合わせる方法があります。

Windows TimeサービスでSlew モードにすると、PCの時刻を次のようにすることで徐々に時刻を合わせていく。

  • PC < NTP のとき:PCの時刻を0.9秒で1.0秒経過したものとする。
  • PC > NTP のとき:PCの時刻を1.1秒で1.0秒経過したものとする。

ただし、Windows Timeサービスには、Stepモードもあり、これはすぐに時刻同期を行うので時刻の後戻りが発生する。
なので、常にSlewモードで行いたいところですが、その方法はないようです。(たぶん)
300秒を超える時刻差があると、Stepモードになるようです。
*他にも条件あり

次の方法でとりあえず回避します。
これ以上時刻が進んでいた場合は時刻同期の処理を行わないようにする閾値。を設定することで時刻同期をさせない。

こうなったら、DBを停止して手動で合わせる必要があります。
*毎日、時刻同期をしていたら5分もずれることはないと思う。
*ちらっと調べたら1日で約8秒のずれが多いっぽい。

Windows Timeサービスの詳細な設定方法等は、下記のURLを確認。

参考URL
Windows Time サービスにおける時刻同期の仕組み
http://support.microsoft.com/kb/2722681/ja
Windows Time サービス - Slew モードと Step モード -
http://blogs.technet.com/b/jpntsblog/archive/2012/12/28/slew-step.aspx
絶対 step モードで時刻同期させたくない場合の設定方法について
http://blogs.technet.com/b/jpntsblog/archive/2013/02/28/step.aspx
[運用]Windowsネットワーク時刻同期の基礎とノウハウ(改訂版)
第3回 w32tmコマンドとレジストリによるWindows Timeサービスの制御
http://www.atmarkit.co.jp/fwin2k/operation/winntp203/winntp203_04.html