ntpdで時計合わせ

ntpdで時刻合わせを自動で行う。Oracleなど時刻の影響を受けるものは止めておく。

 

■コマンドを使って、時間を正確に合わせる

# ntpdate ntp1.jst.mfeed.ad.jp
# hwclock --systohc

ntp1.jsp.mfeed.ad.jpやntp.nict.jpなどのNTPサーバを指定して時間を合わせる。

hwclockコマンドで、システム時刻をハードウェアクロックに反映させる。(sys to hc)

 

参考URL:

http://jjy.nict.go.jp/ 

http://www.jst.mfeed.ad.jp/

 

■NTPDを使って、時間を正確に合わせる

/etc/ntp.confでNTPサーバを指定する。

# ntp.nict.jp
restrict 133.243.238.164 nomodify notrap noquery
restrict 133.243.238.243 nomodify notrap noquery
restrict 133.243.238.244 nomodify notrap noquery
restrict 133.243.238.163 nomodify notrap noquery
# mfeed.ad.jp
restrict 210.173.160.27 nomodify notrap noquery
restrict 210.173.160.57 nomodify notrap noquery
# servers
server ntp.nict.jp
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp

下3行で指定しているサーバのIPアドレスをrestrictで指定する。dig ntp1.jst.mfeed.ad.jpのようにIPアドレスを自分で調べる。restrictでは、IPアドレス指定しないと上手く動かなかった。

 

ntpdを起動する。 

# /etc/init.d/ntpd start

 

参考URL:

http://blog.c--v.net/2007/02/15/3 

 

■NTPサーバの動作確認 

ntpdの動作状況を確認する。約5分後の表示。*が先頭についているサーバと同期している。

同期のポーリング間隔(poll)は、64秒。安定してくると最大1024秒になる。

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp-b3.nict.go. .PPS.            1 u    8   64   17    8.237  -44.432   4.224
+ntp1.jst.mfeed. fs-monntp1.mfee  2 u    9   64   17    7.012  -44.346   6.555
+ntp2.jst.mfeed. fs-monntp1.mfee  2 u    6   64   17    7.162  -43.608   3.598

 restrict指定でちゃんとIPアドレスを指定しないとこのような表示になってしまうので注意。 

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==================================================
ntp-b2.nict.go. 0.0.0.0         16 u    -   64    0    0.000    0.000 4000.00
 ntp1.jst.mfeed. 0.0.0.0         16 u    -   64    0    0.000    0.000 4000.00
 ntp2.jst.mfeed. 0.0.0.0         16 u    -   64    0    0.000    0.000 4000.00

 

NTPサーバの参照状態を確認する。

# ntptrace
localhost.localdomain: stratum 2, offset -0.000004, synch distance 0.01590
ntp-b3.nict.go.jp: stratum 1, offset 0.000206, synch distance 0.00037, refid 'PPS'

 

# ntpq 127.0.0.1
ntpq> pe
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp-b3.nict.go. .PPS.            1 u   55   64   37    8.155  -29.989  14.443
+ntp1.jst.mfeed. fs-monntp1.mfee  2 u   54   64   37    6.975  -29.715  14.631
+ntp2.jst.mfeed. fs-monntp1.mfee  2 u   50   64   37    6.811  -28.743  14.866
ntpq> rv
status=0664 leap_none, sync_ntp, 6 events, event_peer/strat_chg,
version="ntpd 4.1.2@1.892 Fri May 14 00:10:37 EDT 2004 (1)",
processor="i686", system="Linux2.6.9-11.19AX", leap=00, stratum=2,
precision=-17, rootdelay=7.593, rootdispersion=199.987, peer=40604,
refid=ntp-b3.nict.go.jp,
reftime=ca162048.5070a808  Sun, Jun 10 2007 16:01:28.314, poll=6,
clock=ca16204a.425b8561  Sun, Jun 10 2007 16:01:30.259, state=4,
offset=-22.767, frequency=-139.653, jitter=11.259, stability=44.186
ntpq> q

rvしたときにsync_ntpが表示されているのでOK。

 

 

■OracleのためのTips

1. Oracleを終了する。

2. ntpdateコマンドを-bオプションで実行する。

# ntpdate -b ntp1.jst.mfeed.ad.jp

3. -xオプションでNTPデーモンが起動するように /etc/sysconfig/ntpd を修正する。

OPTIONS="-x -U ntp -p /var/run/ntpd.pid"

一気に時間を変更するstopモードではなく、徐々に時間を合わせるslewモード(-x)に設定する。

4. NTPデーモンを起動した後にOracleインスタンスを起動する。

# /etc/init.d/ntpd start 
# /etc/init.d/oracle-xe start

 

 

■その他

サーバ再起動時もntpdを起動するようにしておく。

# chkconfig --list | grep ntp
ntpd            0:off   1:off   2:off    3:off    4:off    5:off    6:off
# chkconfig ntpd on