PR

 マイクロソフトが2月13日にリリースした「SQL Server 2005 Service Pack 2」には,初期に大きな問題点があった。SP2を適用することによって,クリーンアップ・タスクに異常が発生したのだ。3月5日からは修正版のSP2が公開されるようになったが,それ以前にSP2をダウンロードしたユーザーは,忘れずに修正プログラムを適用してほしい。

 マイクロソフトの技術情報「Microsoft SQL Server 2005 Service Pack 2 の問題 : クリーンアップ タスクが予定とは異なる間隔で実行される」によれば,製造工程向けリリース(RTM)バージョンのSQL Server 2005では,クリーンアップの間隔を「日」,「週」,「月」,「年」という単位で設定するそうだ。SQL Server 2005 SP2のメンテナンス・プラン拡張機能を使うと,ユーザーは「1時間」単位でクリーンアップの間隔を指定できる。これは素晴らしいオプションかもしれない。だが間隔の単位に変更を加えたことによって,初期のSQL Server 2005 SP2が,クリーンアップ・タスクの間隔を最初の設定とは異なる方法で解釈するようになった。このことが原因で,クリーンアップ・タスクが予定よりも早く情報を削除してしまう恐れが生じた。

 さらに,バージョンの異なるツールやサーバーを混在させてしまうと,クリーンアップ・タスクの間隔に対する様々な解釈が生じてしまう。Microsoftは記事のなかで,「SQL Server 2005 RTMとSQL Server 2005 SP1,そして新たにアップデートされたSQL Server 2005 SP2の間には互換性がある」ということを強調している。だが,「これらのバージョンを初期のSQL Server 2005 SP2と混在させると,新しいタスクと修正されたタスクで,タスクの間隔が誤って解釈される原因になってしまう可能性がある」と述べている。

 言うまでもないことだが,意図していた時間よりも早くデータ(例えば,バックアップ・データ)が削除されてしまうのは好ましくない。従って,ユーザーは迅速にこの問題に対処する必要がある。この問題を修正するためには,「SQL Server 2005 Service Pack 2 の重要な更新(KB:933508)」を適用する必要がある。

 誤解のないように言っておくと,この問題はSQL Server 2005 RTMやSQL Server 2005 SP1には影響しない。さらにMicrosoftは2007年3月5日以降,SQL Server 2005 SP2に修正プログラムを組み込んでいる。従って,修正プログラムをインストールする必要があるのは,3月5日以前にSQL Server 2005 SP2をダウンロードしてインストールしたユーザーになる。

 いつSP2をダウンロードしたか覚えていない場合は,先ほどの技術情報の中に,いくつかのSP2ファイルのバージョンをチェックする方法が紹介されている。これに目を通すと,自分のSP2は大丈夫なのか,あるいはそうではないのかを簡単に判断できるだろう。筆者は個人的に,2つのバージョンのSP2が存在するのは,いいことだと思わない。混乱を避けるために,Microsoftにはこの新しいサービス・パックを「SP2a」のような名前で呼んでほしい。さらにSQL Serverが報告するバージョン番号は,どのバージョンのSP2を使用していようと変更されないことにも注意する必要がある。

 言い換えると,問題のないSP2が適用されたインスタンスに対して@@VERSIONクエリを出しても,問題のあるバージョンのSP2が適用されたサーバーと同じ値が帰ってくるのだ。筆者は個人的に,これはMicrosoftの過ちだと考えている。この問題のために,自分たちが本当に問題のないバージョンのサービス・パックを使っているかどうかの確認が,経験の浅いSQL Server管理者にとって困難になるからだ。