SE の雑記

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

クラスター環境の SQL Server をシングルユーザーモードで起動

one comment

SQL Server の障害時はシステムデータベースのリストア時に SQL Server をシングルユーザーモードで起動することがあります。
シングル ユーザー モードでの SQL Server の起動
SQL Server サービスのスタートアップ オプションの使用

クラスター環境でない SQL Server の場合では、コマンドプロンプトから [sqlservr.exe ?m] で SQL Server を起動させるか、SQL Server 構成マネージャーでスタートアップパラメーターに [-m] を指定します。
# SQL Server Agent や Reporting Services のサービスを停止していないと、これらのサービスがシングルユーザーモードの接続をとってしまうので注意が必要だったりしますが。
image

今回の投稿ではこのシングルユーザーモードをクラスター環境で実行するための手順についてまとめてみたいと思います。

■クラスター環境の SQL Server をシングルユーザーモードで起動


クラスター環境の SQL Server の構成ですが以下のようになっています。
image

SQL Server のデータベース / ログは共有ディスク上に配置しますが、SQL Server のサービスに必要なプログラムに関しては各サーバーのローカルディスクに配置されています。

サービスに関しては各サーバーのローカルサービスを直接起動するのではなく、クラスターサービスから SQL Server のリソース DLL を経由して起動されることになります。
image

そのため、各サーバーの SQL Server のサービスは手動起動となっています。

image

 

クラスター環境の SQL Server をシングルユーザーモードで起動する場合ですが、サーバー名とディスクのリソースだけオンラインにした状態で、各サーバーのローカルで SQL Server を起動させれば SQL Server を起動させることが可能です。
# 正確にはサーバー名というよりは IP アドレスのリソースが起動している必要があるようですが。

実際に起動するためには、まずサーバー名とディスクだけをオンラインの状態にして、
image

SQL Server を [-m] オプションを設定して起動させます。
# 管理者として実行したコマンドプロンプトでないと正常に起動できないかもしれません。
image

これでシングルユーザーモードでクラスターの SQL Server が起動した状態になります。

シングルユーザーモードで起動していますので 2 ユーザー以上が接続をしようとするとエラーとなります。
image

シングルユーザーモードはクラスターからではなく、通常の SQL Server の起動と同じになりますので、方法さえ知っていればさほどつまずくことはなさそうですね。

余談ですが、サーバー名のリソース (ネットワーク名 / IP アドレス) がオンラインにできない場合は、SQL Server のクラスターで使用している IP アドレスを以下のように追加の IP アドレスとして直接割り当てることで、クラスターのサーバー名をオンラインにしなくても SQL Server をローカルのサービスから起動することができます。
image

Share

Written by Masayuki.Ozawa

5月 30th, 2011 at 11:23 pm

One Response to 'クラスター環境の SQL Server をシングルユーザーモードで起動'

Subscribe to comments with RSS or TrackBack to 'クラスター環境の SQL Server をシングルユーザーモードで起動'.

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

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

    31 5月 11 at 08:27

Leave a Reply