SQL Server 2005 を使用している環境でシステム時刻を変更すると、データベース エンジンが予期しない結果を返す場合がある

現象
Microsoft SQL Server 2005 を使用している環境で、コンピューターのシステム時刻を変更した場合、SQL Server 2005 データベース エンジンの機能が影響を受け、次のような現象が発生します。

スケジュール化された SQL Server Agent ジョブ
スケジュール化された SQL Server Agent ジョブは、ジョブ完了時に次回実行日時が計算され、システム時刻がその時刻になると実行されます。そのため、システム時刻を変更すると、ジョブの前回の実行と次回の実行の間隔が指定した間隔よりも長くなったり、短くなったります。

たとえば、5 分間隔で実行するように指定したジョブが、10 時 00 分に実行されたとすると、次回の実行は 10 時 05 分となります。システム時刻を 9 時に戻すと、前回の実行と次回の実行の間隔は、指定されている 5 分ではなく、1 時間 5 分となります。反対に、システム時刻を進めると、実行間隔は短くなります。

補足 : スケジュール化された SQL Server Agent ジョブには、ユーザーが明示的に作成したジョブ以外に、データベース保守計画、ログ配布、レプリケーションなどのために作成されたジョブも含みます。

Errorlog ファイル、SQLAgent.out ファイル内の時刻
Errorlog ファイル、SQLAgent.out ファイル内の時刻Errorlog ファイルや SQLAgent.out ファイル内には、時刻が記録されています。システム時刻の変更により、これらファイル内に記録されている時刻が重複するなど、時刻の一貫性が損なわれる可能性があります。

RESTORE ステートメントに WITH STOPAT 句、AFTER 句を指定したデータベースを復元
RESTORE ステートメントに STOPAT 句を指定することで、特定の時間までデータベースを復元することができます。ここで指定する時刻は、トランザクションが実行された時点のシステム時刻です。STOPMARK AFTER や STOPBEFOREMARK AFTER に指定する日時も STOPAT と同様です。

BACKUP ステートメントに EXPIREDATE や RETAINDAYS を指定したバックアップ
システム時刻の変更により、バックアップの上書きが可能となる日時がバックアップ取得時の想定よりも長くなったり、短くなったりします。

GETDATE システム関数の返す日時
datetime や smalldatetime 型列に GETDATE 関数の返す日時を格納しているテーブルがある場合、システム時刻の変更により、重複した時刻が格納されたり、一定期間の時刻が存在しないといった状況が発生する可能性があります。

注 : SQL Server 2005 を使用している環境で、コンピューターのシステム時刻を変更した場合、この資料で記載されている以外にも、予期しない結果を返す場合があります。
回避策
SQL Server では、運用中にシステム時刻が変更されることを想定していないため、システム時刻の変更によって予期しない結果を返す可能性があります。システム時刻の変更は、お客様の責任において実施してください。また、ワークグループ環境から Active Directory 環境への移行をする場合、システム時刻が修正される場合がありますので注意してください。マイクロソフトでは、SQL Server 2005 のインストール前に、インストール対象のコンピュータを正しいシステム時刻に設定することを推奨します。

注 : システム時刻を変更する場合は十分なテストを行い、その影響を確認後に実施してください。また、予期しない結果に備えて、システム時刻変更前にすべてのデータベースのバックアップを取得してください。
関連情報
システム時刻を進めることにより、Active Directory と FRS が受ける影響についての詳細を参照するには、次の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
289668 コンピューターのシステム時刻を進めることにより、Active Directory と FRS が受ける影響について
속성

문서 ID: 951622 - 마지막 검토: 09/20/2016 15:51:00 - 수정: 2.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition

  • kbharmony kbexpertiseinter kbtshoot KB951622
피드백