SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

クラスター環境の SQL Server をクラスターサービスが停止した状態で起動する方法

one comment

前回、クラスター環境の SQL Server をシングルユーザーモードで起動 という投稿を書きました。
この投稿ではクラスターのサービス (Cluster Service) が起動した状態が前提となっていました。

今回はクラスターのサービスが起動しない状態になった場合に、クラスター環境の SQL Server を起動するための手順をまとめてみたいと思います。
# かなり無理やり起動させていますので、実施する場合は自己責任でお願いいたします。

本作業は 2 ノードクラスターで構成された環境で、1 ノードのみ起動した状態で実施しています。

■クラスターから共有ディスクの制御を外す

最初に共有ディスクをクラスターの制御下 (正確には Cluster Disk Driver の制御下でしょうか) から外す必要があります。

クラスターのサービスが停止している状態でも、クラスターの共有ディスクとして認識させたディスクは [予約] の状態となり、[オンライン] にすることができません。
image
image

クラスター環境のディスクをローカルのディスクとしてオンラインにするためにはデバイスマネージャーから [Cluster Disk Driver] を [無効] にする必要があります。
image
image

このドライバーを無効にしたらサーバーを再起動します。

Cluster Disk Driver を無効にすると [予約] の状態が解除されますので、通常のディスクのように [オンライン] にすることが可能となります。

SQL Server に必要なディスクを順次オンラインにし、ローカルのディスクとして認識させます。

 

■SQL Server のサービスの起動


ローカルディスクとして認識させることができたら、SQL Server のサービスを起動してみます。
起動の状態がわかりやすいようにサービスに設定されている [実行ファイルのパス] をコマンドプロンプトから実行しています。
# 管理者として実行しているコマンドプロンプトでないと [指定されたパスが見つかりません] のエラーになると思います。
image
image

実行するとコマンドプロンプト上にログが出力され、起動のステップが実行されるのですが最終的にはエラーとなりサービスを起動することができない状態になると思います。
image

ログを眺めると少し見えてくるのですが、クラスター環境の SQL Server として認識がされているため、クラスターのリソース (ネットワーク名と IP アドレス) が認識できずにエラーとなってしまっているようです。

では、クラスターのサービスが起動していないとクラスター環境の SQL Server は起動できないかというと、レジストリを書き換えて、クラスター環境ではないと認識させてしまえば起動することができます。
具体的には以下のレジストリーのキーの名称をリネームしてしまいます。
[HKLMSOFTWAREMicrosoftMicrosoft SQL Server<インスタンスのキー>Cluster]
image

このキーを一度 [_Cluster] 等 [Cluster] 以外の名前にリネームしてしまいます。
image

それではこの状態で先ほどと同じ方法で SQL Server を起動してみます。
image

レジストリのキーを変更した状態であれば、クラスターサービスが停止している状態でクラスター環境の SQL Server を起動することが可能です。

もちろん、起動したインスタンスに接続することも可能です。

image

作業が終了したら、[Cluster Disk Driver] を有効にして、リネームしたレジストリの [Cluster] のキーの名称を戻せばクラスターで起動可能な状態になります。

どうしてもクラスターなしで起動せざるを得ない時以外はこの方法は使わないと思いますが…。

Share

Written by Masayuki.Ozawa

5月 31st, 2011 at 8:27 am

Posted in MSCS/WSFC(MSFC),SQL Server

Tagged with

One Response to 'クラスター環境の SQL Server をクラスターサービスが停止した状態で起動する方法'

Subscribe to comments with RSS or TrackBack to 'クラスター環境の SQL Server をクラスターサービスが停止した状態で起動する方法'.

  1. […] […]

    スタンドアロンインスタンスの SQL Server をクラスターインスタンスの SQL Server に移行 « SE の雑記

    5 8月 12 at 20:16

Leave a Reply