データベースを復元する必要がありましたが、一部のユーザーはまだ接続されていて、その日は出発していました。以前は、データベースをシングルユーザーに設定していましたが、今はそのオプションが表示されません。
それで、インスタンスレベルで変更を加え、プロパティ/接続/同時ユーザーの最大数を1に設定して、他のすべてのユーザーをサーバーから切断しました。
SQL Serverサービスを再起動しましたが、データベースにアクセスできなくなりました。データベースは稼働していますが、クエリウィンドウを開いたり、[プロパティ]を右クリックして変更を元に戻すことができません。
どうすれば修正できますか?
まず、サーバープロパティページの同時接続の最大数を1に設定しないでください。専用管理者接続は引き続き使用できます。
同時接続の最大数を1に設定した後、ログイン時に次のエラーメッセージが表示されることがあります:
ユーザーのデフォルトデータベースを開けません。ログインに失敗しました。
ユーザー「UserName」のログインに失敗しました
これを修正するには:ログインウィンドウでOptionsボタンをクリックし、default databaseアイテム、tempdbなどのデータベースを選択して、ログインを押します。
T-SQLの使用:
USE [master];
GO
ALTER DATABASE [YourDatabaseNameHere] SET MULTI_USER WITH NO_WAIT;
GO
SSMSの使用:
データベースがSingle_Userモードであり、Multi_Userに変更したいが、他の誰かがすでに接続しているためにアクセスできない場合、 :
あなたが持っている場合 ALTER ANY CONNECTION
権限(sysadminおよびprocessadmin固定サーバーロールの一部)、実行SP_WHO
またはSP_WHO2
、ターゲットデータベースを使用してプロセスを見つけ、実行します。
KILL processid (Ex: KILL 87)
次に、上記のT-SQLを実行して、データベースをmulti_userに戻します。
または、データベースをデタッチしてからアタッチし、上記のT-SQLを実行してmulti_userにすることもできます。これは、運用サーバーでは推奨されません。
Assimのソリューションに追加するには、SQLAgentを確認し、すべてのジョブを停止して無効にします。プロセスを強制終了していたDBAがそのすぐ後ろで別のプロセスを起動するために、私はその中に入ってこれを行わなければなりませんでした。ジョブを再度有効にすることを忘れないでください!