단일 사용자 모드로 SQL Server 시작

적용 대상:SQL Server

특정 상황에서는 시작 옵션 시작 옵션-m을 사용하여 SQL Server의 인스턴스를 단일 사용자 모드로 시작해야 할 수 있습니다. 예를 들어 서버 구성 옵션을 변경하거나 손상된 master 데이터베이스 또는 다른 시스템 데이터베이스를 복구하려고 할 수도 있습니다. 두 작업 모두 단일 사용자 모드에서 SQL Server 인스턴스를 시작해야 합니다.

단일 사용자 모드로 Linux에서 master 데이터베이스를 복원하려면 단일 사용자 모드로 Linux에서 master 데이터베이스 복원을 참조하세요.

단일 사용자 모드로 SQL Server를 시작하면 컴퓨터에서 로컬 Administrators 그룹의 모든 멤버가 sysadmin 고정 서버 역할의 멤버로 SQL Server 인스턴스에 연결할 수 있습니다. 자세한 내용은 시스템 관리자가 잠겨 있는 경우 SQL Server에 연결을 참조하세요.

단일 사용자 모드에서 SQL Server 인스턴스를 시작할 때 다음 사항에 유의하세요.

  • 한 명의 사용자만 서버에 연결할 수 있습니다.

  • CHECKPOINT 프로세스는 실행되지 않습니다. 기본적으로 시작 시 자동으로 실행됩니다.

참고 항목

단일 사용자 모드에서 SQL Server 인스턴스에 연결하기 전에 SQL Server 에이전트 서비스를 중지합니다. 그렇지 않으면 SQL Server 에이전트 서비스에서 연결을 사용하여 차단합니다.

단일 사용자 모드에서 SQL Server 인스턴스를 시작하면 SQL Server Management Studio가 SQL Server에 연결할 수 있습니다. 일부 작업에는 둘 이상의 연결이 필요하므로 Management Studio의 개체 탐색기 실패할 수 있습니다. SQL Server를 단일 사용자 모드로 관리하려면 Management Studio 또는 Azure Data Studio의 쿼리 편집기를 통해 연결하여 Transact-SQL 문을 실행하거나 sqlcmd 유틸리티를 사용합니다.

SQLCMD 또는 Management Studio에서 -m 옵션을 사용하면 지정된 클라이언트 응용 프로그램에 대한 연결을 제한할 수 있습니다.

참고 항목

Linux에서 SQLCMD은 표시된 대로 대문자로 표시되어야 합니다.

예를 들어 -m"SQLCMD"는 연결 수를 단일 연결로 제한하며 이 경우 연결은 스스로 sqlcmd 클라이언트 프로그램으로 인식해야 합니다. 단일 사용자 모드로 SQL Server를 시작하며 알 수 없는 클라이언트 애플리케이션에서 사용 가능한 유일한 연결을 사용할 경우 이 옵션을 사용합니다. Management Studio에서 쿼리 편집기 통해 연결하려면 -m"Microsoft SQL Server Management Studio - Query"을 사용합니다.

Important

이 옵션을 보안 기능으로는 사용하지 마세요. 클라이언트 애플리케이션에서 클라이언트 애플리케이션 이름을 제공하므로 연결 문자열의 일부로 잘못된 이름을 제공할 수 있습니다.

다음 예제에서는 단일 사용자 모드에서 SQL Server 인스턴스를 시작하고 SQL Server Management Studio 쿼리 편집기 통해서만 연결을 허용합니다.

net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"

클러스터형 설치에 대한 참고 사항

클러스터된 환경에서 SQL Server를 설치하는 경우 SQL Server가 단일 사용자 모드로 시작될 때 클러스터 리소스 dll은 사용 가능한 연결을 사용하여 서버에 대한 다른 연결을 차단합니다. SQL Server가 이 상태인 경우 SQL Server 에이전트 리소스를 온라인으로 가져오려고 하면 리소스가 그룹에 영향을 주도록 구성된 경우 SQL 리소스를 다른 노드로 장애 조치(failover)할 수 있습니다.

문제를 해결하려면 다음 절차를 사용합니다.

  1. SQL Server 고급 속성에서 -m 시작 매개 변수를 제거합니다.

  2. SQL Server 리소스를 오프라인으로 전환합니다.

  3. 이 그룹의 현재 소유자 노드에서 명령 프롬프트에서 다음 명령을 실행합니다.

    net start MSSQLSERVER /m
    
  4. 클러스터 관리자 또는 장애 조치(failover) 클러스터 관리 콘솔 SQL Server 리소스가 여전히 오프라인 상태인지 확인합니다.

  5. 이제 SQLCMD -E -S<servername> 명령을 사용하여 SQL Server에 연결하고 필요한 작업을 수행합니다.

  6. 작업이 완료되면 명령 프롬프트를 닫고 클러스터 관리자를 통해 SQL 및 기타 리소스를 온라인으로 다시 가져옵니다.

참고 항목