IBM Support

[Db2] うるう秒が Db2 に与える影響

Question & Answer


Question

うるう秒が挿入されると、コンピューターのシステム時刻が協定世界時 (UTC) より 1 秒進んだ状態になります。 進んだシステム時刻を現地時刻に再調整するときに、システム時刻が 1 秒戻されることになりますが、Db2 への考慮点はありますか?

Answer

協定世界時 (UTC) は原子時計をもとに決定されていますが、地球の自転に基づく世界時とずれが生じます。
このずれが 0.9 秒以上にならないよう、うるう秒の挿入が実施されることがあります。
前回のうるう秒挿入は、日本時間で 2017 年 1 月 1 日 午前 9 時に実施されました。
(8:59:59 秒の次に 8:59:60 秒が挿入されます。)

うるう秒が挿入されると、稼動しているコンピューターのシステム時刻は、協定世界時や現地時刻より 1 秒進んだ状態になります。
現地時刻と一致させるため、NTP などでシステム時刻を 1 秒戻す場合、Db2 には以下の影響があります。
 
  1. Point-in-Time (PIT) を指定したロールフォワードで、戻した 1 秒を指定できない
    Db2 のログは、トランザクションのタイムスタンプだけでなく、ログ順序番号 (LSN) で管理されているため、ロールフォワード自体は問題なく実行できます。
    しかし、戻した 1 秒の間を指定した厳密な PIT のロールフォワードは実行できません。
     
  2. モニター時刻がシステム時刻とずれる
    Db2 のシステム・モニター機能 (イベント・モニターやスナップショット・モニターなど) は経過時間を正確に把握するため、インスタンス起動時に取得したシステム時刻と、起動時からの積算時間で時刻を管理しています。
    このため、インスタンスの起動中にシステム時刻を変更すると、システム時刻とモニターが報告する時刻にずれが生じます。
    たとえば、以下のような SQL は通常ほぼ同じ時刻を返しますが、システム時刻に従う CURRENT TIMESTAMP と、モニター時刻に従う SNAPSHOT_TIMESTAMP が約 1 秒ずれます。
    select CURRENT_TIMESTAMP CURRENT_TIMESTAMP, SNAPSHOT_TIMESTAMP from table(SNAP_GET_DB('SAMPLE', NULL)) as t
    
    CURRENT_TIMESTAMP          SNAPSHOT_TIMESTAMP
    -------------------------- --------------------------
    2017-01-01-10.00.04.588980 2017-01-01-10.00.05.588787
    このずれはインスタンスの停止で解消できます。
     
  3. HADR の通信が切れることがある
    高可用性災害時リカバリー (HADR) が稼動しているときに、1 秒に満たない時間でもシステム時刻が戻されると HADR の通信が切れることがあります。
    この問題は以下の APAR として報告されており、V9.7 FP4、V9.5 FP8、V9.1 FP10 以降で修正されています。
    IC72330/IC72329/IC68989 HADR may disconnect with 'HADR_TIMEOUT' message after system clock is set backwards.

運用上の考慮点
  • NTP 使用上の考慮点
    NTP を slew モードで運用している場合、システム時刻が戻ることはありません。slew モードが上記の各現象に与える影響は以下の通りです。(slew モードでも微細な時刻戻りを伴う NTP システムでは、以下の記述は当てはまらないことがあります。)
    1. Point-in-Time を指定したロールフォワードで、戻した 1 秒を指定できない
      時刻の戻りが発生しないため、PIT で指定できない時間はなくなります。
    2. モニター時刻がシステム時刻とずれる
      最大 1 秒、少しずつシステム時刻とモニター時刻がずれるようになります。
    3. HADR の通信が切れることがある
      システム時刻が戻ることはないため、通信が切れる問題は発生しません。
       
  • pureScale コンポーネント
    pureScale を構成するコンポーネントの一部である TSAMP 3.2 および 4.1 (RSCT を含む)、GPFS 3.5 および Spectrum Scale 4.1 はうるう秒の影響を受けません。
     
  • Linux の tzdata 使用上の考慮点
    Linux の tzdata パッケージをインストールし、NTP を利用せずにうるう秒対応の TZ でうるう秒を調整する場合、localtime サブルーチンや date コマンドはうるう秒 (2017-01-01-08:59:60 秒) を挿入します。
    Db2 はこのような時刻を想定していないため、タイムスタンプ列にこの時刻を挿入しようとすると SQL0181N で失敗します。また、Db2 の current timestamp 特殊レジスターは GMT を利用して時刻を返すため、システムのタイムゾーンにかかわらず、2016-12-31-23:59:59 の次に 23:59:60 を返します。このため、right/Asia/Tokyo タイムゾーンを設定したシステムにおいて、うるう秒挿入日の 0 時から 9 時まで、current stamp は localtime より1秒遅れた時刻を返します。
    Db2 は right/* タイムゾーンによって実現される時系列をサポートしません。
    Impact of Leap Second on Db2

この文書は DB2 が稼動するオペレーティング・システム自体の考慮点を網羅するものではありません。
各オペレーティング・システムの考慮点は、それぞれの提供元に確認してください。

関連情報
[Db2] パスポート・アドバンテージによく寄せられる質問[Db2] システム・クロックの変更が Db2 に与える影響
2017 年うるう秒に関するガイド ~ソフトウェア製品~
2017 年うるう秒に関するガイド ~ハードウェア製品~
RedHat: tzdata enhancement update

「うるう秒」挿入のお知らせ (2016年7月8日発表)
総務省
国立研究開発法人情報通信研究機構
 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
 
変更履歴
2012/05/24 slew モードでは HADR TIMEOUT の問題は起きないと修正。
2015/02/19 tzdata の考慮点を追記。

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmFAAU","label":"Operating System or Hardware-\u003EOS Configuration"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
25 August 2023

UID

swg21589759