平成29年(2017年) 1月1日(日) に挿入される うるう秒に備えて

*以下は、サポート契約締結中のお客様に毎月配信しているサポートレターより一部抜粋して掲載しています。

以前よりお知らせしておりますとおり、平成29年(2017年) 1月1日(日) に「うるう秒」が挿入されます。これまでにも、弊社オラクルプロダクトサポートならびにオラクル社では、うるう秒に関連する技術情報を公開してまいりましたが、平成29年(2017年) 1月1日(日) に挿入されるうるう秒に備えて、対処の要否と、対処が必要な場合にはどのような対処を行えばよいかまとめました。

サーバの対応状況による分類

うるう秒に対する対応の要否を決定するには、まず現在ご利用のサーバが以下のどのケースに該当しているか確認する必要があります。

  1. NTP デーモンが step モードで起動されているケース
  2. NTP デーモンが slew モードで起動されているケース
  3. NTP デーモンが起動していないケース
  4. OS のタイムゾーンの設定が 8:59:60 を返せるものになっているケース

1 と 2 のケースについて、Unix/Linux に多く搭載されている ntpd をご利用の場合は、ps コマンドで起動オプションに -x が含まれているか否かで step モードで起動されているか、slew モードで起動されているかを判別できます。

stepモードで起動されている

      $ ps -ef | grep ntpd
       ntp       2102     1  0 08:32 ?        00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

slewモードで起動されている

      $ ps -ef | grep ntpd
       ntp       2102     1  0 08:32 ?        00:00:00 ntpd -x -u ntp:ntp -p /var/run/ntpd.pid -g

※ ntpd-4.2.6-p5-3未満のバージョンをご利用の場合は、ntpd の不具合により -x オプション付きで起動されていても step モードで動作します。不具合の詳細は OS ベンダ様にご確認ください。

1 のケースでは、うるう秒が挿入された後、NTP デーモンが時刻を逆行させる調整を行います。3 のケースでは、うるう秒が挿入された後、標準時よりも 1 秒進んだ状態となるため、これを合わせようとした際に時刻を逆行させる必要があります。

4 のケースは、NTP デーモンが起動しておらず、TZ 環境変数に right/Asia/Tokyo などが設定されている場合です。この設定は一般的ではない上に、 Oracle Database においては 8:59:60 を正しくハンドリングできないケースがあるため、このように構成しないことを強くおすすめします。このため、本記事の以降において、4 のケースは取り上げていません。

各ケースにおける対処の要否

ほとんどの Oracle 製品は、OS から返される時刻が逆行することを想定した作りにはなっていません。したがって、時刻が逆行した際に、想定外の動作を引き起こすリスクがあります。
2 のケースでは時刻の逆行は発生しません。
1 または 3 のケースで対処が必要な製品をご利用の場合 (後述) は以下の対処をご検討ください。

1 のケースでは、OS により以下の対処をおすすめします。

(a) NTP の Leap Identifier (LI) を解釈する OS の場合 (たとえば Linux)

LI はうるう秒が挿入される 24 時間前に NTP サーバ側でセットされ、NTP を通じてそれを受信したサーバは、うるう秒が挿入される時点における NTP デーモンの起動有無にかかわらず、 8:59:59 を 2 回刻むようになります。したがって、うるう秒が挿入される 24 時間以上前に NTP デーモンを停止させることをご検討ください。

(b) それ以外の OS の場合Linux 以外の場合

うるう秒が挿入される前に NTP デーモンを停止させることをご検討ください。

※ ご利用の OS が NTP の Leap Identifier (LI) を解釈するかどうかは OS ベンダ様にご確認ください。

3 のケースでは、時刻を逆行させる調整を行う際に、Oracle 製品を停止させた上で調整することをおすすめします。

事前にできる対処

繰り返しますが、2 のケースでは時刻の逆行は発生しません。Oracle Business Intelligence Enterprise Edition (BIEE) をご利用の場合を除き(※)、ntpd-4.2.6-p5-3以降が slew モードで起動されるように構成することをおすすめします。

※ BIEE では、BIEE を停止した上で時刻調整することを推奨しています。

主要な Oracle 製品別の対処

Oracle Database

ntpd-4.2.6-p5-3 以降が slew モードで起動されるように構成することをおすすめします。特に RAC 環境でこれを満たさない場合は、データベース・インスタンスおよび Oracle Clusterware を停止した上で時刻の調整を行ってください。
RAC 環境で Oracle Clusterware が起動している状態で時刻の調整を行った際に発生した障害として、以下の報告が上がっています。

  • Document 1716271.1(KROWN#46352) RAC/OPS環境でReconfig中に短時間でLMONタイムアウトが発生しインスタンスがダウン
  • Document 1717380.1(KROWN#49749) RAC/OPS環境でシステム時刻を戻すと、ハングが発生することがある
  • Document 1719886.1(KROWN#57027) RAC環境でシステム時刻を戻すと、ORA-29740が発生してインスタンス・ダウン

Oracle WebLogic Server (WLS)

うるう秒に起因した留意点、問題、不具合の報告はないため、特別な対処は必要はありません。

Oracle Coherence

うるう秒に起因した留意点、問題、不具合の報告はないため、特別な対処は必要はありません。

Oracle Business Intelligence Enterprise Edition (BIEE)

BIEE を停止した上で時刻を調整することを推奨しています。slew モードであっても BIEE が起動した状態で時刻合わせすることは推奨しておりません。ただし、BIEE が起動した状態で時刻調整を行い問題が発生した事例はありません。

Oracle Business Process Management (BPM)

うるう秒に起因した留意点、問題、不具合の報告はないため、特別な対処は必要はありません。

Oracle Service Bus

うるう秒に起因した留意点、問題、不具合の報告はないため、特別な対処は必要はありません。

Oracle Business Activity Monitoring

うるう秒に起因した留意点、問題、不具合の報告はないため、特別な対処は必要はありません。

Oracle Audit Vault and Database Firewall

AVS 上で監査情報を格納している event_log 表には AV_TIME という列があり、この列には AVS に取り込まれた際のタイムスタンプが格納されます。よって、AVS マシンの時刻がずれると、AV_TIME を用いてレポートを作成していた場合に影響があります。

Oracle Java Standard Edition (Java SE)

うるう秒に起因した留意点、問題、不具合の報告はないため、特別な対処は必要はありません。

おわりに

平成29年(2017年) 1月1日(日) に挿入される「うるう秒」に対する対処の要否および、対処が必要な場合にはどのような対処を行えばよいかご紹介いたしました。未対処の場合には年内に対処を行っていただき、安心して 2017 年の新年を迎えていただければと思います。そのために、本項で紹介した情報がお客様にとって有益なものになりましたらとても幸いです。

参考情報

(オラクル事業部 グローバル・アライアンス&サポート・サービス担当 田中)

平成29年(2017年) 1月1日(日) に挿入される うるう秒に備えて