Indirect Checkpoint (前編)

EnterpriseZine / 2012年2月2日 0時0分

こんにちは。日本マイクロソフトPremier Field Engineering部の古賀です。今回は、Indirect CheckpointというSQL Serverの新しいチェックポイントのしくみについて紹介します。

■1. Indirect Checkpointとは

 Indirect Checkpointは、SQL Server 2012で新しく追加されるチェックポイントのしくみです。これまでSQL Serverは、チェックポイントのしくみとして「自動、手動、内部」を持っていましたが、これに加え、Indirect Checkpoint (間接) が追加されます。

 これまでのチェックポイントのしくみを簡単に説明すると、「自動」は、recovery interval サーバー構成オプションに指定された期限に合わせて、バックグラウンドで自動に発行されるチェックポイント、「手動」は、Transact-SQLのCHECKPOINTコマンドを実行することで発行されるチェックポイント、「内部」は、バックアップの採取時などさまざまな理由で内部的に発生するチェックポイントのことです。

 Indirect Checkpointは、これらのチェックポイントのしくみだけでは若干調整しづらかったデータベースの復旧時間や、チェックポイントによるI/O発行量をより細やかに調整できるように実装された機能です。

■2. Indirect Checkpointが生まれた背景

  Indirect Checkpointが生まれた背景には、これまでのチェックポイントのしくみが抱えていてたいくつかの問題がありました。それは、以下のようなものです。
 復旧時間予測の問題  I/Oスパイク  復旧時における不必要なI/O  復旧時間予測の問題

  SQL Serverはデータベースの復旧時間を、recovery intervalオプションで設定された時間内に収まるように、一定の間隔でチェックポイントを発行します。このチェックポイントを発行するタイミングは、基本的には前回のチェックポイントが発行されてから、どれほどのトランザクションログ レコードが生成されたかが元になっています。しかし、実際にはデータベースの復旧に要する時間を決定する要素は他にもいくつかあり (例えば、復旧処理のRedo処理で、どれほどのI/Oが発生するかといったこと)、recovery intervalオプションで設定した復旧時間は、若干ですが正確性に欠ける部分がありました。
 I/Oスパイク

  • 前のページ
    • 1
    • 2
  • 次のページ
EnterpriseZine

この記事に関連するニュース

トピックスRSS

ランキング