適用対象:SQL Server
この記事では、単一ユーザー モードで SQL Server インスタンスを起動するための情報と手順について説明します。このモードでは、インスタンスへのユーザー接続は 1 つだけです。
シングル ユーザー モードでインスタンスを起動する
SQL Server をシングル ユーザー モードで起動すると、コンピューターのローカル Administrators グループのメンバーはすべて、固定サーバー ロール sysadmin のメンバーとして SQL Server のインスタンスに接続できるようになります。 詳細については、「システム管理者がロックアウトされた場合の SQL Server への接続」を参照してください。
特定の状況では、startup option-m
を使って、SQL Server のインスタンスをシングル ユーザー モードで起動することが必要になる場合があります。 たとえば、サーバーの構成オプションを変更したり、破損した master
データベースや他のシステム データベースを復旧したりすることがあります。 いずれの場合も、 SQL Server のインスタンスをシングル ユーザー モードで起動する必要があります。
次の例では、コマンド ラインを使用して SQL Server インスタンスをシングル ユーザー モードで起動し、SQL Server Management Studio クエリ エディター経由でのみ接続を許可します。
net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"
SQL Server on Linux の master
データベースをシングル ユーザー モードで復元するには、「Linux 上の マスター データベースをシングル ユーザー モードで復元する」を参照してください。
一般的な考慮事項
シングル ユーザー モードで SQL Server のインスタンスを起動する場合は、次の点に注意してください。
1 人のユーザーのみがサーバーに接続できます。
CHECKPOINT
プロセスは実行されません。 既定では、起動時に自動的に実行されます。
Note
シングル ユーザー モードの場合、 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 ユーティリティを使用します。
-m
オプションを使用する場合は、特定のアプリケーション名を追加して、接続文字列で指定された同じアプリケーション名を持つ接続のみに接続を制限できます。 たとえば、 sqlcmd
ユーティリティは、接続文字列のアプリケーション名として SQLCMD
を使用します。 スタートアップ パラメーターとして -mSQLCMD
を指定した場合、SQL Server インスタンスはシングル ユーザー モードで開始され、 sqlcmd
以外のアプリケーションからの接続は拒否されます。 このオプションは、SQL Server をシングル ユーザー モードで起動するときに、その唯一の接続を不明なクライアント アプリケーションによって使用されていた場合に使用します。
Management Studio のクエリ エディターを使用して接続するには、-mSSMSQueryEditor
を使用し、[データベース エンジンへの接続] ダイアログの [追加の接続パラメーター] タブに「App=SSMSQueryEditor
」と入力します。
Note
-m
スタートアップ オプションで指定されたアプリケーション名では、大文字と小文字が区別される場合があります。
重要
このオプションをセキュリティ機能として使用しないでください。 クライアント アプリケーションの名前はクライアント アプリケーションによって接続文字列の一部として指定されるため、本当の名前が指定されるとは限りません。
Always On に関する考慮事項
Always On フェールオーバー クラスター インスタンス (FCI) として構成されている、またはデータベースが Always On 可用性グループ (AG) の一部であるSQL Server インスタンスで単一サーバー モードを使用する場合、追加の考慮事項があります。
可用性グループ
SQL Server がシングル ユーザー モードで起動される際、Always On 可用性グループとグループ内のデータベースの起動はスキップされます。 シングル ユーザー モードで SQL Server を起動する必要があるデータベースに関する問題のトラブルシューティングを行う必要があり、データベースが可用性グループの一部でもある場合は、単一ユーザー モードで SQL Server を開始する前に可用性グループからデータベースを削除することで、データベースをオンラインにする必要があります。
フェールオーバー クラスター インスタンス
クラスター環境での SQL Server インストールの場合、SQL Server がシングル ユーザー モードで起動されると、クラスター リソース DLL によって使用可能な接続が使用され、サーバーへの他の接続がブロックされます。 SQL Server がこの状態の場合、SQL Server エージェント リソースをオンラインにしようとすると、リソースがグループに影響するように構成されている場合、SQL リソースが別のノードにフェールオーバーされる可能性があります。
この問題を回避するには、次の手順に従います。
SQL Server の詳細プロパティから起動時のパラメーター
-m
を削除します。SQL Server リソースをオフラインにします。
このグループの現在の所有者ノードのコマンド プロンプトで、次のコマンドを発行します:
net start MSSQLSERVER /m
クラスター アドミニストレーターまたはフェールオーバー クラスター管理コンソールから、 SQL Server リソースがまだオフライン状態にあるかどうかを確認します。
次のコマンドを使用して SQL Server に接続し、必要な操作を行います。
sqlcmd -E -S\<servername>
操作が完了したら、コマンド プロンプトを閉じ、クラスター アドミニストレーターから SQL および他のリソースをオンラインに戻します。