source

SQL Server 2008 R2가 단일 사용자 모드로 고착됨

nicesource 2023. 10. 6. 21:43
반응형

SQL Server 2008 R2가 단일 사용자 모드로 고착됨

로컬 데이터베이스에서 DB 배포(VS SQL Server 데이터베이스 프로젝트에서)를 실행했지만 실패한 후 데이터베이스는 단일 사용자 모드가 설정된 상태(배포가 단일 사용자 모드로 실행됨)로 유지되었습니다.

SSMS에서 연결하여 다음과 같은 것을 시도하면 다음과 같습니다.

ALTER DATABASE MyDatabase
SET MULTI_USER;
GO

오류가 발생합니다.

데이터베이스 'MyDatabase'의 상태 또는 옵션을 지금 변경할 수 없습니다.데이터베이스가 단일 사용자 모드이며 현재 사용자가 데이터베이스에 연결되어 있습니다.

SSMS가 성공했다고 알려주는 데이터베이스를 오프라인으로 전환하려고 했지만 실제로는 아무 효과가 없는 것 같습니다.지금까지는 데이터베이스를 삭제하고 재생성함으로써만 이 문제를 해결할 수 있었습니다(이것은 로컬 테스트 데이터베이스에 불과하기 때문에 일종의 문제를 해결할 수 있었습니다.하지만 상태를 재설정할 수 있으면 좋겠습니다.

SQL Server가 단일 사용자 모드에서 데이터베이스를 제거하도록 하려면 어떻게 해야 합니까?

마스터 데이터베이스에서 첫 번째 실행 후 쿼리

exec sp_who

범인을 찾을 수 없다면, 시도해 보세요.

SELECT request_session_id FROM sys.dm_tran_locks 
WHERE resource_database_id = DB_ID('YourDatabase')

그런 다음 다음 쿼리를 사용하여 데이터베이스를 사용하는 모든 프로세스를 종료합니다.

KILL spid

그런 다음 다음 쿼리를 실행합니다.

USE Master
ALTER DATABASE YourDatabase SET MULTI_USER

다음 명령을 시도해 봅니다.

먼저 이 세 가지 명령을 실행합니다.

USE [master] 
SET DEADLOCK_PRIORITY HIGH
exec sp_dboption MyDBName, 'single user', 'FALSE';

두번째로 이 두개의 명령을 실행합니다.

ALTER DATABASE MyDBName SET MULTI_USER WITH NO_WAIT
ALTER DATABASE MyDBName SET MULTI_USER WITH ROLLBACK IMMEDIATE

에 대한 답변은 다음과 같습니다.

use master
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE 

--do you stuff here 

ALTER DATABASE YourDatabase SET MULTI_USER

DAC(Dedicated Admin Connection)를 사용합니다.마스터 ALTER DATABAST SET MULTI_USER에 연결한 후 서버 이름의 SSMS 유형에서 먼저 활성화했는지 확인합니다.

업데이트를 강제로 수행하려면 "즉시 롤백"을 사용합니다.

ALTER DATABASE [DATABASE_NAME] SET MULTI_USER  with rollback immediate

언급URL : https://stackoverflow.com/questions/24608702/sql-server-2008-r2-stuck-in-single-user-mode

반응형