“TASK MANAGER”프로세스는 단일 사용자 모드 데이터베이스를 인수합니다. 무엇입니까?


13

이것은 stackoverflow 에서 질문 한 내용과 중복 되지만 여기서 누군가가 무슨 일이 일어나고 있는지 더 잘 알 수 있다고 조언했습니다.

.NET SqlConnection을 사용하여 단일 사용자 모드에서 SQL Server를 업그레이드 할 때 산발적 인 문제가 있습니다 .SQL 코드가 실행되는 동안 다른 응용 프로그램이 어떻게 든 데이터베이스에 로그인하여 프로세스가 시작됩니다. SqlConnection은 어떤 식 으로든 닫히거나 폐기되지 않습니다. 그러나 다른 응용 프로그램은 어떻게 든 데이터베이스에 연결되어 내 연결을 시작합니다.

sp_who를 실행하면 데이터베이스를 제어하는 ​​프로세스가 Command = "TASK MANAGER"라는 것을 알 수있었습니다.

누구나이 프로세스가 무엇인지, 목적이 무엇인지, 세계에서 단일 사용자 모드의 데이터베이스에 어떻게 액세스 할 수 있으며 활성 연결이 가능한지 말해 줄 수 있습니까?


이 과정에서 SQL 에이전트를 종료합니까? "TASK MANAGER"(작은 spid 번호)라는 작업은 내부 프로세스입니다.
Jon Seigel

@ JonSeigel 아니, 나는하지 않았다. SQL 에이전트가 TASK MANAGER를 실행하는 실제 프로세스라고 말하고 있습니까?
galets

100 % 확실하지 않습니다. 내가 아는 것은 SQL 에이전트가 실행 중일 때 인스턴스에 연결하기 때문에 서버가 단일 사용자 모드에있는 동안 로그인하지 못하게 할 수 있습니다. 어제 그 문제가 있었고 SQL 에이전트를 중지하면 문제가 해결되었습니다.
Jon Seigel

2
분명히 이것은 프로세스 및 시스템 성능을보기 위해 Windows에서 사용하는 것과 동일한 작업 관리자가 아닙니다.
Aaron Bertrand

답변:


10

오늘 같은 문제가 있었지만 AUTO_UPDATE_STATISTICS ASYNC를 끄지 않으면 데이터베이스를 입력 할 수 없으며 데이터베이스를 오프라인으로 설정하여이 문제를 해결할 수 있습니다. 교착 상태 우선 순위를 높게 설정해야합니다. 그렇지 않으면 명령에서 교착 상태가됩니다. SINGLE 사용자 모드에서 나오려면 다음 명령을 사용하십시오

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
대단히 감사합니다. 그러나 오프라인 / 온라인 단계가 필요하지 않다는 것을 알았습니다. 이 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.