3

運用バックアップからローカル データベース (FooData) を復元するために、"未明の時間" に実行される SQL ジョブ エージェントがあります。

まず、データベースが SINGLE_USER モードに設定され、開いているプロセスがすべて強制終了されます。次に、データベースが復元されます。

ただし、3 番目のステップは、エラー 6107: "Only User Processes Can Be Killed" で失敗することがあります。

これは、一見ランダムな間隔で週に 1 ~ 2 回発生します。失敗が時々発生するステップ 3 のコードを次に示します。

USE master;
go
exec msdb.dbo.KillSpids FooData;
go
ALTER DATABASE FooData SET MULTI_USER;
go

このエラーの原因となっている可能性のあるアイデアはありますか? ステップ 3 で自動化されたプロセスが起動している可能性や、その間にユーザーがログインしようとしている可能性があるのではないかと考えています。私は DBA ではないので、この時点では推測していますが、DB が SINGLE_USER モードになっている間はユーザーがログインできないはずだと思います。

4

2 に答える 2

6

ユーザーがログインしていない可能性があります。システムが何らかのタスクを実行している可能性があります。exec sp_whoorの出力にはsp_who2、開いているセッションが表示されます。50 未満の SPID はシステム プロセスであり、 で強制終了することはできませんKILL。それらを停止する唯一の方法は、SQL Server サービスを停止するか、SHUTDOWNコマンドを発行することです (どちらも同じことを行います)。

于 2014-04-21T20:45:36.550 に答える