2015/04/16

2015年3月のWindows Update後にSQL Serverが起動できなくなってた?

毎月、Windows Update の時期だけ更新のために起動する Windows Server 2012 R2 仮想マシンあるんですが、その仮想マシンで動いていた SQL Server 2012 SP1 (11.0.31530.0) の既定のインスタンス MSSQLSERVER が起動できない状態であることに、昨日気づきました。

イベント ログ (Application) を見ると、前回、3 月 11 日の Windows Update の更新で再起動後から起動できなくなってたみたいです。というわけで、トラブルシューティング開始...


この仮想マシン、今年に入ってからは Windows Update のために起動するだけなので、SQL Server の構成なんて変更していないはずです。たぶん。この SQL Server は、System Center 2012 R2 Configuration Manager と Service Manager 用のデータベースをホストしているやつ。

こういうときは、あせらずに。まずは、いつから起動しなくなっていたのか、イベントログ (eventvwr.msc) や信頼性モニタ (今回は使用せず)で確認。日時を確認できたら、その前後に何があったか、さらに確認。

最初にインスタンスを起動できなくなったときのイベントログを調べていくと、SSL サポートの初期化に失敗しているらしい。問題が発生したのは、3 月の Windows Update を終わって再起動したあとから。POODLE 対策とかで、Windows Update でも SSL 3.0 の無効化とかいろいろとやっていますが、それが影響したのでしょうか? でも、IE の SSL 3.0 無効化は 4 月の更新からだったような。

その直前のイベント 26014 を見ると、証明書の読み込みに失敗していることがわかりました。このエラーについては、こちら。 MSSQLSERVER_26014 (https://msdn.microsoft.com/ja-jp/library/cc280600.aspx) に説明されていますが、証明書が移動または削除された、SQL Server のログインを変更した、証明書の有効期限が切れたといった理由でエラーになるみたい。

証明書を探してみると、ローカル コンピューターと現在のユーザーの[信頼されたユーザー]証明書ストアに問題の証明書は存在していて、有効期限も切れていません。SQL のログインを変更した覚えもないし...

証明書の拇印を検索するには、PowerShell で以下を実行して、メモ帳で検索すると簡単かも。
cd Cert:
Get-ChildItem -Recurse > パス\ファイル名.txt

証明書の読み込み失敗が MSSQLSERVER 起動失敗の原因のようなので、とりあえず、次の方法で回復を試みます。

SQL Server 構成マネージャーを開いて、[SQL Server ネットワークの構成]の下にある[MSSQLSERVER のプロトコル]を右クリックしてプロパティを開きます。[強制的に暗号化]は[いいえ]になってました。ここは何も触らずに...

[証明書]タブに切り替えて、空っぽになっていた証明書にコンピューターの有効な証明書 (自己署名証明書でもいいんでしょうが、AD CS で自動発行されたヤツを指定) を指定します。

MSSQLSERVER を開始してみると、めでたく問題解消。ここまでで半日が過ぎていった...


ちなみに、SQL Server で意図的に暗号化をするように構成したことはないけど、System Center 2012 R2 Configuration Manager が使ってるっぽい。

結局のところ、原因は不明。タイミング的には 2015 年 3 月の Windows Update がとても怪しいんですが、この仮想マシンには 3 月に 31 個の更新プログラムをインストールしていていて、4 月の更新も終わったばっかり。犯人捜しは面倒なのでいいことにします。

4/17 追記)
ところで、 昨日(おととい?) SQL Server 2014 SP1 が出たようです。この問題(↑)がかたずいたっぽいので、今日は SQL Server 2014 を SP1 に更新しようとダウンロード サイトにいったら見つからない。こちら(↓)のブログを見ると、1 日でひっこめられたようです。EMET 5.2 (→ EMET 5.2 出ました。でもご用心)のときもそうでしたが、ちゃんとテストしてから出しましょうよ。

SQL Server Blog > SQL Server 2014 Service Pack 1 is now available
[URL] http://blogs.technet.com/b/dataplatforminsider/archive/2015/04/15/sql-server-2014-service-pack-1-is-now-available.aspx
Notice: There is an issue with SQL Server 2014 SP1 installation if SSIS catalog is present. The package download is temporarily unavailable while the issue is investigated. We will update this page when it is available again.

1 件のコメント:

山市 良 さんのコメント...

SP1 復活した模様
SQL Server 2014 Service Pack 1 Now Available for Download (15 May 2015)
http://blogs.technet.com/b/dataplatforminsider/archive/2015/05/15/sql-server-2014-service-pack-1-now-available-for-download.aspx