清水 磨 (しみず おさむ)
SQL Server Support Engineer
SQL Server 2012 SP1の製品不具合 (KB 2793634) に起因し、一部のレジストリ ハイブのサイズが拡張される可能性がある事象について説明します。
本不具合はすでに修正されておりますが、この不具合に起因し、一部のレジストリハイブの拡張が進行した場合、OSの再インストールが必要になる場合があります。
そのため、SQL Server 2012 SP1 を使用されている場合には、SQL Server 2012 の最新のサービスパックを適用ください。
以下に詳細を記載します。
[影響を受けるSQL Serverのバージョン]
SQL Server 2012 SP1 (11.*.3000.*)
SQL Server 2012 SP1 CU1 (11.*.3321.*)
※ アスタリスクの部分には環境によって異なる値が入ります。
そのため、先頭の値が11であること、3番目の値が上記の値(3000か3321)になっていることをご確認下さい。
例:11.00.3000.00 など
SQL Server のバージョンを確認する方法は、下記公開情報の” 実行している SQL Server データベース エンジンのバージョンとエディションを確認する方法” をご参照下さい。
SQL Server とそのコンポーネントのバージョンとエディションを確認する方法
http://support.microsoft.com/kb/321185/ja
[影響を受けるSQL Serverのエディション]
SQL Server 2012 Express Edition を含む、全てのエディションが影響を受けます。
[事象]
SQL Server 2012 SP1 のインストール後、一部のレジストリハイブのサイズが徐々に拡張されていく可能性があります。
その結果として、レジストリ全体のサイズが拡張されることになり、自分のプロファイルを用いてWindows にログオンできなくなったり、リソース不足に関連したエラーが発生する可能性があります。
また、レジストリ全体のサイズが拡張されることにより、レジストリに関する操作ができなくなる可能性があります。
あわせてSQL Server の修正プログラムも適用できなくなる可能性があるため、結果としてOSの再インストールが必要となる場合があります。
根本的にレジストリの拡張を防ぐには、修正プログラムの適用が必要となります。(下記 “対処方法” をご確認下さい)
本不具合については、以下の公開情報に記載がございます。
Windows Installer starts repeatedly after you install SQL Server 2012 SP1
http://support.microsoft.com/kb/2793634/en-us
SQL Server 2012 SP1 のインストール後に Windows インストーラーを繰り返し開始します。 (機械翻訳)
http://support.microsoft.com/kb/2793634/ja
[対処方法]
SQL Server 2012 の最新のサービスパックを適用します。
その他の不具合も修正されておりますため、弊社としても推奨している方法となります。
Microsoft® SQL Server® 2012 Service Pack 2 (SP2)
http://www.microsoft.com/en-us/download/details.aspx?id=43340
なお、運用上、SPの適用が難しいお客様もいらっしゃるかと思います。
そうした場合には、個別の修正プログラムを適用する、もしくはSQL Server 2012 SP1 CU2 を適用することでも対処が可能です。
状況に応じて、適切な修正プログラムを適用して下さい。
もし、SQL Server 2012 SP1 RTM をインストールされている場合には、下記修正プログラムまたは CU2以降を適用します。
SQL Server 2012 SP1 のセキュリティ以外の更新プログラム (KB 2793634)
http://www.microsoft.com/ja-JP/download/details.aspx?id=36215
もし、SQL Server 2012 SP1 CU1 をインストールされている場合には、SQL Server 2012 SP1 CU2 以降を適用します。
SQL Server 2012 Service Pack 1 用の累積的な更新プログラム パッケージ 2
http://support.microsoft.com/kb/2790947/ja
[原因]
SQL Server 2012 関連コンポーネントが不適切なアセンブリを参照し、ネイティブ イメージの生成に繰り返し失敗します。
この結果、.NET Framework の NGEN サービス(.NET アプリケーションのパフォーマンス向上のため、ネイティブイメージを作成し、キャッシュしておくサービス) の SQL Serverに関連するレジストリ ハイブが拡張されます。
[発生頻度]
環境によりレジストリの肥大化のスピードは異なります。
そのため、環境によってはレジストリの肥大化が進行していない場合もございますが、将来的にレジストリの肥大化が発生しうる状況は変わりません。
上記の理由より、出来る限り早い段階で修正プログラムを適用して頂くことをお勧め致します。
[確認方法]
弊社技術情報 2793634 の事象は、以下の条件すべてに合致している場合、影響を受けていると判断できます。
1) SQL Server 2012 SP1 を使用 (11.*.3000.*) 、もしくはSQL Server 2012 SP1 CU1 (11.*.3321.*) を使用している
2) イベントログ (アプリケーション) に以下のようなメッセージが記録されている
--------------------------
イベント Id: 1004
ソース: MsiInstaller
説明: 製品 '{A7037EB2-F953-4B12-B843-195F4D988DA1}' 機能 'SQL_Tools_Ans'、'{0CECE655-2A0F-4593-AF4B-EFC31D622982}' のコンポーネントの検出に失敗しました。リソース ' が存在しません。
イベント Id: 1001
ソース: MsiInstaller
説明: コンポーネント '{6E985C15-8B6D-413D-B456-4F624D9C11C2}' の要求時に製品 '{A7037EB2-F953-4B12-B843-195F4D988DA1}'、'SQL_Tools_Ans' の機能の検出に失敗しました。
--------------------------
また、”ru.exe” ツールにより、現在のレジストリ サイズを確認できます。
レジストリ サイズが大きく拡張されていることが確認できた際は、早急に上記対処策のいずれかを実施することをご検討下さい。
実行例)
--------------------------
c:\tools\RU>ru.exe HKLM\SOFTWARE
Ru v1.0 - report registry key usage
Copyright (C) 2013 Mark Russinovich
Sysinternals - www.sysinternals.com
Values: 775666
Keys: 459811
Size: 118,216,154 bytes
--------------------------
Registry Usage (RU) v1.0
http://technet.microsoft.com/ja-jp/sysinternals/dn194428
[変更履歴]
2014/09/09 一部内容をUPDATEしました。
2014/11/21 一部内容をUPDATEしました。(エディション、発生頻度について)