シングル ユーザー モードでの SQL Server の起動

特定の状況では、startup option -m を使用して、SQL Server のインスタンスをシングル ユーザー モードで起動する必要が生じる場合があります。たとえば、サーバーの構成オプションを変更したり、破損したマスター データベースや他のシステム データベースを復旧したりすることがあります。 いずれの場合も、 SQL Server のインスタンスをシングル ユーザー モードで起動する必要があります。

SQL Server をシングル ユーザー モードで起動すると、コンピューターのローカル Administrators グループのメンバーはすべて、固定サーバー ロール sysadmin のメンバーとして SQL Server のインスタンスに接続できるようになります。 詳細については、「 システム管理者がロックアウトされた場合の SQL Server への接続」を参照してください。

シングル ユーザー モードで SQL Server のインスタンスを起動する場合は、次の点に注意してください。

  • 1 人のユーザーのみがサーバーに接続できます。

  • CHECKPOINT プロセスは実行されません。 既定では、このプロセスは、起動時に自動的に実行されます。

注意

シングル ユーザー モードの場合、 SQL Server のインスタンスに接続する前に SQL Server エージェント サービスを停止してください。そうしないと、 SQL Server エージェント サービスによってその接続が使用されるため、SQL Server のインスタンスがブロックされます。

シングル ユーザー モードで SQL Server のインスタンスを起動すると、 SQL Server Management Studio で SQL Serverに接続できます。 Management Studio のオブジェクト エクスプローラーでは、一部の操作で複数の接続が必要になるため失敗することがあります。 SQL Server をシングル ユーザー モードで管理するには、Management Studio のクエリ エディターのみを介して接続することにより Transact-SQL ステートメントを実行するか、sqlcmd ユーティリティを使用します。

sqlcmd または Management Studio で -m オプションを使用する場合は、指定したクライアント アプリケーションへの接続を制限できます。 たとえば、 -m"sqlcmd" は接続を 1 つの接続に制限し、その接続はそれ自体を sqlcmd クライアント プログラムとして識別する必要があります。 このオプションは、 SQL Server をシングル ユーザー モードで起動するときに、その唯一の接続を不明なクライアント アプリケーションによって使用されていた場合に使用します。 Management Studioのクエリ エディターを使用して接続するには、 -m"Microsoft SQL Server Management Studio - Query" を使用します。

重要

このオプションをセキュリティ機能として使用しないでください。 クライアント アプリケーションの名前はクライアント アプリケーションによって接続文字列の一部として指定されるため、本当の名前が指定されるとは限りません。

クラスター化インストールに関する注意

クラスター環境に SQL Server をインストールした場合、 SQL Server をシングル ユーザー モードで起動すると、利用可能な接続がクラスター リソースの dll によって占有され、サーバーに対する他の接続がブロックされます。 SQL Server がこの状態に陥ると、 SQL Server エージェントのリソースをオンラインに戻そうとしたときに、SQL のリソースが別のノードにフェールオーバーされる可能性があります (リソースがそのグループに影響するように構成されていた場合)。

この問題を回避するには、次の手順に従います。

  1. SQL Server の詳細プロパティから起動時のパラメーター –m を削除します。

  2. SQL Server リソースをオフラインにします。

  3. このグループの現在の所有者ノードのコマンド プロンプトで、次のコマンドを発行します:
    net start MSSQLSERVER /m

  4. クラスター アドミニストレーターまたはフェールオーバー クラスター管理コンソールから、 SQL Server リソースがまだオフライン状態にあるかどうかを確認します。

  5. ここで、次のコマンドを使用して SQL Server に接続し、必要な操作を行います: SQLCMD -E -S<servername>。

  6. 操作が完了したら、コマンド プロンプトを閉じ、クラスター アドミニストレーターから SQL および他のリソースをオンラインに戻します。

参照

SQL Server エージェント サービスの開始、停止、または一時停止
データベース管理者用の診断接続
sqlcmd Utility
CHECKPOINT (Transact-SQL)
sp_configure (Transact-SQL)
データベース エンジン サービスのスタートアップ オプション