「TASK MANAGER」プロセスは、シングルユーザーモードのデータベースを引き継ぎます。それは何ですか?


13

これは私がstackoverflowで尋ねた質問の複製ですが、私はここにいる誰かが何が起こっているのかより良い考えを持つことができるとアドバイスされました。

.NET SqlConnectionを使用してシングルユーザーモードでSQL Serverをアップグレードするとき、SQLコードが実行されている間に他のアプリケーションがデータベースにログインして散発的に問題が発生し、プロセスが開始されます。SqlConnectionが閉じられたり、破棄されたりすることはありません。しかし、他のいくつかのアプリケーションはどういうわけかデータベースに接続してしまい、それが私の接続を開始します。

sp_whoを実行すると、データベースを制御するプロセスがCommand = "TASK MANAGER"であることがわかりました。

誰もがこのプロセスとは何か、その目的は何か、そして世界中でどのようにしてシングルユーザーモードのデータベースにアクセスでき、アクティブな接続があるかを教えてもらえますか?


このプロセス中にSQLエージェントをシャットダウンしますか?「TASK MANAGER」という名前のタスク(spidが小さい)は内部プロセスです。
Jon Seigel

@JonSeigelいいえ、私はしませんでした。SQL AgentはTASK MANAGERを実行する実際のプロセスと言っていますか?
ガレット

100%よくわかりません。私が知っているのは、SQLエージェントが実行中にインスタンスに接続するため、サーバーがシングルユーザーモードのときにログインできない可能性があることです。昨日その問題があり、SQLエージェントを停止すると修正されました。
Jon Seigel

2
明確にするために、これはWindowsでプロセスとシステムパフォーマンスを表示するために使用するタスクマネージャーとは異なります。
アーロンバートランド

回答:


10

今日も同じ問題がありました。AUTO_UPDATE_STATISTICSASYNCをOFFにしないと、データベースに入ることができなくなります。データベースをオフラインにすることでこれを解決できます。知っておくべき重要なことは、デッドロックの優先度を高く設定する必要があるということです。そうしないと、コマンドからデッドロック状態になります。次のコマンドを使用して、シングルユーザーモードを終了します。

SET DEADLOCK_PRIORITY HIGH

ALTER DATABASE [YourDBName] SET OFFLINE WITH ROLLBACK IMMEDIATE

に続く

SET DEADLOCK_PRIORITY HIGH

ALTER DATABASE [YourDBName] SET ONLINE WITH ROLLBACK IMMEDIATE

に続く

SET DEADLOCK_PRIORITY HIGH

ALTER DATABASE [YourDBName] SET MULTI_USER WITH ROLLBACK IMMEDIATE

3
どうもありがとうございました。ただし、OFFLINE / ONLINEステップは不要であることがわかりました。SET MULTIUSER WITH ROLLBACK IMMEDIATEとき、それ自体でだけで働いていたSET DEADLOCK_PRIORITY HIGH最初に行われた
ロス押えを

6

私は謎がついに解決したと思います:

データベースをSINGLE_USERに設定する前に、AUTO_UPDATE_STATISTICS_ASYNCオプションがOFFに設定されていることを確認してください。ONに設定すると、統計の更新に使用されるバックグラウンドスレッドがデータベースへの接続を取得し、シングルユーザーモードでデータベースにアクセスできなくなります。


6

「system_health」拡張イベントのトレースを停止します。以下にリストされます

SQL Server Management Studio
-> [ServerName]
-> Management
-> Extended Events
-> Right-Click on 'System_health'
-> Hit Stop Session

ブロッカーが修正されたら、セッションを再開します。


他の答えはこれが起こる理由を説明していますが、これはそれを解決する方法を説明しています。
Boris Callens、2016

私にとって完璧な解像度。期待どおりに機能しました
Im88

0

使い捨てモードを開始する前に、SQLエージェントを無効にする必要があります。エージェントとして、アカウントはシングルユーザーアクセスを取得します。単一のユーザーを覚えているのは、あなたが最初に接続するユーザー/プロセスではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.