1

SQL Server 2012 を使用していますが、奇妙な問題に悩まされています。

データベース スナップショットをデータベースに復元しようとしました。通常は復元にそれほど時間はかかりませんが、現在は 5 分かかり、まだ復元中であるため、クエリの実行を停止しました。クエリの実行を 5 分以上停止しようとしていたため、タスク マネージャーを使用して SSMS を閉じました。

次に、を使用して復元プロセスを強制終了しようとしましたKILL

ここに画像の説明を入力

そのサーバーに接続できるようになりましたが、データベースのリストが開きません。つまり、このサーバーに接続している人は誰でも、データベースを取得できません。sysprocesses表を確認すると、 と表示lastwaittypeされていLCK_M_Sます。

データベースを表示できるユーザーはいません。私はちょっと台無しにしたように見えます。他のサーバーがサーバーに接続されているため、SQL Server を再起動できません。

これを解決するにはどうすればよいですか?助けてください。

編集:私はこのアプローチを 試しましたが、チェックしたとき

select db_name(dbid), * from sysprocesses where blocked <> 0

私は2つのレコードを手に入れました、

ここに画像の説明を入力

これら 2 つのプロセスの残りの部分がロックされていると思いますか。

4

2 に答える 2

1

Try restarting the instance. Can't hurt if your users can't see any of the databases anyway.

于 2012-10-25T13:08:28.943 に答える
1

sysdatabasesマスター データベースのテーブルにはまだ隠れたロックがあると思います。KILLこれは、restore コマンドが原因である可能性が非常に高いです。

ここの記事はあなたを助けるかもしれません:

http://ellisweb.net/2012/02/clearing-out-a-mysterious-table-lock-lck_m_s-in-sql-server-2008/

基本的に、非表示のロックがどこから来ているかを特定し、KILLそのプロセス ID に対して を発行することをお勧めします。

于 2012-10-25T11:20:53.820 に答える