반응형
DB작업시 현재 다른 연결을 끊어야 할 경우가 있다.
이럴경우 평소 엑세스 제한 모드를 제한된유저(restricted user)모드로 변경하고 작업하곤한다.
하지만 단일 사용자(Singleuser) 모드로 변경했을경우에는 주의해야할 점이 있다.
단일 사용자 모드의 경우 다른 세션이 살아 있기에 DB의 상태 변경을 하지 못하는 경우가 있을 수 있다.
이럴경우
ALTER DATABASE 'DB명' SET MULTI_USER
명령어를 통해 다시 멀티유저로 변경시 다음과 같은 오류가 뜨게 된다.
지금은 데이터베이스 'DB명'의 상태나 옵션을 바꿀 수 없습니다. 데이터베이스가 단일 사용자 모드이며 현재 한 사용자가 연결되어 있습니다.
이때 아래의 명령어를 실행하면 현재 내 DB에 접속중인 세션을 찾을 수 있다.
SELECT request_session_id
FROM sys.dm_tran_locks
WHERE resource_database_id = DB_ID('DB명')
찾은 세션을 이제 죽여주자
kill 'pid번호'
그 다음 다시 멀티유저로 되돌리는 명령어 실행시 문제 없이 잘 실행될것이다..
반응형
'[DataBase] > MSSQL' 카테고리의 다른 글
[MSSQL] 현재 락 걸린 쿼리 확인 & 죽이기 (0) | 2022.04.04 |
---|---|
MSSQL 인덱스 재구성, 인덱스 조각화 모음 (0) | 2022.03.07 |
[MSSQL] 보안 주의점 해킹시도 (0) | 2022.02.10 |
[MSSQL][시점복구] DB 원하는 시점으로 복구하기(+복구시점찾기, + 복구진행현황보기) (0) | 2022.01.18 |
[MSSQL TARNSACTION] 제발 작업할때 트랜좀 걸고해 (0) | 2022.01.17 |