現在、運用サーバー上の開発データベースをデタッチしています。これはプロダクションサーバーなので、SQLサービスを再起動する必要はありません。それが最悪のシナリオです。デタッチデータベース/テイクオフに失敗しました
明らかに私はSSMSを使ってそれを切り離そうとしました。私にはアクティブな接続があったと言いました。私はそれを切断しました。 2回目を外すと、それが使用されて以来不可能であると私に言った。
私はEXEC sp_detach_db
「DB」を試してみました。
データベースをオフラインにしようとしました。それは私が退屈してそれをオフにしたときに約15分間走った。
とにかく、私はすべてを試しました... SSMSを使用してデタッチデータベースの接続インジケータを使用してすべての接続が強制終了されたことを確認しました。
次の0の結果が返さ:DBID = DB_ID( 'DB')
そして以下は現在18分間実行されているsys.sysprocesses FROM
使用をマスター SELECT *:
ALTER DATABASE DB OFFLINE WITH ROLLBACK IMMEDIATE
SSMSが目に見えないものをロックすることで、SSMSが原因ではないことを確認するために、SMSSを定期的に再起動しました。
これを強制する方法はありませんか?データベーススキーマは私がかなり好きなものですが、データは消耗品です。
クイックフィックスのいくつかの並べ替えがありますか? :)
DBAは今晩プロセスをリセットしようとしますが、私はこの場合のための修正を知りたいと思います。
Thx!
ps:私はDTCを使用しています...これはおそらく、なぜ私のデータベースが突然ロックされたのかを説明するかもしれませんか?
編集:
私は今、最後の部分の無限の実行、その結果次のことをやっています。最初のクエリでも0が返されるので、ユーザーの殺害は問題ではないと考えています。
に[マスター] GO
SELECT * @return_valueが
EXEC @return_value int型DBID = DB_ID( 'データベース')
GO
DECLARE sys.sysprocesses FROM = [dbo]。[usp_KillUsers] ROLLBACK IMMEDIATE WITH @p_DBName = 'データベース'
SELECT '戻り値' = @return_value
GO
ALTER DATABASEデータベースSETのOFFLINE
GO
また、私はデタッチしようとしているDBを使用していないことを確認するために、最初に明示的な「使用マスター」を置いています。 –
私は100%データベースを使用していないと確信しています。私はあなたがそのデータベースでアクティブな接続がないことを確認するためにチェックできるすべての場所をチェックしました。 – SpoBo