현재 내 데이터베이스는 단일 사용자 모드입니다. 데이터베이스를 확장하려고하면 오류가 발생합니다.
데이터베이스 ‘my_db’에 액세스 할 수 없습니다. (ObjectExplorer)
또한 데이터베이스를 삭제하려고하면 오류가 발생합니다.
현재 데이터베이스 ‘my_db’의 상태 또는 옵션을 변경할 수 없습니다. 데이터베이스가 단일 사용자 모드에 있으며 사용자가 현재 연결되어 있습니다.
단일 사용자 모드를 종료하려면 어떻게합니까? 이 데이터베이스를 사용하는 사용자가 없습니다.
IIS를 사용하여 사이트를 탐색 할 때 발생하는 오류는 다음과 같습니다.
현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다. 예외의 출처와 위치에 관한 정보는 아래 예외 스택 추적을 사용하여 식별 할 수 있습니다.
단일 사용자 모드 가이 문제를 일으키는 것처럼 느껴집니다.
답변
일반적으로 SSMS는 백그라운드에서 데이터베이스에 여러 연결을 사용합니다.
액세스 모드를 변경하기 전에 이러한 연결을 종료해야합니다.
먼저, 오브젝트 탐색기가 master와 같은 시스템 데이터베이스를 가리키는 지 확인하십시오.
둘째, sp_who2를 실행하고 데이터베이스 ‘my_db’에 대한 모든 연결을 찾으십시오. KILL { session id }
세션 ID가 (으)로 SPID
나열되는 곳 을 수행하여 모든 연결 을 종료하십시오 sp_who2
.
셋째, 새 쿼리 창을 엽니 다.
다음 코드를 실행하십시오.
-- Start in master
USE MASTER;
-- Add users
ALTER DATABASE [my_db] SET MULTI_USER
GO
데이터베이스 파일 관리에 대한 내 블로그 기사 를 참조하십시오 . 이것은 파일 이동을 위해 작성되었지만 사용자 관리는 동일합니다.
답변
먼저 KILL
현재 실행중인 모든 프로세스를 찾아보십시오 .
그런 다음, 다음 T-SQL
을 실행하여 데이터베이스를 MULTI_USER
모드 로 설정하십시오 .
USE master
GO
DECLARE @kill varchar(max) = '';
SELECT @kill = @kill + 'KILL ' + CONVERT(varchar(10), spid) + '; '
FROM master..sysprocesses
WHERE spid > 50 AND dbid = DB_ID('<Your_DB_Name>')
EXEC(@kill);
GO
SET DEADLOCK_PRIORITY HIGH
ALTER DATABASE [<Your_DB_Name>] SET MULTI_USER WITH NO_WAIT
ALTER DATABASE [<Your_DB_Name>] SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO
답변
단일 사용자 모드에서 전환하려면 다음을 시도하십시오.
ALTER DATABASE [my_db] SET MULTI_USER
단일 사용자 모드로 다시 전환하려면 다음을 사용하십시오.
ALTER DATABASE [my_db] SET SINGLE_USER
답변
- 데이터베이스 섹션에서 데이터베이스를 마우스 오른쪽 단추로 클릭하십시오.
- “속성”을 선택하십시오
- “옵션”페이지를 선택하십시오
- “기타 옵션”을 아래로 스크롤하고 “액세스 제한”필드를 변경하십시오.
답변
나는 이것이 효과가 있다고 시도했다.
ALTER DATABASE dbName SET MULTI_USER WITH ROLLBACK IMMEDIATE
답변
나는 같은 문제가 있었고이 쿼리를 사용하여 kill_session_id를 찾았습니다.
Select request_session_id From sys.dm_tran_locks Where resource_database_id=DB_ID('BI_DB_Rep');
답변
CTRL + 1을 누릅니다.
데이터베이스를 잠그는 프로세스를 찾으십시오. dbname 열에서 db를 찾고 spid를 기록하십시오. 이제 그 문장을 실행해야합니다 :
kill <your spid>
ALTER DATABASE <your db> SET MULTI_USER;